pkgconf: new package
pkgconf is a drop-in replacement for pkg-config that doesn't need itself to build and just requires a C89 compiler. Instead of using a patch for hardcoded sysroot support (as the patch to pkg-config does) we rely instead on a wrapper script that takes the appropiate action. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
parent
503452d7c8
commit
3ee3e3d22e
@ -84,6 +84,7 @@ if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
|
|||||||
source "package/patch/Config.in"
|
source "package/patch/Config.in"
|
||||||
endif
|
endif
|
||||||
source "package/pkg-config/Config.in"
|
source "package/pkg-config/Config.in"
|
||||||
|
source "package/pkgconf/Config.in"
|
||||||
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
|
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
|
||||||
source "package/sed/Config.in"
|
source "package/sed/Config.in"
|
||||||
endif
|
endif
|
||||||
|
9
package/pkgconf/Config.in
Normal file
9
package/pkgconf/Config.in
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
config BR2_PACKAGE_PKGCONF
|
||||||
|
bool "pkgconf"
|
||||||
|
help
|
||||||
|
pkgconf is a program which helps to configure compiler and linker
|
||||||
|
flags for development frameworks. It is similar to pkg-config,
|
||||||
|
but was written from scratch in the summer of 2011 to replace
|
||||||
|
pkg-config, which now needs itself to build itself
|
||||||
|
|
||||||
|
https://github.com/nenolod/pkgconf
|
2
package/pkgconf/pkg-config.in
Normal file
2
package/pkgconf/pkg-config.in
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-@PKG_CONFIG_LIBDIR@} PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR:-@STAGING_DIR@} $(dirname $0)/pkgconf $@
|
27
package/pkgconf/pkgconf-fix-variable.patch
Normal file
27
package/pkgconf/pkgconf-fix-variable.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
[PATCH] prefix sysroot to include/libdir path variables
|
||||||
|
|
||||||
|
Prefix includedir / libdir variable values with sysroot if a variable is
|
||||||
|
requested (--variable=<name>), similar to how it's done for -I / -L flags.
|
||||||
|
|
||||||
|
This is sometimes used to find header files (E.G. in gst-plugins configure),
|
||||||
|
so ensure the sysroot'ed files are used.
|
||||||
|
|
||||||
|
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||||
|
|
||||||
|
diff -Nura pkgconf-0.8.9.orig/main.c pkgconf-0.8.9/main.c
|
||||||
|
--- pkgconf-0.8.9.orig/main.c 2012-10-24 14:32:08.236508699 -0300
|
||||||
|
+++ pkgconf-0.8.9/main.c 2012-10-24 14:54:36.771070217 -0300
|
||||||
|
@@ -298,7 +298,12 @@
|
||||||
|
if (eflag != PKG_ERRF_OK)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
- printf("%s\n", req.buf);
|
||||||
|
+ if ( !strcmp(req.variable, "includedir") ||
|
||||||
|
+ !strcmp(req.variable, "mapdir") ||
|
||||||
|
+ !strcmp(req.variable, "libdir"))
|
||||||
|
+ printf("%s%s\n", sysroot_dir, req.buf);
|
||||||
|
+ else
|
||||||
|
+ printf("%s\n", req.buf);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
31
package/pkgconf/pkgconf.mk
Normal file
31
package/pkgconf/pkgconf.mk
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#############################################################
|
||||||
|
#
|
||||||
|
# pkgconf
|
||||||
|
#
|
||||||
|
#############################################################
|
||||||
|
|
||||||
|
PKGCONF_VERSION = 0.8.9
|
||||||
|
PKGCONF_SITE = http://tortois.es/~nenolod/distfiles
|
||||||
|
PKGCONF_SOURCE = pkgconf-$(PKGCONF_VERSION).tar.bz2
|
||||||
|
|
||||||
|
PKG_CONFIG_HOST_BINARY = $(HOST_DIR)/usr/bin/pkg-config
|
||||||
|
|
||||||
|
ifeq ($(BR2_PACKAGE_PKG_CONFIG),)
|
||||||
|
define PKGCONF_LINK_PKGCONFIG
|
||||||
|
ln -sf pkgconf $(TARGET_DIR)/usr/bin/pkg-config
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
|
||||||
|
define HOST_PKGCONF_INSTALL_WRAPPER
|
||||||
|
$(INSTALL) -m 0755 -D package/pkgconf/pkg-config.in \
|
||||||
|
$(HOST_DIR)/usr/bin/pkg-config
|
||||||
|
$(SED) 's,@PKG_CONFIG_LIBDIR@,$(STAGING_DIR)/usr/lib/pkgconfig:$(STAGING_DIR)/usr/share/pkgconfig,' \
|
||||||
|
-e 's,@STAGING_DIR@,$(STAGING_DIR),' \
|
||||||
|
$(HOST_DIR)/usr/bin/pkg-config
|
||||||
|
endef
|
||||||
|
|
||||||
|
PKGCONF_POST_INSTALL_TARGET_HOOKS += PKGCONF_LINK_PKGCONFIG
|
||||||
|
HOST_PKGCONF_POST_INSTALL_HOOKS += HOST_PKGCONF_INSTALL_WRAPPER
|
||||||
|
|
||||||
|
$(eval $(autotools-package))
|
||||||
|
$(eval $(host-autotools-package))
|
Loading…
Reference in New Issue
Block a user