Patchwork [meta-oe] zeroc-ice : Add recipe.

login
register
mail settings
Submitter Philip Balister
Date May 12, 2014, 12:21 p.m.
Message ID <1399897298-15929-1-git-send-email-philip@balister.org>
Download mbox | patch
Permalink /patch/71963/
State Accepted, archived
Headers show

Comments

Philip Balister - May 12, 2014, 12:21 p.m.
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
Martin Jansa - May 13, 2014, 7:14 a.m.
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
Koen Kooi - May 13, 2014, 8:22 a.m.
-----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-----
Philip Balister - May 22, 2014, 2:55 p.m.
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
> 
> 
>
Martin Jansa - June 20, 2014, 3:17 p.m.
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

Patch

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"