diff options
Diffstat (limited to 'package/pkgconfig')
-rwxr-xr-x | package/pkgconfig/pkgconfig-filter.sh | 27 | ||||
-rw-r--r-- | package/pkgconfig/pkgconfig.mk | 4 |
2 files changed, 31 insertions, 0 deletions
diff --git a/package/pkgconfig/pkgconfig-filter.sh b/package/pkgconfig/pkgconfig-filter.sh new file mode 100755 index 000000000..8769bfd8a --- /dev/null +++ b/package/pkgconfig/pkgconfig-filter.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# filter the output from pkg-config (renamed as pkg-config.real) +# and ensures PKG_CONFIG_SYSROOT is prepended to all paths + +CMD=$0 + +if [ ! "$PKG_CONFIG_SYSROOT" ]; then + echo "pkg-config-filter: missing \$PKG_CONFIG_SYSROOT environment variable" + exit 2 +fi + +export PKG_CONFIG_LIBDIR +export PKG_CONFIG_PATH + +if $CMD.real $* | + sed -e "s~\-L/*$PKG_CONFIG_SYSROOT/*~-L=/~g; s~\-I/*$PKG_CONFIG_SYSROOT/*~-I=/~g;" | + sed -e "s~\-L/~-L=/~g; s~\-I/~-I=/~g;" | + sed -e "s~\-L\=~-L$PKG_CONFIG_SYSROOT~g; s~\-I\=~-I$PKG_CONFIG_SYSROOT~g;" +then + echo "PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >&2 + echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH" >&2 + echo "OKAY" >&2; + exit 0; +else + echo "pkg-config failed!" >&2 + exit 1 +fi diff --git a/package/pkgconfig/pkgconfig.mk b/package/pkgconfig/pkgconfig.mk index 682241a7e..c86f78e54 100644 --- a/package/pkgconfig/pkgconfig.mk +++ b/package/pkgconfig/pkgconfig.mk @@ -28,6 +28,7 @@ $(PKGCONFIG_DIR)/.configured: $(PKGCONFIG_DIR)/.unpacked --exec-prefix=/usr \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ + --libdir=/lib \ --libexecdir=/usr/lib \ --sysconfdir=/etc \ --datadir=/usr/share \ @@ -45,6 +46,9 @@ $(PKGCONFIG_DIR)/$(PKGCONFIG_BINARY): $(PKGCONFIG_DIR)/.configured $(STAGING_DIR)/$(PKGCONFIG_TARGET_BINARY): $(PKGCONFIG_DIR)/$(PKGCONFIG_BINARY) $(MAKE) DESTDIR=$(STAGING_DIR) -C $(PKGCONFIG_DIR) install + mv $(STAGING_DIR)/usr/bin/pkg-config $(STAGING_DIR)/usr/bin/pkg-config.real + cp package/pkgconfig/pkgconfig-filter.sh $(STAGING_DIR)/usr/bin/pkg-config + mkdir -p $(STAGING_DIR)/lib/pkgconfig rm -rf $(STAGING_DIR)/share/locale $(STAGING_DIR)/usr/info \ $(STAGING_DIR)/usr/man $(STAGING_DIR)/usr/share/doc |