* [meta-oe][PATCH] zeroc-ice : Add recipe. @ 2014-05-12 12:21 Philip Balister 2014-05-13 7:14 ` Martin Jansa 2014-05-13 8:22 ` Koen Kooi 0 siblings, 2 replies; 5+ messages in thread From: Philip Balister @ 2014-05-12 12:21 UTC (permalink / raw) To: openembedded-devel Oh the pain. Tested for ARM. Can build GNU Radio and an sdk that builds GNU Radio. Signed-off-by: Philip Balister <philip@balister.org> --- .../0002-Modify-Makefile-for-cross-compile.patch | 287 +++++++++++++++++++++ .../zeroc-ice/zeroc-ice_3.5.1.bb | 75 ++++++ 2 files changed, 362 insertions(+) create mode 100644 meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch create mode 100644 meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch new file mode 100644 index 0000000..93fb5bf --- /dev/null +++ b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch @@ -0,0 +1,287 @@ +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 + diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb new file mode 100644 index 0000000..445e2f1 --- /dev/null +++ b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb @@ -0,0 +1,75 @@ +DESCRIPTION = "The Internet Communications Engine" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://ICE_LICENSE;md5=3dc3037023cc2ae6b2c5b995da529515" +DEPENDS = "bzip2 expat openssl python db mcpp" +DEPENDS_prepend_class-target = "zeroc-ice-native " + +SRC_URI = "http://www.zeroc.com/download/Ice/3.5/Ice-${PV}.tar.gz \ + file://0002-Modify-Makefile-for-cross-compile.patch \ + " +SRC_URI[md5sum] = "f00c59983cc904bca977133c0a9b3e80" +SRC_URI[sha256sum] = "989e51194c6adadbd156da3288e37bad847b93b3b876502e83033b70493af392" + +S = "${WORKDIR}/Ice-${PV}" + +inherit python-dir pkgconfig + +export PYTHON_VERSION = "python2.7" + +do_configure() { + : +} + +do_compile_prepend_class-target () { + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" +} + +do_compile_prepend_class-nativesdk () { + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" +} + +do_compile_prepend_class-native () { + export ICE_HOME="${S}/cpp" +} + +do_compile() { + oe_runmake -C ${S} cpp + oe_runmake -C ${S} py +} + +do_install_prepend_class-target () { + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" +} + +do_install_prepend_class-nativesdk () { + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" +} + +do_install_prepend_class-native () { + export ICE_HOME="${S}/cpp" +} + +do_install() { + oe_runmake -C ${S}/cpp prefix=${D}${prefix} install install-common + oe_runmake -C ${S}/py prefix=${D}${prefix} install +} + +PACKAGES += "${PN}-python ${PN}-python-dev ${PN}-python-dbg" + +FILES_${PN}-doc += "${prefix}/man/man1" +FILES_${PN} += "${prefix}/*LICENSE ${libdir}/ImportKey.class ${prefix}/RELEASE_NOTES ${prefix}/CHANGES" +FILES_${PN}-dev += "${includedir} ${prefix}/slice ${prefix}/config" +FILES_${PN}-python-dev = "${PYTHON_SITEPACKAGES_DIR}/IcePy.so" +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.py ${PYTHON_SITEPACKAGES_DIR}/IcePy.so.* ${PYTHON_SITEPACKAGES_DIR}/Ice*/*.py" +FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug" +FILES_${PN}-dev += "${bindir}/slice* ${datadir}/Ice-${PV}/slice/*" + +BBCLASSEXTEND = "native nativesdk" -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [meta-oe][PATCH] zeroc-ice : Add recipe. 2014-05-12 12:21 [meta-oe][PATCH] zeroc-ice : Add recipe Philip Balister @ 2014-05-13 7:14 ` Martin Jansa 2014-05-22 14:55 ` Philip Balister 2014-05-13 8:22 ` Koen Kooi 1 sibling, 1 reply; 5+ messages in thread From: Martin Jansa @ 2014-05-13 7:14 UTC (permalink / raw) To: openembedded-devel [-- Attachment #1: Type: text/plain, Size: 18638 bytes --] On Mon, May 12, 2014 at 08:21:38AM -0400, Philip Balister wrote: > Oh the pain. > > Tested for ARM. Can build GNU Radio and an sdk that builds GNU Radio. Fails to build in world builds: | make[3]: Nothing to be done for `all'. | make[3]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp/include/IceXML' | make[2]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp/include' | make[1]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp' | make: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1' | NOTE: make -j 8 -e MAKEFLAGS= -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1 py | make: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1' | echo "making all in py"; | making all in py | ( cd py && make all ) || exit 1; | make[1]: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py' | ../config/Make.common.rules:131: Found slice2py in both ICE_HOME/bin and ./../cpp/bin, ICE_HOME/bin/slice2py will be used! | making all in modules | make[2]: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules' | ../../config/Make.common.rules:131: Found slice2py in both ICE_HOME/bin and ../../cpp/bin, ICE_HOME/bin/slice2py will be used! | making all in IcePy | make[3]: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules/IcePy' | ../../../config/Make.common.rules:131: Found slice2py in both ICE_HOME/bin and ../../../cpp/bin, ICE_HOME/bin/slice2py will be used! | g++ -c -I. -I/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp/include -I/usr/include/python2.7 -Wall -Werror -pthread -fPIC -g Communicator.cpp | In file included from ./Communicator.h:13:0, | from Communicator.cpp:14: | ./Config.h:28:20: fatal error: Python.h: No such file or directory | compilation terminated. | make[3]: *** [Communicator.o] Error 1 | make[3]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules/IcePy' | make[2]: *** [all] Error 1 | make[2]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules' | make[1]: *** [all] Error 1 | make[1]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py' | make: *** [py] Error 1 | make: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1' | ERROR: oe_runmake failed | WARNING: exit code 1 from a shell command. | ERROR: Function failed: do_compile (log file is located at /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/temp/log.do_compile.31585) NOTE: recipe zeroc-ice-native-3.5.1-r0: task do_compile: Failed ERROR: Task 23367 (virtual:native:/home/jenkins/oe/shr-core-branches/shr-core/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb, do_compile) failed with exit code '1' > > Signed-off-by: Philip Balister <philip@balister.org> > --- > .../0002-Modify-Makefile-for-cross-compile.patch | 287 +++++++++++++++++++++ > .../zeroc-ice/zeroc-ice_3.5.1.bb | 75 ++++++ > 2 files changed, 362 insertions(+) > create mode 100644 meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch > create mode 100644 meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb > > diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch > new file mode 100644 > index 0000000..93fb5bf > --- /dev/null > +++ b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch > @@ -0,0 +1,287 @@ > +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 > + > diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb > new file mode 100644 > index 0000000..445e2f1 > --- /dev/null > +++ b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb > @@ -0,0 +1,75 @@ > +DESCRIPTION = "The Internet Communications Engine" > +LICENSE = "GPLv2" > +LIC_FILES_CHKSUM = "file://ICE_LICENSE;md5=3dc3037023cc2ae6b2c5b995da529515" > +DEPENDS = "bzip2 expat openssl python db mcpp" > +DEPENDS_prepend_class-target = "zeroc-ice-native " > + > +SRC_URI = "http://www.zeroc.com/download/Ice/3.5/Ice-${PV}.tar.gz \ > + file://0002-Modify-Makefile-for-cross-compile.patch \ > + " > +SRC_URI[md5sum] = "f00c59983cc904bca977133c0a9b3e80" > +SRC_URI[sha256sum] = "989e51194c6adadbd156da3288e37bad847b93b3b876502e83033b70493af392" > + > +S = "${WORKDIR}/Ice-${PV}" > + > +inherit python-dir pkgconfig > + > +export PYTHON_VERSION = "python2.7" > + > +do_configure() { > + : > +} > + > +do_compile_prepend_class-target () { > + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" > + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" > + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" > +} > + > +do_compile_prepend_class-nativesdk () { > + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" > + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" > + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" > +} > + > +do_compile_prepend_class-native () { > + export ICE_HOME="${S}/cpp" > +} > + > +do_compile() { > + oe_runmake -C ${S} cpp > + oe_runmake -C ${S} py > +} > + > +do_install_prepend_class-target () { > + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" > + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" > + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" > +} > + > +do_install_prepend_class-nativesdk () { > + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" > + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" > + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" > +} > + > +do_install_prepend_class-native () { > + export ICE_HOME="${S}/cpp" > +} > + > +do_install() { > + oe_runmake -C ${S}/cpp prefix=${D}${prefix} install install-common > + oe_runmake -C ${S}/py prefix=${D}${prefix} install > +} > + > +PACKAGES += "${PN}-python ${PN}-python-dev ${PN}-python-dbg" > + > +FILES_${PN}-doc += "${prefix}/man/man1" > +FILES_${PN} += "${prefix}/*LICENSE ${libdir}/ImportKey.class ${prefix}/RELEASE_NOTES ${prefix}/CHANGES" > +FILES_${PN}-dev += "${includedir} ${prefix}/slice ${prefix}/config" > +FILES_${PN}-python-dev = "${PYTHON_SITEPACKAGES_DIR}/IcePy.so" > +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.py ${PYTHON_SITEPACKAGES_DIR}/IcePy.so.* ${PYTHON_SITEPACKAGES_DIR}/Ice*/*.py" > +FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug" > +FILES_${PN}-dev += "${bindir}/slice* ${datadir}/Ice-${PV}/slice/*" > + > +BBCLASSEXTEND = "native nativesdk" > -- > 1.8.3.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -- Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 205 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [meta-oe][PATCH] zeroc-ice : Add recipe. 2014-05-13 7:14 ` Martin Jansa @ 2014-05-22 14:55 ` Philip Balister 2014-06-20 15:17 ` Martin Jansa 0 siblings, 1 reply; 5+ messages in thread From: Philip Balister @ 2014-05-22 14:55 UTC (permalink / raw) To: openembedded-devel [-- Attachment #1: Type: text/plain, Size: 19316 bytes --] On 05/13/2014 03:14 AM, Martin Jansa wrote: > On Mon, May 12, 2014 at 08:21:38AM -0400, Philip Balister wrote: >> Oh the pain. >> >> Tested for ARM. Can build GNU Radio and an sdk that builds GNU Radio. > > Fails to build in world builds: Thanks Martin. I traced the problem to a patch that isn't applied for python-native (but is for python) in oe-core. I've submitted a patch to oe-core. When it goes through, I'll submit a v2. Philip > > | make[3]: Nothing to be done for `all'. > | make[3]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp/include/IceXML' > | make[2]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp/include' > | make[1]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp' > | make: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1' > | NOTE: make -j 8 -e MAKEFLAGS= -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1 py > | make: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1' > | echo "making all in py"; > | making all in py > | ( cd py && make all ) || exit 1; > | make[1]: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py' > | ../config/Make.common.rules:131: Found slice2py in both ICE_HOME/bin and ./../cpp/bin, ICE_HOME/bin/slice2py will be used! > | making all in modules > | make[2]: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules' > | ../../config/Make.common.rules:131: Found slice2py in both ICE_HOME/bin and ../../cpp/bin, ICE_HOME/bin/slice2py will be used! > | making all in IcePy > | make[3]: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules/IcePy' > | ../../../config/Make.common.rules:131: Found slice2py in both ICE_HOME/bin and ../../../cpp/bin, ICE_HOME/bin/slice2py will be used! > | g++ -c -I. -I/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp/include -I/usr/include/python2.7 -Wall -Werror -pthread -fPIC -g Communicator.cpp > | In file included from ./Communicator.h:13:0, > | from Communicator.cpp:14: > | ./Config.h:28:20: fatal error: Python.h: No such file or directory > | compilation terminated. > | make[3]: *** [Communicator.o] Error 1 > | make[3]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules/IcePy' > | make[2]: *** [all] Error 1 > | make[2]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules' > | make[1]: *** [all] Error 1 > | make[1]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py' > | make: *** [py] Error 1 > | make: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1' > | ERROR: oe_runmake failed > | WARNING: exit code 1 from a shell command. > | ERROR: Function failed: do_compile (log file is located at /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/temp/log.do_compile.31585) > NOTE: recipe zeroc-ice-native-3.5.1-r0: task do_compile: Failed > ERROR: Task 23367 (virtual:native:/home/jenkins/oe/shr-core-branches/shr-core/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb, do_compile) failed with exit code '1' > > >> >> Signed-off-by: Philip Balister <philip@balister.org> >> --- >> .../0002-Modify-Makefile-for-cross-compile.patch | 287 +++++++++++++++++++++ >> .../zeroc-ice/zeroc-ice_3.5.1.bb | 75 ++++++ >> 2 files changed, 362 insertions(+) >> create mode 100644 meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch >> create mode 100644 meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb >> >> diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch >> new file mode 100644 >> index 0000000..93fb5bf >> --- /dev/null >> +++ b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch >> @@ -0,0 +1,287 @@ >> +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 >> + >> diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb >> new file mode 100644 >> index 0000000..445e2f1 >> --- /dev/null >> +++ b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb >> @@ -0,0 +1,75 @@ >> +DESCRIPTION = "The Internet Communications Engine" >> +LICENSE = "GPLv2" >> +LIC_FILES_CHKSUM = "file://ICE_LICENSE;md5=3dc3037023cc2ae6b2c5b995da529515" >> +DEPENDS = "bzip2 expat openssl python db mcpp" >> +DEPENDS_prepend_class-target = "zeroc-ice-native " >> + >> +SRC_URI = "http://www.zeroc.com/download/Ice/3.5/Ice-${PV}.tar.gz \ >> + file://0002-Modify-Makefile-for-cross-compile.patch \ >> + " >> +SRC_URI[md5sum] = "f00c59983cc904bca977133c0a9b3e80" >> +SRC_URI[sha256sum] = "989e51194c6adadbd156da3288e37bad847b93b3b876502e83033b70493af392" >> + >> +S = "${WORKDIR}/Ice-${PV}" >> + >> +inherit python-dir pkgconfig >> + >> +export PYTHON_VERSION = "python2.7" >> + >> +do_configure() { >> + : >> +} >> + >> +do_compile_prepend_class-target () { >> + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" >> + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" >> + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" >> +} >> + >> +do_compile_prepend_class-nativesdk () { >> + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" >> + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" >> + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" >> +} >> + >> +do_compile_prepend_class-native () { >> + export ICE_HOME="${S}/cpp" >> +} >> + >> +do_compile() { >> + oe_runmake -C ${S} cpp >> + oe_runmake -C ${S} py >> +} >> + >> +do_install_prepend_class-target () { >> + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" >> + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" >> + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" >> +} >> + >> +do_install_prepend_class-nativesdk () { >> + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" >> + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" >> + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" >> +} >> + >> +do_install_prepend_class-native () { >> + export ICE_HOME="${S}/cpp" >> +} >> + >> +do_install() { >> + oe_runmake -C ${S}/cpp prefix=${D}${prefix} install install-common >> + oe_runmake -C ${S}/py prefix=${D}${prefix} install >> +} >> + >> +PACKAGES += "${PN}-python ${PN}-python-dev ${PN}-python-dbg" >> + >> +FILES_${PN}-doc += "${prefix}/man/man1" >> +FILES_${PN} += "${prefix}/*LICENSE ${libdir}/ImportKey.class ${prefix}/RELEASE_NOTES ${prefix}/CHANGES" >> +FILES_${PN}-dev += "${includedir} ${prefix}/slice ${prefix}/config" >> +FILES_${PN}-python-dev = "${PYTHON_SITEPACKAGES_DIR}/IcePy.so" >> +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.py ${PYTHON_SITEPACKAGES_DIR}/IcePy.so.* ${PYTHON_SITEPACKAGES_DIR}/Ice*/*.py" >> +FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug" >> +FILES_${PN}-dev += "${bindir}/slice* ${datadir}/Ice-${PV}/slice/*" >> + >> +BBCLASSEXTEND = "native nativesdk" >> -- >> 1.8.3.1 >> >> -- >> _______________________________________________ >> Openembedded-devel mailing list >> Openembedded-devel@lists.openembedded.org >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 550 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [meta-oe][PATCH] zeroc-ice : Add recipe. 2014-05-22 14:55 ` Philip Balister @ 2014-06-20 15:17 ` Martin Jansa 0 siblings, 0 replies; 5+ messages in thread From: Martin Jansa @ 2014-06-20 15:17 UTC (permalink / raw) To: openembedded-devel [-- Attachment #1: Type: text/plain, Size: 22121 bytes --] On Thu, May 22, 2014 at 10:55:04AM -0400, Philip Balister wrote: > On 05/13/2014 03:14 AM, Martin Jansa wrote: > > On Mon, May 12, 2014 at 08:21:38AM -0400, Philip Balister wrote: > >> Oh the pain. > >> > >> Tested for ARM. Can build GNU Radio and an sdk that builds GNU Radio. > > > > Fails to build in world builds: > > Thanks Martin. I traced the problem to a patch that isn't applied for > python-native (but is for python) in oe-core. I've submitted a patch to > oe-core. When it goes through, I'll submit a v2. It started to fail again :/ | i586-webos-linux-g++ -m32 -march=i586 --sysroot=/home/jenkins/anaconda/build-webos-pro-master/build/BUILD/sysroots/qemux86 -c -I.. -I./include -I../include -I../../include -DFREEZE_API_EXPORTS -Wall -Werror -pthread -fPIC -g BackgroundSaveEvictorI.cpp | In file included from ../Freeze/TransactionI.h:15:0, | from ../Freeze/ObjectStore.h:18, | from ../Freeze/EvictorI.h:16, | from ../Freeze/BackgroundSaveEvictorI.h:13, | from BackgroundSaveEvictorI.cpp:10: | /home/jenkins/anaconda/build-webos-pro-master/build/BUILD/sysroots/qemux86/usr/include/db_cxx.h:59:22: fatal error: iostream.h: No such file or directory | #include <iostream.h> | ^ | compilation terminated. | make[3]: *** [BackgroundSaveEvictorI.o] Error 1 | make[3]: Leaving directory `/home/jenkins/anaconda/build-webos-pro-master/build/BUILD/work/i586-webos-linux/zeroc-ice/3.5.1-r0/Ice-3.5.1/cpp/src/Freeze' | make[2]: *** [Freeze] Error 2 | make[2]: Leaving directory `/home/jenkins/anaconda/build-webos-pro-master/build/BUILD/work/i586-webos-linux/zeroc-ice/3.5.1-r0/Ice-3.5.1/cpp/src' | make[1]: *** [all] Error 1 | make[1]: Leaving directory `/home/jenkins/anaconda/build-webos-pro-master/build/BUILD/work/i586-webos-linux/zeroc-ice/3.5.1-r0/Ice-3.5.1/cpp' | make: *** [cpp] Error 1 | make: Leaving directory `/home/jenkins/anaconda/build-webos-pro-master/build/BUILD/work/i586-webos-linux/zeroc-ice/3.5.1-r0/Ice-3.5.1' | ERROR: oe_runmake failed > Philip > > > > > | make[3]: Nothing to be done for `all'. > > | make[3]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp/include/IceXML' > > | make[2]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp/include' > > | make[1]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp' > > | make: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1' > > | NOTE: make -j 8 -e MAKEFLAGS= -C /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1 py > > | make: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1' > > | echo "making all in py"; > > | making all in py > > | ( cd py && make all ) || exit 1; > > | make[1]: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py' > > | ../config/Make.common.rules:131: Found slice2py in both ICE_HOME/bin and ./../cpp/bin, ICE_HOME/bin/slice2py will be used! > > | making all in modules > > | make[2]: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules' > > | ../../config/Make.common.rules:131: Found slice2py in both ICE_HOME/bin and ../../cpp/bin, ICE_HOME/bin/slice2py will be used! > > | making all in IcePy > > | make[3]: Entering directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules/IcePy' > > | ../../../config/Make.common.rules:131: Found slice2py in both ICE_HOME/bin and ../../../cpp/bin, ICE_HOME/bin/slice2py will be used! > > | g++ -c -I. -I/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/cpp/include -I/usr/include/python2.7 -Wall -Werror -pthread -fPIC -g Communicator.cpp > > | In file included from ./Communicator.h:13:0, > > | from Communicator.cpp:14: > > | ./Config.h:28:20: fatal error: Python.h: No such file or directory > > | compilation terminated. > > | make[3]: *** [Communicator.o] Error 1 > > | make[3]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules/IcePy' > > | make[2]: *** [all] Error 1 > > | make[2]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py/modules' > > | make[1]: *** [all] Error 1 > > | make[1]: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1/py' > > | make: *** [py] Error 1 > > | make: Leaving directory `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/Ice-3.5.1' > > | ERROR: oe_runmake failed > > | WARNING: exit code 1 from a shell command. > > | ERROR: Function failed: do_compile (log file is located at /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/x86_64-linux/zeroc-ice-native/3.5.1-r0/temp/log.do_compile.31585) > > NOTE: recipe zeroc-ice-native-3.5.1-r0: task do_compile: Failed > > ERROR: Task 23367 (virtual:native:/home/jenkins/oe/shr-core-branches/shr-core/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb, do_compile) failed with exit code '1' > > > > > >> > >> Signed-off-by: Philip Balister <philip@balister.org> > >> --- > >> .../0002-Modify-Makefile-for-cross-compile.patch | 287 +++++++++++++++++++++ > >> .../zeroc-ice/zeroc-ice_3.5.1.bb | 75 ++++++ > >> 2 files changed, 362 insertions(+) > >> create mode 100644 meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch > >> create mode 100644 meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb > >> > >> diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch > >> new file mode 100644 > >> index 0000000..93fb5bf > >> --- /dev/null > >> +++ b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch > >> @@ -0,0 +1,287 @@ > >> +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 > >> + > >> diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb > >> new file mode 100644 > >> index 0000000..445e2f1 > >> --- /dev/null > >> +++ b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb > >> @@ -0,0 +1,75 @@ > >> +DESCRIPTION = "The Internet Communications Engine" > >> +LICENSE = "GPLv2" > >> +LIC_FILES_CHKSUM = "file://ICE_LICENSE;md5=3dc3037023cc2ae6b2c5b995da529515" > >> +DEPENDS = "bzip2 expat openssl python db mcpp" > >> +DEPENDS_prepend_class-target = "zeroc-ice-native " > >> + > >> +SRC_URI = "http://www.zeroc.com/download/Ice/3.5/Ice-${PV}.tar.gz \ > >> + file://0002-Modify-Makefile-for-cross-compile.patch \ > >> + " > >> +SRC_URI[md5sum] = "f00c59983cc904bca977133c0a9b3e80" > >> +SRC_URI[sha256sum] = "989e51194c6adadbd156da3288e37bad847b93b3b876502e83033b70493af392" > >> + > >> +S = "${WORKDIR}/Ice-${PV}" > >> + > >> +inherit python-dir pkgconfig > >> + > >> +export PYTHON_VERSION = "python2.7" > >> + > >> +do_configure() { > >> + : > >> +} > >> + > >> +do_compile_prepend_class-target () { > >> + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" > >> + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" > >> + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" > >> +} > >> + > >> +do_compile_prepend_class-nativesdk () { > >> + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" > >> + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" > >> + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" > >> +} > >> + > >> +do_compile_prepend_class-native () { > >> + export ICE_HOME="${S}/cpp" > >> +} > >> + > >> +do_compile() { > >> + oe_runmake -C ${S} cpp > >> + oe_runmake -C ${S} py > >> +} > >> + > >> +do_install_prepend_class-target () { > >> + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" > >> + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" > >> + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" > >> +} > >> + > >> +do_install_prepend_class-nativesdk () { > >> + export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" > >> + export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" > >> + export ICE_HOME="${STAGING_DIR_NATIVE}/usr" > >> +} > >> + > >> +do_install_prepend_class-native () { > >> + export ICE_HOME="${S}/cpp" > >> +} > >> + > >> +do_install() { > >> + oe_runmake -C ${S}/cpp prefix=${D}${prefix} install install-common > >> + oe_runmake -C ${S}/py prefix=${D}${prefix} install > >> +} > >> + > >> +PACKAGES += "${PN}-python ${PN}-python-dev ${PN}-python-dbg" > >> + > >> +FILES_${PN}-doc += "${prefix}/man/man1" > >> +FILES_${PN} += "${prefix}/*LICENSE ${libdir}/ImportKey.class ${prefix}/RELEASE_NOTES ${prefix}/CHANGES" > >> +FILES_${PN}-dev += "${includedir} ${prefix}/slice ${prefix}/config" > >> +FILES_${PN}-python-dev = "${PYTHON_SITEPACKAGES_DIR}/IcePy.so" > >> +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.py ${PYTHON_SITEPACKAGES_DIR}/IcePy.so.* ${PYTHON_SITEPACKAGES_DIR}/Ice*/*.py" > >> +FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug" > >> +FILES_${PN}-dev += "${bindir}/slice* ${datadir}/Ice-${PV}/slice/*" > >> + > >> +BBCLASSEXTEND = "native nativesdk" > >> -- > >> 1.8.3.1 > >> > >> -- > >> _______________________________________________ > >> Openembedded-devel mailing list > >> Openembedded-devel@lists.openembedded.org > >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > > > > > > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -- Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 188 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [meta-oe][PATCH] zeroc-ice : Add recipe. 2014-05-12 12:21 [meta-oe][PATCH] zeroc-ice : Add recipe Philip Balister 2014-05-13 7:14 ` Martin Jansa @ 2014-05-13 8:22 ` Koen Kooi 1 sibling, 0 replies; 5+ messages in thread From: Koen Kooi @ 2014-05-13 8:22 UTC (permalink / raw) To: openembedded-devel -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Philip Balister schreef op 12-05-14 14:21: > Oh the pain. > > Tested for ARM. Can build GNU Radio and an sdk that builds GNU Radio. MIssing Upstream-status in patches > > Signed-off-by: Philip Balister <philip@balister.org> --- > .../0002-Modify-Makefile-for-cross-compile.patch | 287 > +++++++++++++++++++++ .../zeroc-ice/zeroc-ice_3.5.1.bb > | 75 ++++++ 2 files changed, 362 insertions(+) create mode 100644 > meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch > > create mode 100644 meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb > > diff --git > a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch > b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch > > new file mode 100644 > index 0000000..93fb5bf --- /dev/null +++ > b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch > > @@ -0,0 +1,287 @@ > +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 + > diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb > b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb new file mode > 100644 index 0000000..445e2f1 --- /dev/null +++ > b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb @@ -0,0 +1,75 > @@ +DESCRIPTION = "The Internet Communications Engine" +LICENSE = > "GPLv2" +LIC_FILES_CHKSUM = > "file://ICE_LICENSE;md5=3dc3037023cc2ae6b2c5b995da529515" +DEPENDS = > "bzip2 expat openssl python db mcpp" +DEPENDS_prepend_class-target = > "zeroc-ice-native " + +SRC_URI = > "http://www.zeroc.com/download/Ice/3.5/Ice-${PV}.tar.gz \ + > file://0002-Modify-Makefile-for-cross-compile.patch \ + " > +SRC_URI[md5sum] = "f00c59983cc904bca977133c0a9b3e80" +SRC_URI[sha256sum] > = "989e51194c6adadbd156da3288e37bad847b93b3b876502e83033b70493af392" + +S > = "${WORKDIR}/Ice-${PV}" + +inherit python-dir pkgconfig + +export > PYTHON_VERSION = "python2.7" + +do_configure() { + : +} + > +do_compile_prepend_class-target () { + export > PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" + export > PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" + export > ICE_HOME="${STAGING_DIR_NATIVE}/usr" +} + > +do_compile_prepend_class-nativesdk () { + export > PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" + export > PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" + export > ICE_HOME="${STAGING_DIR_NATIVE}/usr" +} + > +do_compile_prepend_class-native () { + export ICE_HOME="${S}/cpp" +} > + +do_compile() { + oe_runmake -C ${S} cpp + oe_runmake -C ${S} py > +} + +do_install_prepend_class-target () { + export > PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" + export > PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" + export > ICE_HOME="${STAGING_DIR_NATIVE}/usr" +} + > +do_install_prepend_class-nativesdk () { + export > PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" + export > PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" + export > ICE_HOME="${STAGING_DIR_NATIVE}/usr" +} + > +do_install_prepend_class-native () { + export ICE_HOME="${S}/cpp" +} > + +do_install() { + oe_runmake -C ${S}/cpp prefix=${D}${prefix} > install install-common + oe_runmake -C ${S}/py prefix=${D}${prefix} > install +} + +PACKAGES += "${PN}-python ${PN}-python-dev > ${PN}-python-dbg" + +FILES_${PN}-doc += "${prefix}/man/man1" +FILES_${PN} > += "${prefix}/*LICENSE ${libdir}/ImportKey.class ${prefix}/RELEASE_NOTES > ${prefix}/CHANGES" +FILES_${PN}-dev += "${includedir} ${prefix}/slice > ${prefix}/config" +FILES_${PN}-python-dev = > "${PYTHON_SITEPACKAGES_DIR}/IcePy.so" +FILES_${PN}-python = > "${PYTHON_SITEPACKAGES_DIR}/*.py ${PYTHON_SITEPACKAGES_DIR}/IcePy.so.* > ${PYTHON_SITEPACKAGES_DIR}/Ice*/*.py" +FILES_${PN}-python-dbg = > "${PYTHON_SITEPACKAGES_DIR}/.debug" +FILES_${PN}-dev += "${bindir}/slice* > ${datadir}/Ice-${PV}/slice/*" + +BBCLASSEXTEND = "native nativesdk" > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) Comment: GPGTools - http://gpgtools.org iD8DBQFTcdZFMkyGM64RGpERAjpGAKCYowY+VHsoqBftUbUIp2UWMzi6tgCfYP3O j8t9yo1pEfXyqtoxvWp/wiU= =WrTZ -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-06-20 15:17 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-05-12 12:21 [meta-oe][PATCH] zeroc-ice : Add recipe Philip Balister 2014-05-13 7:14 ` Martin Jansa 2014-05-22 14:55 ` Philip Balister 2014-06-20 15:17 ` Martin Jansa 2014-05-13 8:22 ` Koen Kooi
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.