blob: 43096d2bce1c6faf1338739b53268b805b76a181 [file] [log] [blame]
Upstream-Status: Inappropriate
This patch lets you build Ice with OpenEmbedded. I doubt you could do
a regular build after applying this patch.
From bc622ce74fa03a935278d21736a5a251466e1798 Mon Sep 17 00:00:00 2001
From: Tom Rondeau <tom@trondeau.com>
Date: Wed, 16 Apr 2014 14:34:51 -0400
Subject: [PATCH] Modify Makefiles for cross compile
---
config/Make.common.rules | 20 +++++++------
cpp/Makefile | 9 +++---
cpp/config/Make.rules | 32 ++++++++++++--------
cpp/config/Make.rules.Linux | 18 ++---------
cpp/src/IceStorm/FreezeDB/Makefile | 2 +-
py/config/Make.rules | 58 +++++++++++++++++++-----------------
6 files changed, 70 insertions(+), 69 deletions(-)
diff --git a/config/Make.common.rules b/config/Make.common.rules
index d7b1d59..a3fb17e 100644
--- a/config/Make.common.rules
+++ b/config/Make.common.rules
@@ -65,9 +65,9 @@ ifeq ($(UNAME),Linux)
#
# Some Linux distributions like Debian/Ubuntu don't use /usr/lib64.
#
- ifeq ($(shell test -d /usr/lib64 && echo 0),0)
- lp64suffix = 64
- endif
+ #ifeq ($(shell test -d /usr/lib64 && echo 0),0)
+ # lp64suffix = 64
+ #endif
ifeq ($(LP64),)
LP64 = yes
endif
@@ -244,12 +244,13 @@ else
slicedir = $(ice_dir)/slice
endif
-ifeq ($(prefix), /usr)
- install_slicedir = /usr/share/Ice-$(VERSION)/slice
-else
- install_slicedir = $(prefix)/slice
-endif
+#ifeq ($(prefix), /usr)
+# install_slicedir = /usr/share/Ice-$(VERSION)/slice
+#else
+# install_slicedir = $(prefix)/slice
+#endif
+install_slicedir = $(prefix)/slice
#
# Set environment variables for the Slice translator.
#
@@ -265,7 +266,8 @@ ifneq ($(ice_dir), /usr)
endif
ifeq ($(UNAME),Linux)
- export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
+ #export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
+ export LD_LIBRARY_PATH := $(ICE_HOME)/lib:$(LD_LIBRARY_PATH)
endif
ifeq ($(UNAME),SunOS)
diff --git a/cpp/Makefile b/cpp/Makefile
index a68f113..1f44f57 100644
--- a/cpp/Makefile
+++ b/cpp/Makefile
@@ -11,11 +11,12 @@ top_srcdir = .
include $(top_srcdir)/config/Make.rules
-SUBDIRS = config src include test
+#SUBDIRS = config src include test
+SUBDIRS = config src include
-ifeq ($(shell uname | grep MINGW),)
-SUBDIRS := $(SUBDIRS) demo
-endif
+#ifeq ($(shell uname | grep MINGW),)
+#SUBDIRS := $(SUBDIRS) demo
+#endif
INSTALL_SUBDIRS = $(install_bindir) $(install_libdir) $(install_includedir) \
$(install_configdir) $(install_mandir)
diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules
index 37461ae..197c5e8 100644
--- a/cpp/config/Make.rules
+++ b/cpp/config/Make.rules
@@ -175,11 +175,12 @@ headerdir = $(top_srcdir)/include
# includedir is not handled the same as bindir and libdir
# because it is used in the .depend files
#
-ifdef ice_src_dist
- includedir = $(top_srcdir)/include
-else
- includedir = $(ice_dir)/include
-endif
+#ifdef ice_src_dist
+# includedir = $(top_srcdir)/include
+#else
+# includedir = $(ice_dir)/include
+#endif
+includedir = $(top_srcdir)/include
#
# Platform specific definitions
@@ -277,14 +278,17 @@ ICECPPFLAGS = -I$(slicedir)
SLICE2CPPFLAGS = $(ICECPPFLAGS)
ifeq ($(ice_dir), /usr)
- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS)
+ LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS)
else
CPPFLAGS += -I$(includedir)
- ifdef ice_src_dist
- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
- else
- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix)
- endif
+# We must always build using the libraries in the source tree, the host's are obviously
+# not what we want for the target
+ LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir) $(call rpathlink,$(libdir))
+# ifdef ice_src_dist
+# LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
+# else
+# LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix)
+# endif
endif
ifeq ($(FLEX_NOLINE),yes)
@@ -313,8 +317,10 @@ endif
ifdef ice_src_dist
SLICEPARSERLIB = $(libdir)/$(call mklibfilename,Slice,$(VERSION))
- SLICE2CPP = $(bindir)/slice2cpp
- SLICE2FREEZE = $(bindir)/slice2freeze
+# SLICE2CPP = $(bindir)/slice2cpp
+# SLICE2FREEZE = $(bindir)/slice2freeze
+ SLICE2CPP = $(ICE_HOME)/bin/slice2cpp
+ SLICE2FREEZE = $(ICE_HOME)/bin/slice2freeze
else
SLICEPARSERLIB = $(ice_dir)/$(libsubdir)$(cpp11suffix)/$(call mklibfilename,Slice,$(VERSION))
SLICE2CPP = $(ice_dir)/$(binsubdir)$(cpp11suffix)/slice2cpp
diff --git a/cpp/config/Make.rules.Linux b/cpp/config/Make.rules.Linux
index 5d5717c..8363c6e 100644
--- a/cpp/config/Make.rules.Linux
+++ b/cpp/config/Make.rules.Linux
@@ -31,7 +31,7 @@ ifeq ($(CXX),c++)
CXX = g++
endif
-ifeq ($(CXX),g++)
+#ifeq ($(CXX),g++)
ifneq ($(SUSE_i586),)
CXXARCHFLAGS += -march=i586
@@ -71,14 +71,6 @@ ifeq ($(CXX),g++)
CXXARCHFLAGS += -mtune=v8 -pipe -Wno-deprecated -DICE_USE_MUTEX_SHARED
endif
- ifeq ($(MACHINE),x86_64)
- ifeq ($(LP64),yes)
- CXXARCHFLAGS += -m64
- else
- CXXARCHFLAGS += -m32
- endif
- endif
-
CXXFLAGS = $(CXXARCHFLAGS) -Wall -Werror -pthread
ifneq ($(GENPIC),no)
@@ -102,15 +94,11 @@ ifeq ($(CXX),g++)
rpathlink = -Wl,-rpath-link,$(1)
- ifneq ($(embedded_runpath_prefix),)
- LDPLATFORMFLAGS = -Wl,--enable-new-dtags -Wl,-rpath,$(runpath_libdir)
- else
- LDPLATFORMFLAGS = -Wl,--enable-new-dtags
- endif
+ LDPLATFORMFLAGS = -Wl,--enable-new-dtags -Wl,-rpath,../../../lib
LDPLATFORMFLAGS += -rdynamic
-endif
+#endif
ifeq ($(CXX),icpc)
$(warning ===================================================================)
diff --git a/cpp/src/IceStorm/FreezeDB/Makefile b/cpp/src/IceStorm/FreezeDB/Makefile
index 7c844b7..cf15cb1 100644
--- a/cpp/src/IceStorm/FreezeDB/Makefile
+++ b/cpp/src/IceStorm/FreezeDB/Makefile
@@ -66,7 +66,7 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME)
$(MIGRATE): $(MOBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS)
+ $(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS) -ldb_cxx
# The slice2freeze rules are structured like this to avoid issues with
# parallel make.
diff --git a/py/config/Make.rules b/py/config/Make.rules
index 43ce01b..1349342 100644
--- a/py/config/Make.rules
+++ b/py/config/Make.rules
@@ -92,21 +92,23 @@ ifeq ($(shell test -f $(top_srcdir)/config/Make.rules.$(UNAME) && echo 0),0)
include $(top_srcdir)/config/Make.rules.$(UNAME)
else
include $(top_srcdir)/../cpp/config/Make.rules.$(UNAME)
-endif
+endif
libdir = $(top_srcdir)/python
-ifneq ($(prefix), /usr)
-install_pythondir = $(prefix)/python
-install_libdir = $(prefix)/python
-else
- ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0)
- install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
- install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
- else
- install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
- install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
- endif
-endif
+#ifneq ($(prefix), /usr)
+#install_pythondir = $(prefix)/python
+#install_libdir = $(prefix)/python
+#else
+# ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0)
+# install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
+# install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
+# else
+# install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
+# install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
+# endif
+#endif
+install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
+install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
ifeq ($(UNAME),SunOS)
ifeq ($(LP64),yes)
@@ -115,19 +117,21 @@ ifeq ($(UNAME),SunOS)
endif
endif
-ifdef ice_src_dist
- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
- ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
- else
- ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
- endif
- ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
- ICE_FLAGS = -I$(ice_cpp_dir)/include
-endif
-ifdef ice_bin_dist
- ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
- ICE_FLAGS = -I$(ice_dir)/include
-endif
+#ifdef ice_src_dist
+# ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
+# ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
+# else
+# ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
+# endif
+# ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
+# ICE_FLAGS = -I$(ice_cpp_dir)/include
+#endif
+#ifdef ice_bin_dist
+# ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
+# ICE_FLAGS = -I$(ice_dir)/include
+#endif
+ICE_LIB_DIR = -L$(top_srcdir)/../cpp/lib
+ICE_FLAGS = -I$(ice_cpp_dir)/include
ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil
ifneq ($(embedded_runpath_prefix),)
@@ -137,7 +141,7 @@ endif
CPPFLAGS =
ICECPPFLAGS = -I$(slicedir)
SLICE2PYFLAGS = $(ICECPPFLAGS)
-LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
+LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
ifdef ice_src_dist
ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
--
1.7.9.5