Commit 50bda85e authored by Peter Korsgaard's avatar Peter Korsgaard
Browse files

pkg-config: add --with-sysroot option for compiled in default sysroot setting



Similar to the --with-pc-path option. It works just like the existing
PKG_CONFIG_SYSROOT_DIR environment variable, but compiled in.
The environment variable overrides this default setting if set.

This way we don't need to pass PKG_CONFIG_SYSROOT_DIR in the environment
when building for the target, and it is easier to reuse pkg-config outside
BR (E.G. for the SDK) without having to setup special environment
variables.

Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent b4df2ea2
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -218,9 +218,7 @@ TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
		CXXFLAGS="$(TARGET_CXXFLAGS)" \
		LDFLAGS="$(TARGET_LDFLAGS)" \
		FCFLAGS="$(TARGET_FCFLAGS)" \
		PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
		PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
		PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
		PERLLIB="$(HOST_DIR)/usr/lib/perl" \
		STAGING_DIR="$(STAGING_DIR)"

@@ -242,6 +240,7 @@ HOST_CONFIGURE_OPTS=PATH=$(HOST_PATH) \
		PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
		PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
		PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
		PKG_CONFIG_SYSROOT_DIR="/" \
		PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig" \
		PERLLIB="$(HOST_DIR)/usr/lib/perl" \
		LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib:$(LD_LIBRARY_PATH)"
+70 −0
Original line number Diff line number Diff line
[PATCH] Add compiled in default sysroot

Similar to the --with-pc-path option. It works just like the existing
PKG_CONFIG_SYSROOT_DIR environment variable, but compiled in.
The environment variable overrides this default setting if set.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 Makefile.am  |    6 ++++++
 configure.in |    6 ++++++
 main.c       |    5 +++--
 3 files changed, 15 insertions(+), 2 deletions(-)

Index: pkg-config-0.25/Makefile.am
===================================================================
--- pkg-config-0.25.orig/Makefile.am
+++ pkg-config-0.25/Makefile.am
@@ -31,6 +31,12 @@ AM_CFLAGS=@WARN_CFLAGS@
 INCLUDES=-DPKG_CONFIG_PC_PATH="\"$(pc_path)\"" $(included_glib_includes) \
 	$(popt_includes)
 
+if USE_SYSROOT
+INCLUDES += -DPKG_CONFIG_SYSROOT="\"$(sysroot)\""
+else
+INCLUDES += -DPKG_CONFIG_SYSROOT=NULL
+endif
+
 pkg_config_SOURCES= \
 	pkg.h \
 	pkg.c \
Index: pkg-config-0.25/configure.in
===================================================================
--- pkg-config-0.25.orig/configure.in
+++ pkg-config-0.25/configure.in
@@ -32,6 +32,12 @@ fi
 
 PKG_CONFIG_FIND_PC_PATH
 
+AC_ARG_WITH(sysroot,
+ [  --with-sysroot         Use sysroot <dir> by default ],
+ [ sysroot="$withval" ])
+
+AC_SUBST([sysroot])
+AM_CONDITIONAL(USE_SYSROOT, test "x$sysroot" != "x")
 #
 # Code taken from gtk+-2.0's configure.in.
 #
Index: pkg-config-0.25/main.c
===================================================================
--- pkg-config-0.25.orig/main.c
+++ pkg-config-0.25/main.c
@@ -39,7 +39,7 @@
 static int want_debug_spew = 0;
 static int want_verbose_errors = 0;
 static int want_stdout_errors = 0;
-char *pcsysrootdir = NULL;
+char *pcsysrootdir = PKG_CONFIG_SYSROOT;
 
 void
 debug_spew (const char *format, ...)
@@ -311,7 +311,8 @@ main (int argc, char **argv)
       add_search_dirs(PKG_CONFIG_PC_PATH, G_SEARCHPATH_SEPARATOR_S);
     }
 
-  pcsysrootdir = getenv ("PKG_CONFIG_SYSROOT_DIR");
+  if (getenv ("PKG_CONFIG_SYSROOT_DIR"))
+	  pcsysrootdir = getenv ("PKG_CONFIG_SYSROOT_DIR");
   if (pcsysrootdir)
     {
       define_global_variable ("pc_sysrootdir", pcsysrootdir);
+3 −0
Original line number Diff line number Diff line
@@ -13,8 +13,11 @@ PKG_CONFIG_CONF_OPT = --with-installed-glib

HOST_PKG_CONFIG_CONF_OPT = \
		--with-pc-path="$(STAGING_DIR)/usr/lib/pkgconfig" \
		--with-sysroot="$(STAGING_DIR)" \
		--disable-static

HOST_PKG_CONFIG_AUTORECONF = YES

$(eval $(call AUTOTARGETS,package,pkg-config))
$(eval $(call AUTOTARGETS,package,pkg-config,host))