2011-01-08 15:15:24 +01:00
|
|
|
#############################################################
|
|
|
|
#
|
|
|
|
# libffi
|
|
|
|
#
|
|
|
|
#############################################################
|
|
|
|
|
2013-02-04 13:52:09 +01:00
|
|
|
LIBFFI_VERSION = bcc0c28001b6d427d5cd8037d2e3c892babc6b4c
|
|
|
|
LIBFFI_SITE = http://github.com/atgreen/libffi/tarball/$(LIBFFI_VERSION)
|
2012-11-13 02:05:44 +01:00
|
|
|
LIBFFI_LICENSE = MIT
|
|
|
|
LIBFFI_LICENSE_FILES = LICENSE
|
2011-01-08 15:15:24 +01:00
|
|
|
LIBFFI_INSTALL_STAGING = YES
|
|
|
|
|
2013-02-04 13:52:09 +01:00
|
|
|
# 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
|
|
|
|
|
2012-12-28 06:35:39 +01:00
|
|
|
# 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)
|
|
|
|
LIBFFI_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -mno-compact-eh"
|
|
|
|
endif
|
|
|
|
|
2011-01-08 15:15:24 +01:00
|
|
|
# Move the headers to the usual location, and adjust the .pc file
|
2013-02-04 13:52:09 +01:00
|
|
|
# accordingly. For some reason, the libffi build system forgets to
|
|
|
|
# install the .pc file, so we do it manually.
|
2011-01-08 15:15:24 +01:00
|
|
|
define LIBFFI_MOVE_STAGING_HEADERS
|
|
|
|
mv $(STAGING_DIR)/usr/lib/libffi-*/include/*.h $(STAGING_DIR)/usr/include/
|
2013-02-04 13:52:09 +01:00
|
|
|
$(INSTALL) -D -m 0644 $(@D)/libffi.pc $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc
|
2011-12-06 12:45:57 +01:00
|
|
|
$(SED) '/^includedir.*/d' $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc
|
|
|
|
$(SED) '/^Cflags:.*/d' $(STAGING_DIR)/usr/lib/pkgconfig/libffi.pc
|
2011-01-08 15:15:24 +01:00
|
|
|
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/
|
|
|
|
rm -rf $(TARGET_DIR)/usr/lib/libffi-*
|
|
|
|
endef
|
|
|
|
|
|
|
|
LIBFFI_POST_INSTALL_TARGET_HOOKS += LIBFFI_MOVE_TARGET_HEADERS
|
|
|
|
|
2013-02-04 13:52:09 +01:00
|
|
|
# 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
|
|
|
|
|
2012-07-03 00:07:32 +02:00
|
|
|
$(eval $(autotools-package))
|
2012-07-03 00:06:54 +02:00
|
|
|
$(eval $(host-autotools-package))
|