From 834f9311aacb5297d563292e69bc144f24e90187 Mon Sep 17 00:00:00 2001 From: Stefan Fröberg Date: Wed, 30 Jan 2013 02:46:40 +0000 Subject: pkg-infra: add _CONFIG_FIXUP to fix *-config files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch will add _CONFIG_FIXUP variable to buildroot infra. It's purpose is to inform buildroot that the package in question contains some $(STAGING_DIR)/usr/bin/*-config files and that we want to automatically fix prefixes of such files. It is often the case that many packages call these files during their configuration step to determine 3rd party library package locations and any flags needed to link against them. For example: Some package might try to check the existense and linking flags of NSPR package by calling $(STAGING_DIR)/usr/bin/nspr-config --prefix. Without this fix. NSPR would return /usr/ as it's prefix which is wrong when cross-compiling. Correct would be $(STAGING_DIR)/usr. All packages that have _INSTALL_STAGING = YES defined and also install some config file(s) into $(STAGING_DIR)/usr/bin must hereafter also define _CONFIG_FIXUP with the correspondig filename(s). For example: DIVINE_CONFIG_FIXUP = divine-config or for multiple files: IMAGEMAGICK_CONFIG_FIXUP = Magick-config Wand-config Signed-off-by: Stefan Fröberg Signed-off-by: Peter Korsgaard --- package/pkg-generic.mk | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'package') diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk index 59de0f0d1..19a115ecd 100644 --- a/package/pkg-generic.mk +++ b/package/pkg-generic.mk @@ -128,6 +128,13 @@ $(BUILD_DIR)/%/.stamp_staging_installed: @$(call MESSAGE,"Installing to staging directory") $($(PKG)_INSTALL_STAGING_CMDS) $(foreach hook,$($(PKG)_POST_INSTALL_STAGING_HOOKS),$(call $(hook))$(sep)) + $(Q)if test -n "$($(PKG)_CONFIG_FIXUP)" ; then \ + $(call MESSAGE,"Fixing package configuration files") ;\ + $(SED) "s,^\(exec_\)\?prefix=.*,\1prefix=$(STAGING_DIR)/usr,g" \ + -e "s,-I/usr/,-I$(STAGING_DIR)/usr/,g" \ + -e "s,-L/usr/,-L$(STAGING_DIR)/usr/,g" \ + $(addprefix $(STAGING_DIR)/usr/bin/,$($(PKG)_CONFIG_FIXUP)) ;\ + fi $(Q)touch $@ # Install to images dir -- cgit v1.2.3