LOCAL_PATH := $(call my-dir)

PORTAGE_PREFIX := $(LOCAL_PATH)/../../portage
BINDIR := $(PORTAGE_PREFIX)/usr/bin

define CREATE_WRAPPER
	$(hide)mkdir -p $(dir $@)
	$(hide)sed \
		-e 's:@ROOT_SUBDIR@:$(3RD_PARTY_ROOT_SUBDIR):g' \
		-e 's:@BIN@:$(BINDIR)/$(notdir $@):' \
		$< > $@.tmp \
		&& chmod a+rx $@.tmp && mv $@.tmp $@
endef

CBUILD = $(CLANG_CONFIG_$(HOST_ARCH)_HOST_TRIPLE)
CHOST  = $(CLANG_CONFIG_$(TARGET_ARCH)_TARGET_TRIPLE)

# Map android's arch naming to Gentoo's.
ANDROID_ARCH-mips64 = mips
ANDROID_ARCH-x86_64 = amd64
gentoo-arch = $(if $(ANDROID_ARCH-$(1)),$(ANDROID_ARCH-$(1)),$(1))
HOST_KEYWORD   := $(call gentoo-arch,$(HOST_ARCH))
TARGET_KEYWORD := $(call gentoo-arch,$(TARGET_ARCH))

# Common build doesn't set this up.
TARGET_RANLIB ?= $(TARGET_AR:ar=ranlib)

MAIN_OVERLAY_REPO := `readlink -f $(LOCAL_PATH)`/../../overlays/gentoo
MAIN_OVERLAY_REPO_REL := $(LOCAL_PATH)/../../overlays/gentoo

include $(CLEAR_VARS)

#
# Create /etc/portage config files.
#

make.profile := $(3RD_PARTY_ROOT)/etc/portage/make.profile
$(make.profile):
	$(hide)mkdir -p $(dir $@)
	$(hide)ln -sfT \
		`echo $(dir $@) | sed 's:[^/]*/:../:g'`/$(MAIN_OVERLAY_REPO_REL)/profiles/default/linux/$(TARGET_KEYWORD) \
		$@

LOCAL_MODULE := make.conf
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(3RD_PARTY_ROOT)/etc/portage
3RD_PARTY_CONFIGS += $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)

include $(BUILD_SYSTEM)/base_rules.mk

make.conf := $(intermediates)/make.conf
$(make.conf): $(LOCAL_PATH)/make.conf.in $(make.profile)
	$(hide)mkdir -p $(dir $@)
	$(hide)sed \
		-e 's:@CC@:$(notdir $(3RD_PARTY_CC)):g' \
		-e 's:@CXX@:$(notdir $(3RD_PARTY_CXX)):g' \
		-e 's:@AR@:$(notdir $(TARGET_AR)):g' \
		-e 's:@RANLIB@:$(notdir $(TARGET_RANLIB)):g' \
		-e 's:@LD@:$(notdir $(TARGET_LD)):g' \
		-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' \
		-e 's:@COMMON_OBJ@:$${ANDROID_BUILD_TOP}/$(TARGET_OUT_COMMON_GENTOO):' \
		-e 's:@PRODUCT_OBJ@:$${ANDROID_PRODUCT_OUT}/obj/gentoo:g' \
		-e 's:@PORTAGE_PREFIX@:$(PORTAGE_PREFIX):g' \
		-e 's:@LIBDIR@:$(3RD_PARTY_LIBDIR):' \
		$< > $@

include $(CLEAR_VARS)

LOCAL_MODULE := package.provided
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(3RD_PARTY_ROOT)/etc/portage/profile
3RD_PARTY_CONFIGS += $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)

include $(BUILD_SYSTEM)/base_rules.mk

package.provided := $(intermediates)/package.provided
$(package.provided): $(LOCAL_PATH)/package.provided.in
	$(hide)mkdir -p $(dir $@)
	$(hide)cp $< $@

include $(CLEAR_VARS)

LOCAL_MODULE := make.defaults
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(3RD_PARTY_ROOT)/etc/portage/profile
3RD_PARTY_CONFIGS += $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)

include $(BUILD_SYSTEM)/base_rules.mk

