summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2015-10-09 12:21:35 -0400
committerMike Frysinger <vapier@google.com>2015-10-09 12:24:37 -0400
commit97773be3fa69d1ddc6b173462cc88351d20b9671 (patch)
tree4edf182e2b3ee75129088e278eff52552acf3415
parent98a774d3f343187616aba6d5be54121e99d439ea (diff)
downloadintegration-97773be3fa69d1ddc6b173462cc88351d20b9671.tar.gz
pkg-config: add a wrapper for it
We need to tell pkg-config where to find its .pc files, so add a wrapper to dynamically locate the sysroot and various inputs. BUG=24775992 TEST=building pax-utils (which uses pkg-config) works now Change-Id: I6ad54e8521649422f43e72105c6b135043c99c0b
-rw-r--r--Android.mk3
-rw-r--r--portage/Android.mk5
-rw-r--r--portage/make.conf.in2
-rw-r--r--toolchain/3rd-party-pkg-config.in5
-rw-r--r--toolchain/Android.mk23
5 files changed, 33 insertions, 5 deletions
diff --git a/Android.mk b/Android.mk
index 48086ac..b46a100 100644
--- a/Android.mk
+++ b/Android.mk
@@ -4,6 +4,7 @@ LOCAL_PATH := $(call my-dir)
ifneq ($(PRODUCT_3RD_PARTY_PACKAGES),)
3RD_PARTY_COMPILER := $(HOST_OUT_EXECUTABLES)/3rd-party-gcc
+3RD_PARTY_PKG_CONFIG := $(HOST_OUT_EXECUTABLES)/3rd-party-pkg-config
TARGET_OUT_GENTOO := $(TARGET_OUT_INTERMEDIATES)/gentoo
TARGET_OUT_COMMON_GENTOO := $(TARGET_OUT_COMMON_INTERMEDIATES)/gentoo
@@ -11,6 +12,8 @@ TARGET_OUT_COMMON_GENTOO := $(TARGET_OUT_COMMON_INTERMEDIATES)/gentoo
3RD_PARTY_ROOT_SUBDIR := $(patsubst $(PRODUCT_OUT)/%,%,$(3RD_PARTY_ROOT))
# We have to include subdirs first as they set up some vars we use below.
+3RD_PARTY_CONFIGS :=
+3RD_PARTY_WRAPPERS :=
include $(call all-subdir-makefiles)
# Actually run the emerge command for the specific package.
diff --git a/portage/Android.mk b/portage/Android.mk
index 85ee609..5a62a7a 100644
--- a/portage/Android.mk
+++ b/portage/Android.mk
@@ -35,8 +35,6 @@ include $(CLEAR_VARS)
# Create /etc/portage config files.
#
-3RD_PARTY_CONFIGS :=
-
make.profile := $(3RD_PARTY_ROOT)/etc/portage/make.profile
$(make.profile):
$(hide)mkdir -p $(dir $@)
@@ -63,6 +61,7 @@ $(make.conf): $(LOCAL_PATH)/make.conf.in $(make.profile)
-e 's:@OBJCOPY@:$(notdir $(TARGET_OBJCOPY)):g' \
-e 's:@STRIP@:$(notdir $(TARGET_STRIP)):g' \
-e 's:@READELF@:$(notdir $(TARGET_READELF)):g' \
+ -e 's:@PKG_CONFIG@:$(notdir $(3RD_PARTY_PKG_CONFIG)):g' \
-e 's:@ARCH@:$(TARGET_ARCH):g' \
-e 's:@CBUILD@:$(CBUILD):g' \
-e 's:@CHOST@:$(CHOST):g' \
@@ -118,8 +117,6 @@ $(gentoo.conf): $(LOCAL_PATH)/repos.conf.in
# XXX: These contain product specific paths and should not.
#
-3RD_PARTY_WRAPPERS :=
-
include $(CLEAR_VARS)
LOCAL_MODULE := ebuild
diff --git a/portage/make.conf.in b/portage/make.conf.in
index a789ba3..fda6e4e 100644
--- a/portage/make.conf.in
+++ b/portage/make.conf.in
@@ -27,7 +27,6 @@ ROOT="${SYSROOT}"
PORTAGE_TMPDIR="${PRODUCT_OBJ}/tmp"
PORT_LOGDIR="${PRODUCT_OBJ}/logs"
PKGDIR="${PRODUCT_OBJ}/packages"
-PKG_CONFIG="${SYSROOT}/build/bin/pkg-config"
CC="@CC@"
CXX="@CXX@"
@@ -37,6 +36,7 @@ LD="@LD@"
OBJCOPY="@OBJCOPY@"
STRIP="@STRIP@"
READELF="@READELF@"
+PKG_CONFIG="@PKG_CONFIG@"
CBUILD="@CBUILD@"
CHOST="@CHOST@"
diff --git a/toolchain/3rd-party-pkg-config.in b/toolchain/3rd-party-pkg-config.in
new file mode 100644
index 0000000..9dacf79
--- /dev/null
+++ b/toolchain/3rd-party-pkg-config.in
@@ -0,0 +1,5 @@
+#!/bin/sh
+sysroot="${ANDROID_PRODUCT_OUT}/@ROOT_SUBDIR@"
+PKG_CONFIG_LIBDIR="$(printf '%s:' "${sysroot}"/usr/*/pkgconfig)" \
+PKG_CONFIG_SYSROOT_DIR="${sysroot}" \
+exec pkg-config "$@"
diff --git a/toolchain/Android.mk b/toolchain/Android.mk
index 28872d4..e77535d 100644
--- a/toolchain/Android.mk
+++ b/toolchain/Android.mk
@@ -1,6 +1,7 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
+
LOCAL_MODULE := 3rd-party-gcc
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_IS_HOST_MODULE := true
@@ -22,4 +23,26 @@ $(compiler): $(LOCAL_PATH)/$(LOCAL_MODULE).in
LOCAL_BUILT_MODULE = $(compiler)
LOCAL_GENERATED_SOURCES += $(3RD_PARTY_COMPILER)
+3RD_PARTY_WRAPPERS += $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE)
+
include $(CLEAR_VARS)
+
+LOCAL_MODULE := 3rd-party-pkg-config
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_IS_HOST_MODULE := true
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+compiler = $(intermediates)/$(LOCAL_MODULE)
+$(compiler): $(LOCAL_PATH)/$(LOCAL_MODULE).in
+ @mkdir -p $(dir $@)
+ $(hide): $(PRODUCT_OUT) $(TARGET_OUT_INTERMEDIATE_LIBRARIES)
+ $(hide)sed \
+ -e 's:@ROOT_SUBDIR@:$(3RD_PARTY_ROOT_SUBDIR):g' \
+ $< > $@.tmp \
+ && chmod a+rx $@.tmp && mv $@.tmp $@
+
+LOCAL_BUILT_MODULE = $(compiler)
+LOCAL_GENERATED_SOURCES += $(3RD_PARTY_PKG_CONFIG)
+
+3RD_PARTY_WRAPPERS += $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE)