summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Balister <philip@balister.org>2014-07-11 10:54:33 -0400
committerCliff Brake <cbrake@bec-systems.com>2014-07-16 15:28:25 -0400
commit39723f7c6d987808bbfd5466da985bc58918ad70 (patch)
tree709851ce8355650a24d74e5463d998c65a44bb40
parentee24939c4c70b63a9fb7e93a58889a3231d3d367 (diff)
downloadmeta-openembedded-39723f7c6d987808bbfd5466da985bc58918ad70.tar.gz
zeroc-ice : Add recipe.
Oh the pain. Tested for ARM. Can build GNU Radio and an sdk that builds GNU Radio. Update Upstream-Status for build system patch. Signed-off-by: Philip Balister <philip@balister.org> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Cliff Brake <cbrake@bec-systems.com>
-rw-r--r--meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch292
-rw-r--r--meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb77
2 files changed, 369 insertions, 0 deletions
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 000000000..43096d2bc
--- /dev/null
+++ b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch
@@ -0,0 +1,292 @@
1Upstream-Status: Inappropriate
2
3This patch lets you build Ice with OpenEmbedded. I doubt you could do
4a regular build after applying this patch.
5
6From bc622ce74fa03a935278d21736a5a251466e1798 Mon Sep 17 00:00:00 2001
7From: Tom Rondeau <tom@trondeau.com>
8Date: Wed, 16 Apr 2014 14:34:51 -0400
9Subject: [PATCH] Modify Makefiles for cross compile
10
11---
12 config/Make.common.rules | 20 +++++++------
13 cpp/Makefile | 9 +++---
14 cpp/config/Make.rules | 32 ++++++++++++--------
15 cpp/config/Make.rules.Linux | 18 ++---------
16 cpp/src/IceStorm/FreezeDB/Makefile | 2 +-
17 py/config/Make.rules | 58 +++++++++++++++++++-----------------
18 6 files changed, 70 insertions(+), 69 deletions(-)
19
20diff --git a/config/Make.common.rules b/config/Make.common.rules
21index d7b1d59..a3fb17e 100644
22--- a/config/Make.common.rules
23+++ b/config/Make.common.rules
24@@ -65,9 +65,9 @@ ifeq ($(UNAME),Linux)
25 #
26 # Some Linux distributions like Debian/Ubuntu don't use /usr/lib64.
27 #
28- ifeq ($(shell test -d /usr/lib64 && echo 0),0)
29- lp64suffix = 64
30- endif
31+ #ifeq ($(shell test -d /usr/lib64 && echo 0),0)
32+ # lp64suffix = 64
33+ #endif
34 ifeq ($(LP64),)
35 LP64 = yes
36 endif
37@@ -244,12 +244,13 @@ else
38 slicedir = $(ice_dir)/slice
39 endif
40
41-ifeq ($(prefix), /usr)
42- install_slicedir = /usr/share/Ice-$(VERSION)/slice
43-else
44- install_slicedir = $(prefix)/slice
45-endif
46+#ifeq ($(prefix), /usr)
47+# install_slicedir = /usr/share/Ice-$(VERSION)/slice
48+#else
49+# install_slicedir = $(prefix)/slice
50+#endif
51
52+install_slicedir = $(prefix)/slice
53 #
54 # Set environment variables for the Slice translator.
55 #
56@@ -265,7 +266,8 @@ ifneq ($(ice_dir), /usr)
57 endif
58
59 ifeq ($(UNAME),Linux)
60- export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
61+ #export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
62+ export LD_LIBRARY_PATH := $(ICE_HOME)/lib:$(LD_LIBRARY_PATH)
63 endif
64
65 ifeq ($(UNAME),SunOS)
66diff --git a/cpp/Makefile b/cpp/Makefile
67index a68f113..1f44f57 100644
68--- a/cpp/Makefile
69+++ b/cpp/Makefile
70@@ -11,11 +11,12 @@ top_srcdir = .
71
72 include $(top_srcdir)/config/Make.rules
73
74-SUBDIRS = config src include test
75+#SUBDIRS = config src include test
76+SUBDIRS = config src include
77
78-ifeq ($(shell uname | grep MINGW),)
79-SUBDIRS := $(SUBDIRS) demo
80-endif
81+#ifeq ($(shell uname | grep MINGW),)
82+#SUBDIRS := $(SUBDIRS) demo
83+#endif
84
85 INSTALL_SUBDIRS = $(install_bindir) $(install_libdir) $(install_includedir) \
86 $(install_configdir) $(install_mandir)
87diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules
88index 37461ae..197c5e8 100644
89--- a/cpp/config/Make.rules
90+++ b/cpp/config/Make.rules
91@@ -175,11 +175,12 @@ headerdir = $(top_srcdir)/include
92 # includedir is not handled the same as bindir and libdir
93 # because it is used in the .depend files
94 #
95-ifdef ice_src_dist
96- includedir = $(top_srcdir)/include
97-else
98- includedir = $(ice_dir)/include
99-endif
100+#ifdef ice_src_dist
101+# includedir = $(top_srcdir)/include
102+#else
103+# includedir = $(ice_dir)/include
104+#endif
105+includedir = $(top_srcdir)/include
106
107 #
108 # Platform specific definitions
109@@ -277,14 +278,17 @@ ICECPPFLAGS = -I$(slicedir)
110 SLICE2CPPFLAGS = $(ICECPPFLAGS)
111
112 ifeq ($(ice_dir), /usr)
113- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS)
114+ LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS)
115 else
116 CPPFLAGS += -I$(includedir)
117- ifdef ice_src_dist
118- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
119- else
120- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix)
121- endif
122+# We must always build using the libraries in the source tree, the host's are obviously
123+# not what we want for the target
124+ LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir) $(call rpathlink,$(libdir))
125+# ifdef ice_src_dist
126+# LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
127+# else
128+# LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix)
129+# endif
130 endif
131
132 ifeq ($(FLEX_NOLINE),yes)
133@@ -313,8 +317,10 @@ endif
134
135 ifdef ice_src_dist
136 SLICEPARSERLIB = $(libdir)/$(call mklibfilename,Slice,$(VERSION))
137- SLICE2CPP = $(bindir)/slice2cpp
138- SLICE2FREEZE = $(bindir)/slice2freeze
139+# SLICE2CPP = $(bindir)/slice2cpp
140+# SLICE2FREEZE = $(bindir)/slice2freeze
141+ SLICE2CPP = $(ICE_HOME)/bin/slice2cpp
142+ SLICE2FREEZE = $(ICE_HOME)/bin/slice2freeze
143 else
144 SLICEPARSERLIB = $(ice_dir)/$(libsubdir)$(cpp11suffix)/$(call mklibfilename,Slice,$(VERSION))
145 SLICE2CPP = $(ice_dir)/$(binsubdir)$(cpp11suffix)/slice2cpp
146diff --git a/cpp/config/Make.rules.Linux b/cpp/config/Make.rules.Linux
147index 5d5717c..8363c6e 100644
148--- a/cpp/config/Make.rules.Linux
149+++ b/cpp/config/Make.rules.Linux
150@@ -31,7 +31,7 @@ ifeq ($(CXX),c++)
151 CXX = g++
152 endif
153
154-ifeq ($(CXX),g++)
155+#ifeq ($(CXX),g++)
156
157 ifneq ($(SUSE_i586),)
158 CXXARCHFLAGS += -march=i586
159@@ -71,14 +71,6 @@ ifeq ($(CXX),g++)
160 CXXARCHFLAGS += -mtune=v8 -pipe -Wno-deprecated -DICE_USE_MUTEX_SHARED
161 endif
162
163- ifeq ($(MACHINE),x86_64)
164- ifeq ($(LP64),yes)
165- CXXARCHFLAGS += -m64
166- else
167- CXXARCHFLAGS += -m32
168- endif
169- endif
170-
171 CXXFLAGS = $(CXXARCHFLAGS) -Wall -Werror -pthread
172
173 ifneq ($(GENPIC),no)
174@@ -102,15 +94,11 @@ ifeq ($(CXX),g++)
175
176 rpathlink = -Wl,-rpath-link,$(1)
177
178- ifneq ($(embedded_runpath_prefix),)
179- LDPLATFORMFLAGS = -Wl,--enable-new-dtags -Wl,-rpath,$(runpath_libdir)
180- else
181- LDPLATFORMFLAGS = -Wl,--enable-new-dtags
182- endif
183+ LDPLATFORMFLAGS = -Wl,--enable-new-dtags -Wl,-rpath,../../../lib
184
185 LDPLATFORMFLAGS += -rdynamic
186
187-endif
188+#endif
189
190 ifeq ($(CXX),icpc)
191 $(warning ===================================================================)
192diff --git a/cpp/src/IceStorm/FreezeDB/Makefile b/cpp/src/IceStorm/FreezeDB/Makefile
193index 7c844b7..cf15cb1 100644
194--- a/cpp/src/IceStorm/FreezeDB/Makefile
195+++ b/cpp/src/IceStorm/FreezeDB/Makefile
196@@ -66,7 +66,7 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME)
197
198 $(MIGRATE): $(MOBJS)
199 rm -f $@
200- $(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS)
201+ $(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS) -ldb_cxx
202
203 # The slice2freeze rules are structured like this to avoid issues with
204 # parallel make.
205diff --git a/py/config/Make.rules b/py/config/Make.rules
206index 43ce01b..1349342 100644
207--- a/py/config/Make.rules
208+++ b/py/config/Make.rules
209@@ -92,21 +92,23 @@ ifeq ($(shell test -f $(top_srcdir)/config/Make.rules.$(UNAME) && echo 0),0)
210 include $(top_srcdir)/config/Make.rules.$(UNAME)
211 else
212 include $(top_srcdir)/../cpp/config/Make.rules.$(UNAME)
213-endif
214+endif
215
216 libdir = $(top_srcdir)/python
217-ifneq ($(prefix), /usr)
218-install_pythondir = $(prefix)/python
219-install_libdir = $(prefix)/python
220-else
221- ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0)
222- install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
223- install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
224- else
225- install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
226- install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
227- endif
228-endif
229+#ifneq ($(prefix), /usr)
230+#install_pythondir = $(prefix)/python
231+#install_libdir = $(prefix)/python
232+#else
233+# ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0)
234+# install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
235+# install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
236+# else
237+# install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
238+# install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
239+# endif
240+#endif
241+install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
242+install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
243
244 ifeq ($(UNAME),SunOS)
245 ifeq ($(LP64),yes)
246@@ -115,19 +117,21 @@ ifeq ($(UNAME),SunOS)
247 endif
248 endif
249
250-ifdef ice_src_dist
251- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
252- ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
253- else
254- ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
255- endif
256- ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
257- ICE_FLAGS = -I$(ice_cpp_dir)/include
258-endif
259-ifdef ice_bin_dist
260- ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
261- ICE_FLAGS = -I$(ice_dir)/include
262-endif
263+#ifdef ice_src_dist
264+# ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
265+# ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
266+# else
267+# ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
268+# endif
269+# ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
270+# ICE_FLAGS = -I$(ice_cpp_dir)/include
271+#endif
272+#ifdef ice_bin_dist
273+# ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
274+# ICE_FLAGS = -I$(ice_dir)/include
275+#endif
276+ICE_LIB_DIR = -L$(top_srcdir)/../cpp/lib
277+ICE_FLAGS = -I$(ice_cpp_dir)/include
278 ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil
279
280 ifneq ($(embedded_runpath_prefix),)
281@@ -137,7 +141,7 @@ endif
282 CPPFLAGS =
283 ICECPPFLAGS = -I$(slicedir)
284 SLICE2PYFLAGS = $(ICECPPFLAGS)
285-LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
286+LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
287
288 ifdef ice_src_dist
289 ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
290--
2911.7.9.5
292
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 000000000..79d8b5aef
--- /dev/null
+++ b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb
@@ -0,0 +1,77 @@
1DESCRIPTION = "The Internet Communications Engine"
2LICENSE = "GPLv2"
3LIC_FILES_CHKSUM = "file://ICE_LICENSE;md5=3dc3037023cc2ae6b2c5b995da529515"
4DEPENDS = "bzip2 expat openssl python db mcpp"
5DEPENDS_prepend_class-target = "zeroc-ice-native "
6
7SRC_URI = "http://www.zeroc.com/download/Ice/3.5/Ice-${PV}.tar.gz \
8 file://0002-Modify-Makefile-for-cross-compile.patch \
9 "
10SRC_URI[md5sum] = "f00c59983cc904bca977133c0a9b3e80"
11SRC_URI[sha256sum] = "989e51194c6adadbd156da3288e37bad847b93b3b876502e83033b70493af392"
12
13S = "${WORKDIR}/Ice-${PV}"
14
15inherit python-dir pkgconfig
16
17export PYTHON_VERSION = "python2.7"
18
19do_configure() {
20 :
21}
22
23do_compile_prepend_class-target () {
24 export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
25 export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
26 export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
27}
28
29do_compile_prepend_class-nativesdk () {
30 export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
31 export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
32 export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
33}
34
35do_compile_prepend_class-native () {
36 export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
37 export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
38 export ICE_HOME="${S}/cpp"
39}
40
41do_compile() {
42 oe_runmake -C ${S} cpp
43 oe_runmake -C ${S} py
44}
45
46do_install_prepend_class-target () {
47 export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
48 export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
49 export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
50}
51
52do_install_prepend_class-nativesdk () {
53 export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
54 export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
55 export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
56}
57
58do_install_prepend_class-native () {
59 export ICE_HOME="${S}/cpp"
60}
61
62do_install() {
63 oe_runmake -C ${S}/cpp prefix=${D}${prefix} install install-common
64 oe_runmake -C ${S}/py prefix=${D}${prefix} install
65}
66
67PACKAGES += "${PN}-python ${PN}-python-dev ${PN}-python-dbg"
68
69FILES_${PN}-doc += "${prefix}/man/man1"
70FILES_${PN} += "${prefix}/*LICENSE ${libdir}/ImportKey.class ${prefix}/RELEASE_NOTES ${prefix}/CHANGES"
71FILES_${PN}-dev += "${includedir} ${prefix}/slice ${prefix}/config"
72FILES_${PN}-python-dev = "${PYTHON_SITEPACKAGES_DIR}/IcePy.so"
73FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.py ${PYTHON_SITEPACKAGES_DIR}/IcePy.so.* ${PYTHON_SITEPACKAGES_DIR}/Ice*/*.py"
74FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug"
75FILES_${PN}-dev += "${bindir}/slice* ${datadir}/Ice-${PV}/slice/*"
76
77BBCLASSEXTEND = "native nativesdk"