summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2007-01-14 03:48:13 +0000
committerEric Andersen <andersen@codepoet.org>2007-01-14 03:48:13 +0000
commit4ac03cc86a989c2f86b2cdb7041b854bf9609049 (patch)
treeed1fe069c952e2aac6f037bf880734fab7fe60e3
parentceb285976563f6ba2c87a17ff92f1b1490df698a (diff)
filter pkgconfig output to force it do use our staging_dir and not
try to use the system libraries as it is inclined to do
-rw-r--r--package/Makefile.in6
-rwxr-xr-xpackage/pkgconfig/pkgconfig-filter.sh27
-rw-r--r--package/pkgconfig/pkgconfig.mk4
3 files changed, 36 insertions, 1 deletions
diff --git a/package/Makefile.in b/package/Makefile.in
index 1e10e4c1b..aca3e4b07 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -88,7 +88,11 @@ TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
CPP=$(TARGET_CROSS)cpp \
RANLIB=$(TARGET_CROSS)ranlib \
STRIP=$(TARGET_CROSS)strip \
- OBJCOPY=$(TARGET_CROSS)objcopy
+ OBJCOPY=$(TARGET_CROSS)objcopy \
+ CC_FOR_BUILD="$(HOSTCC)" \
+ PKG_CONFIG_SYSROOT=$(STAGING_DIR) \
+ PKG_CONFIG=$(STAGING_DIR)/usr/bin/pkg-config
+
ifeq ($(BR2_ENABLE_LOCALE),y)
DISABLE_NLS:=
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