[oe-commits] Robert Schuster : libffi 3.0.8: New recipe.

GIT User account git at amethyst.openembedded.net
Tue Jan 13 20:02:06 UTC 2009


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 963f2ed994ed5dd7e2959b8f7c6275cdb79dd4e5
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=963f2ed994ed5dd7e2959b8f7c6275cdb79dd4e5

Author: Robert Schuster <thebohemian at gmx.net>
Date:   Tue Jan 13 21:00:54 2009 +0100

libffi 3.0.8: New recipe.
checksums.ini: Added entry for libffi 3.0.8.

---

 conf/checksums.ini              |    4 ++
 packages/libffi/libffi_3.0.8.bb |   81 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 85 insertions(+), 0 deletions(-)

diff --git a/conf/checksums.ini b/conf/checksums.ini
index 93135b6..90d62ea 100644
--- a/conf/checksums.ini
+++ b/conf/checksums.ini
@@ -11294,6 +11294,10 @@ sha256=a2f309c702ee72967676d96b1a9d06806d069fde8e88076200cca6479c3d3c38
 md5=0aa142335a8a00c32bb6c7dbfe95fc24
 sha256=a2f309c702ee72967676d96b1a9d06806d069fde8e88076200cca6479c3d3c38
 
+[ftp://sourceware.org/pub/libffi/libffi-3.0.8.tar.gz]
+md5=188a4f79fdac2310044b44b7d3918ef9
+sha256=2c7c5b88a68fb362262889ba25ef25dc27864b7bbf03547a8a36b8d567569406
+
 [http://klaus.geekserver.net/libflv/libflv.tar.gz]
 md5=5eb6b38393d81f16fb4155fe406e527c
 sha256=b53afe2a88fa24bdd53e2a3dd51ab660b89b46b1ba4918735d7331b2e56548d6
diff --git a/packages/libffi/libffi_3.0.8.bb b/packages/libffi/libffi_3.0.8.bb
new file mode 100644
index 0000000..0bad49b
--- /dev/null
+++ b/packages/libffi/libffi_3.0.8.bb
@@ -0,0 +1,81 @@
+require packages/gcc/gcc-common.inc
+
+SECTION = "libs"
+DESCRIPTION = "Foreign Function Interface library"
+LICENSE = "libffi"
+PRIORITY = "optional"
+
+inherit autotools gettext pkgconfig
+
+PR = "r0"
+
+S = "${WORKDIR}/${P}"
+
+B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
+
+PACKAGES = "${PN}-dbg ${PN} ${PN}-dev ${PN}-doc"
+
+FILES_${PN} = "${libdir}/libffi.so.*"
+
+FILES_${PN}-dev = "${includedir}/${TARGET_SYS}/ffi* \
+		   ${libdir}/libffi.a \
+		   ${libdir}/libffi.la \
+		   ${libdir}/libffi.so \
+			 ${libdir}/pkgconfig \
+"
+
+SRC_URI = "ftp://sourceware.org/pub/libffi/${P}.tar.gz"
+
+EXTRA_OECONF = "--with-gnu-ld \
+                --enable-shared \
+                --enable-target-optspace \
+                --enable-languages=c,c++,f77 \
+                --enable-threads=posix \
+                --enable-multilib \
+                --enable-c99 \
+                --enable-long-long \
+                --enable-symvers=gnu \
+                --program-prefix=${TARGET_PREFIX} \
+                ${EXTRA_OECONF_FPU} \
+                ${EXTRA_OECONF_PATHS}"
+
+EXTRA_OECONF_PATHS = "--with-local-prefix=${prefix}/local \
+                      --with-gxx-include-dir=${includedir}/c++/${PV}"
+
+# Build uclibc compilers without cxa_atexit support
+EXTRA_OECONF_append_linux               = " --enable-__cxa_atexit"
+EXTRA_OECONF_append_linux-gnueabi       = " --enable-__cxa_atexit"
+EXTRA_OECONF_append_linux-uclibc        = " --disable-__cxa_atexit"
+EXTRA_OECONF_append_linux-uclibcgnueabi = " --disable-__cxa_atexit"
+EXTRA_OECONF_FPU = "${@get_gcc_fpu_setting(bb, d)}"
+
+#Somehow gcc doesn't set __SOFTFP__ when passing -mfloatabi=softp :(
+TARGET_CC_ARCH_append_armv6 = " -D__SOFTFP__"
+TARGET_CC_ARCH_append_armv7a = " -D__SOFTFP__"
+
+do_compile_append() {
+	sed -i -e"s|\\${libdir}/${P}/include|\\${includedir}/${TARGET_SYS}/|" libffi.pc
+}
+
+do_install_append() {
+	install_libffi_headers
+}
+
+# Separate function which can be disabled in the -native recipe.
+install_libffi_headers() {
+	# follow Debian and move this to $includedir/${TARGET_SYS}
+	install -d ${D}${includedir}/${TARGET_SYS}
+	mv ${D}${libdir}/${P}/include/ffitarget.h ${D}${includedir}/${TARGET_SYS}
+	mv ${D}${libdir}/${P}/include/ffi.h ${D}${includedir}/${TARGET_SYS}
+}
+
+ffi_include = "ffi.h ffitarget.h"
+
+do_stage () {
+	oe_libinstall -so -C .libs libffi ${STAGING_LIBDIR}
+
+	mkdir -p ${STAGING_INCDIR}/
+	for i in ${ffi_include}; do
+		install -m 0644 include/$i ${STAGING_INCDIR}/
+	done
+}





More information about the Openembedded-commits mailing list