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

Koen Kooi koen at dominion.thruhere.net
Tue May 13 08:22:29 UTC 2014


-----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 at 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 at 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-----




More information about the Openembedded-devel mailing list