libffi: new package
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 8 Jan 2011 14:15:24 +0000 (15:15 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 25 Jan 2011 07:59:56 +0000 (08:59 +0100)
libffi is needed by the Python interpreter.

The libffi library provides a portable, high level programming
interface to various calling conventions. This allows a programmer to
call any function specified by a call interface description at
run-time.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/Config.in
package/libffi/Config.in [new file with mode: 0644]
package/libffi/libffi.mk [new file with mode: 0644]

index 48f245c7108ddc85f2ad67ab2363227f0e787990..4f1621b21286d1b90c339f887582036124e092bd 100644 (file)
@@ -327,6 +327,7 @@ source "package/libcap/Config.in"
 source "package/libdaemon/Config.in"
 source "package/libelf/Config.in"
 source "package/libevent/Config.in"
+source "package/libffi/Config.in"
 source "package/libglib2/Config.in"
 source "package/liboil/Config.in"
 source "package/libsigc/Config.in"
diff --git a/package/libffi/Config.in b/package/libffi/Config.in
new file mode 100644 (file)
index 0000000..7211f8f
--- /dev/null
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_LIBFFI
+       bool "libffi"
+       help
+         The libffi library provides a portable, high level
+         programming interface to various calling conventions. This
+         allows a programmer to call any function specified by a call
+         interface description at run-time.
+
+         http://sourceware.org/libffi/
diff --git a/package/libffi/libffi.mk b/package/libffi/libffi.mk
new file mode 100644 (file)
index 0000000..0c5184d
--- /dev/null
@@ -0,0 +1,33 @@
+#############################################################
+#
+# libffi
+#
+#############################################################
+
+LIBFFI_VERSION = 3.0.9
+LIBFFI_SITE    = ftp://sources.redhat.com/pub/libffi/
+
+LIBFFI_INSTALL_STAGING = YES
+
+# Move the headers to the usual location, and adjust the .pc file
+# accordingly
+define LIBFFI_MOVE_STAGING_HEADERS
+       mv $(STAGING_DIR)/usr/lib/libffi-*/include/*.h $(STAGING_DIR)/usr/include/
+       sed -i '/^includedir.*/d' $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc
+       rm -rf $(TARGET_DIR)/usr/lib/libffi-*
+endef
+
+LIBFFI_POST_INSTALL_STAGING_HOOKS += LIBFFI_MOVE_STAGING_HEADERS
+
+# Similar for target headers
+define LIBFFI_MOVE_TARGET_HEADERS
+       install -d $(TARGET_DIR)/usr/include/
+       mv $(TARGET_DIR)/usr/lib/libffi-*/include/*.h $(TARGET_DIR)/usr/include/
+       sed -i '/^includedir.*/d' $(TARGET_DIR)/usr/lib/pkgconfig/libffi.pc
+       rm -rf $(TARGET_DIR)/usr/lib/libffi-*
+endef
+
+LIBFFI_POST_INSTALL_TARGET_HOOKS += LIBFFI_MOVE_TARGET_HEADERS
+
+$(eval $(call AUTOTARGETS,package,libffi))
+