summaryrefslogtreecommitdiff
path: root/package/libffi
diff options
context:
space:
mode:
Diffstat (limited to 'package/libffi')
-rw-r--r--package/libffi/Config.in9
-rw-r--r--package/libffi/libffi.mk33
2 files changed, 42 insertions, 0 deletions
diff --git a/package/libffi/Config.in b/package/libffi/Config.in
new file mode 100644
index 000000000..7211f8fa7
--- /dev/null
+++ b/package/libffi/Config.in
@@ -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
index 000000000..0c5184df9
--- /dev/null
+++ b/package/libffi/libffi.mk
@@ -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))
+