summaryrefslogtreecommitdiffstats
path: root/recipes/libffi
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/libffi
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
downloadopenembedded-709c4d66e0b107ca606941b988bad717c0b45d9b.tar.gz
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/libffi')
-rw-r--r--recipes/libffi/libffi-2.0+gcc3.4.1/soname.patch32
-rw-r--r--recipes/libffi/libffi-native_2.0+gcc4.3.2.bb30
-rw-r--r--recipes/libffi/libffi_2.0+gcc3.4.1.bb65
-rw-r--r--recipes/libffi/libffi_2.0+gcc4.3.2.bb87
-rw-r--r--recipes/libffi/libffi_3.0.8.bb81
5 files changed, 295 insertions, 0 deletions
diff --git a/recipes/libffi/libffi-2.0+gcc3.4.1/soname.patch b/recipes/libffi/libffi-2.0+gcc3.4.1/soname.patch
new file mode 100644
index 0000000000..bccf75d183
--- /dev/null
+++ b/recipes/libffi/libffi-2.0+gcc3.4.1/soname.patch
@@ -0,0 +1,32 @@
+--- libffi.orig/Makefile.am 2003-10-21 21:01:53.000000000 +0200
++++ libffi/Makefile.am 2004-08-09 13:26:13.000000000 +0200
+@@ -175,7 +175,7 @@
+
+ AM_CFLAGS = -Wall -g -fexceptions
+
+-libffi_la_LDFLAGS = -release $(VERSION)
++libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
+
+ INCLUDES = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
+
+--- libffi.orig/libtool-version 1970-01-01 01:00:00.000000000 +0100
++++ libffi/libtool-version 2004-08-09 13:24:18.000000000 +0200
+@@ -0,0 +1,6 @@
++# This file is used to maintain libtool version info for libffi. See
++# the libtool manual to understand the meaning of the fields. This is
++# a separate file so that version updates don't involve re-running
++# automake.
++# CURRENT:REVISION:AGE
++3:0:0
+
+--- libtool.orig/Makefile.in 2004-08-09 14:29:09.000000000 +0200
++++ libtool/Makefile.in 2004-08-09 14:29:53.000000000 +0200
+@@ -226,7 +226,7 @@
+
+ AM_CFLAGS = -Wall -g -fexceptions
+
+-libffi_la_LDFLAGS = -release $(VERSION)
++libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
+
+ INCLUDES = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
diff --git a/recipes/libffi/libffi-native_2.0+gcc4.3.2.bb b/recipes/libffi/libffi-native_2.0+gcc4.3.2.bb
new file mode 100644
index 0000000000..f0859e963f
--- /dev/null
+++ b/recipes/libffi/libffi-native_2.0+gcc4.3.2.bb
@@ -0,0 +1,30 @@
+require libffi_${PV}.bb
+
+inherit native
+
+EXTRA_OECONF = "--with-gnu-ld \
+ --enable-shared \
+ --enable-target-optspace \
+ --enable-languages=c,c++,f77 \
+ --enable-threads=posix \
+ --disable-multilib \
+ --enable-c99 \
+ --enable-long-long \
+ --enable-symvers=gnu \
+ --program-prefix=${TARGET_PREFIX} \
+ ${EXTRA_OECONF_PATHS}"
+
+ffi_include = "ffi.h ffitarget.h"
+
+install_libffi_headers() {
+ :
+}
+
+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
+}
diff --git a/recipes/libffi/libffi_2.0+gcc3.4.1.bb b/recipes/libffi/libffi_2.0+gcc3.4.1.bb
new file mode 100644
index 0000000000..6b2df35ae1
--- /dev/null
+++ b/recipes/libffi/libffi_2.0+gcc3.4.1.bb
@@ -0,0 +1,65 @@
+SECTION = "libs"
+DESCRIPTION = "Foreign Function Interface library"
+LICENSE = "libffi"
+PRIORITY = "optional"
+PR = "r1"
+
+inherit autotools gettext
+
+PACKAGES = "${PN}-dbg ${PN} ${PN}-dev"
+
+FILES_${PN} = "${libdir}/libffi.so.*"
+
+FILES_${PN}-dev = "${includedir}/ffi* \
+ ${libdir}/libffi.a \
+ ${libdir}/libffi.la \
+ ${libdir}/libffi.so"
+
+GCC_VER = "${@bb.data.getVar('PV',d,1).split('gcc')[1]}"
+
+SRC_URI = "${GNU_MIRROR}/gcc/gcc-${GCC_VER}/gcc-${GCC_VER}.tar.bz2 \
+ file://soname.patch;patch=1"
+
+MIRRORS_prepend () {
+${GNU_MIRROR}/gcc/ http://gcc.get-software.com/releases/
+${GNU_MIRROR}/gcc/ http://mirrors.rcn.net/pub/sourceware/gcc/releases/
+}
+
+S = "${WORKDIR}/gcc-${GCC_VER}/libffi"
+B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
+
+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_PATHS}"
+
+EXTRA_OECONF_PATHS = "--with-local-prefix=${prefix}/local \
+ --with-gxx-include-dir=${includedir}/c++/${PV}"
+
+do_configure () {
+ (cd ${S}/.. && gnu-configize) || die "failure running gnu-configize"
+ oe_runconf
+}
+
+do_install_append() {
+ # follow debian and move this to $includedir
+ mv ${D}${libdir}/gcc/${TARGET_SYS}/${GCC_VER}/include/libffi/ffitarget.h ${D}${includedir}/
+}
+
+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
+}
diff --git a/recipes/libffi/libffi_2.0+gcc4.3.2.bb b/recipes/libffi/libffi_2.0+gcc4.3.2.bb
new file mode 100644
index 0000000000..5a2ae1ae9b
--- /dev/null
+++ b/recipes/libffi/libffi_2.0+gcc4.3.2.bb
@@ -0,0 +1,87 @@
+require packages/gcc/gcc-common.inc
+SECTION = "libs"
+DESCRIPTION = "Foreign Function Interface library"
+LICENSE = "libffi"
+PRIORITY = "optional"
+
+inherit autotools gettext
+
+PR = "r1"
+
+PACKAGES = "${PN}-dbg ${PN} ${PN}-dev"
+
+FILES_${PN} = "${libdir}/libffi.so.*"
+
+FILES_${PN}-dev = "${includedir}/${TARGET_SYS}/ffi* \
+ ${libdir}/libffi.a \
+ ${libdir}/libffi.la \
+ ${libdir}/libffi.so"
+
+GCC_VER = "${@bb.data.getVar('PV',d,1).split('gcc')[1]}"
+
+SRC_URI = "${GNU_MIRROR}/gcc/gcc-${GCC_VER}/gcc-${GCC_VER}.tar.bz2 \
+ "
+
+MIRRORS_prepend () {
+${GNU_MIRROR}/gcc/ http://gcc.get-software.com/releases/
+${GNU_MIRROR}/gcc/ http://mirrors.rcn.net/pub/sourceware/gcc/releases/
+}
+
+S = "${WORKDIR}/gcc-${GCC_VER}/libffi"
+B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
+
+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_configure () {
+ (cd ${S}/.. && gnu-configize) || die "failure running gnu-configize"
+ oe_runconf
+}
+
+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}/gcc/${TARGET_SYS}/${GCC_VER}/include/ffitarget.h ${D}${includedir}/${TARGET_SYS}
+ mv ${D}${libdir}/gcc/${TARGET_SYS}/${GCC_VER}/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
+}
diff --git a/recipes/libffi/libffi_3.0.8.bb b/recipes/libffi/libffi_3.0.8.bb
new file mode 100644
index 0000000000..0bad49bf23
--- /dev/null
+++ b/recipes/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
+}