diff options
author | Mike Frysinger <vapier@google.com> | 2015-10-09 12:21:35 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@google.com> | 2015-10-09 12:24:37 -0400 |
commit | 97773be3fa69d1ddc6b173462cc88351d20b9671 (patch) | |
tree | 4edf182e2b3ee75129088e278eff52552acf3415 | |
parent | 98a774d3f343187616aba6d5be54121e99d439ea (diff) | |
download | integration-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.mk | 3 | ||||
-rw-r--r-- | portage/Android.mk | 5 | ||||
-rw-r--r-- | portage/make.conf.in | 2 | ||||
-rw-r--r-- | toolchain/3rd-party-pkg-config.in | 5 | ||||
-rw-r--r-- | toolchain/Android.mk | 23 |
5 files changed, 33 insertions, 5 deletions
@@ -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) |