make.defaults := $(intermediates)/make.defaults
$(make.defaults): $(LOCAL_PATH)/make.defaults.in
	$(hide)mkdir -p $(dir $@)
	$(hide)cp $< $@

include $(CLEAR_VARS)

LOCAL_MODULE := package.use
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(3RD_PARTY_ROOT)/etc/portage/profile
3RD_PARTY_CONFIGS += $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)

include $(BUILD_SYSTEM)/base_rules.mk

package.use := $(intermediates)/$(LOCAL_MODULE)
$(package.use): $(LOCAL_PATH)/$(LOCAL_MODULE).in
	$(hide)mkdir -p $(dir $@)
	$(hide)cp $< $@

include $(CLEAR_VARS)

LOCAL_MODULE := use.force
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(3RD_PARTY_ROOT)/etc/portage/profile
3RD_PARTY_CONFIGS += $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)

include $(BUILD_SYSTEM)/base_rules.mk

use.force := $(intermediates)/$(LOCAL_MODULE)
$(use.force): $(LOCAL_PATH)/$(LOCAL_MODULE).in
	$(hide)mkdir -p $(dir $@)
	$(hide)cp $< $@

include $(CLEAR_VARS)

LOCAL_MODULE := use.mask
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(3RD_PARTY_ROOT)/etc/portage/profile
3RD_PARTY_CONFIGS += $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)

include $(BUILD_SYSTEM)/base_rules.mk

use.mask := $(intermediates)/$(LOCAL_MODULE)
$(use.mask): $(LOCAL_PATH)/$(LOCAL_MODULE).in
	$(hide)mkdir -p $(dir $@)
	$(hide)cp $< $@

include $(CLEAR_VARS)

LOCAL_MODULE := gentoo.conf
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(3RD_PARTY_ROOT)/etc/portage/repos.conf
3RD_PARTY_CONFIGS += $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)

include $(BUILD_SYSTEM)/base_rules.mk

gentoo.conf := $(intermediates)/gentoo.conf
$(gentoo.conf): $(LOCAL_PATH)/repos.conf.in
	$(hide)mkdir -p $(dir $@)
	$(hide)sed -e "s:@OVERLAY_LOCATION@:$(MAIN_OVERLAY_REPO):" $< > $@

#
# Create various bin/ wrappers.
# XXX: These contain product specific paths and should not.
#

include $(CLEAR_VARS)

LOCAL_MODULE := ebuild
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_IS_HOST_MODULE := true
3RD_PARTY_WRAPPERS += $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE)

include $(BUILD_SYSTEM)/base_rules.mk

ebuild := $(intermediates)/$(LOCAL_MODULE)
$(ebuild): $(LOCAL_PATH)/wrapper.in
	$(CREATE_WRAPPER)

LOCAL_BUILT_MODULE := $(ebuild)

include $(CLEAR_VARS)

LOCAL_MODULE := emerge
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_IS_HOST_MODULE := true
3RD_PARTY_WRAPPERS += $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE)

include $(BUILD_SYSTEM)/base_rules.mk

LOCAL_BUILT_MODULE := $(intermediates)/$(LOCAL_MODULE)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/wrapper.in | $(patsubst %,$(HOST_OUT_EXECUTABLES)/%,ebuild portageq)
	$(CREATE_WRAPPER)

include $(CLEAR_VARS)

LOCAL_MODULE := portageq
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_IS_HOST_MODULE := true
3RD_PARTY_WRAPPERS += $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE)

include $(BUILD_SYSTEM)/base_rules.mk

portageq := $(intermediates)/portageq
$(portageq): $(LOCAL_PATH)/wrapper.in
	$(CREATE_WRAPPER)

LOCAL_BUILT_MODULE := $(portageq)

include $(CLEAR_VARS)

LOCAL_MODULE := 3rd-party-merge
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_IS_HOST_MODULE := true
3RD_PARTY_WRAPPERS += $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE)

include $(BUILD_SYSTEM)/base_rules.mk

LOCAL_BUILT_MODULE := $(intermediates)/$(LOCAL_MODULE)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/wrapper.in
	$(CREATE_WRAPPER)
