From ddd69b5609cc9bd954afcfc2f91831d64b9cfff7 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Mon, 4 Feb 2013 12:52:09 +0000 Subject: libffi: switch to using a Git version, brings Microblaze and Xtensa support We already had backported patches for the Blackfin and AArch64 support, and now we would have needed to also backport the Xtensa support and the Microblaze support. This starts to get crazy. Let's switch to using a Git version from Github, until libffi finally releases a new stable version. In order to achieve this, we also need to: * autoreconf the package, so that a libffi.pc file gets generated * manually install the libffi.pc file, because it doesn't get installed by libffi Makefile, for some reason * remove the part of the target post install hook that was messing with libffi.pc, since it was modifying the one in STAGING_DIR (which is odd for a target post install hook), and the libffi.pc file is anyway not installed to the target anymore. Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- package/libffi/libffi.mk | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) (limited to 'package/libffi/libffi.mk') diff --git a/package/libffi/libffi.mk b/package/libffi/libffi.mk index 64b3eb412..9fb86d71c 100644 --- a/package/libffi/libffi.mk +++ b/package/libffi/libffi.mk @@ -4,12 +4,17 @@ # ############################################################# -LIBFFI_VERSION = 3.0.11 -LIBFFI_SITE = ftp://sources.redhat.com/pub/libffi/ +LIBFFI_VERSION = bcc0c28001b6d427d5cd8037d2e3c892babc6b4c +LIBFFI_SITE = http://github.com/atgreen/libffi/tarball/$(LIBFFI_VERSION) LIBFFI_LICENSE = MIT LIBFFI_LICENSE_FILES = LICENSE LIBFFI_INSTALL_STAGING = YES +# We're using a version from Git which strangely bundles a generated +# configure script, but it's broken (doesn't generate the libffi.pc +# file). +LIBFFI_AUTORECONF = YES + # Newer CS MIPS toolchains use a different (compact) eh_frame format # libffi don't like them, just switch to the older format ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201209)$(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201203),y) @@ -17,9 +22,11 @@ LIBFFI_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -mno-compact-eh" endif # Move the headers to the usual location, and adjust the .pc file -# accordingly +# accordingly. For some reason, the libffi build system forgets to +# install the .pc file, so we do it manually. define LIBFFI_MOVE_STAGING_HEADERS mv $(STAGING_DIR)/usr/lib/libffi-*/include/*.h $(STAGING_DIR)/usr/include/ + $(INSTALL) -D -m 0644 $(@D)/libffi.pc $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc $(SED) '/^includedir.*/d' $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc $(SED) '/^Cflags:.*/d' $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc rm -rf $(TARGET_DIR)/usr/lib/libffi-* @@ -31,13 +38,23 @@ LIBFFI_POST_INSTALL_STAGING_HOOKS += LIBFFI_MOVE_STAGING_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) '/^includedir.*/d' $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc - $(SED) '/^Cflags:.*/d' $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc rm -rf $(TARGET_DIR)/usr/lib/libffi-* endef LIBFFI_POST_INSTALL_TARGET_HOOKS += LIBFFI_MOVE_TARGET_HEADERS +# We're using a version from Git which strangely bundles a generated +# configure script, but it's broken (doesn't generate the libffi.pc +# file). +HOST_LIBFFI_AUTORECONF = YES + +# For some reason, the libffi build system forgets to install the .pc +# file, so we do it manually. +define HOST_LIBFFI_INSTALL_PC_FILE + $(INSTALL) -D $(@D)/libffi.pc $(HOST_DIR)/usr/lib/pkgconfig/libffi.pc +endef + +HOST_LIBFFI_POST_INSTALL_HOOKS += HOST_LIBFFI_INSTALL_PC_FILE + $(eval $(autotools-package)) $(eval $(host-autotools-package)) - -- cgit v1.2.3