fix handling of absolute build paths

When building under the BDK, some paths are absolute instead of relative,
so we end up appending an absolute path to an absolute path which breaks.
Add explicit checks to each possible absolute path before we try to make
it into one by hand.

BUG=b/27434200
TEST=`m -j32` w/libpng under bdk works
TEST=`lunch && make` w/python works
TEST=`make PRODUCT-brilloemulator_arm-eng` w/python works

Change-Id: I89070760bc849ac652c2e4a71055d66da763792c
diff --git a/Android.mk b/Android.mk
index a6dae57..e10cad1 100644
--- a/Android.mk
+++ b/Android.mk
@@ -96,9 +96,9 @@
 			mv $@.tmp $@; \
 			exit 0; \
 		fi; \
-		export ANDROID_TOOLCHAIN="$(PWD)/$(TARGET_TOOLCHAIN_ROOT)/bin"; \
-		export ANDROID_BUILD_PATHS="$(PWD)/$(HOST_OUT_EXECUTABLES):$${ANDROID_TOOLCHAIN}:$(ANDROID_BUILD_PATHS)"; \
-		export ANDROID_PRODUCT_OUT="$(PWD)/$(PRODUCT_OUT)"; \
+		export ANDROID_TOOLCHAIN="$(if $(filter /%,$(TARGET_TOOLCHAIN_ROOT)),,$(PWD)/)$(TARGET_TOOLCHAIN_ROOT)/bin"; \
+		export ANDROID_BUILD_PATHS="$(if $(filter /%,$(HOST_OUT_EXECUTABLES)),,$(PWD)/)$(HOST_OUT_EXECUTABLES):$${ANDROID_TOOLCHAIN}:$(ANDROID_BUILD_PATHS)"; \
+		export ANDROID_PRODUCT_OUT="$(if $(filter /%,$(PRODUCT_OUT)),,$(PWD)/)$(PRODUCT_OUT)"; \
 		export ANDROID_BUILD_TOP="$(PWD)"; \
 		$(HOST_OUT_EXECUTABLES)/emerge -uN $(3RD_PARTY_PACKAGES_QUOTED) || exit; \
 		$(HOST_OUT_EXECUTABLES)/3rd-party-merge \
diff --git a/portage/Android.mk b/portage/Android.mk
index 13d1cc6..90db666 100644
--- a/portage/Android.mk
+++ b/portage/Android.mk
@@ -26,7 +26,6 @@
 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)
 
@@ -38,7 +37,7 @@
 $(make.profile):
 	$(hide)mkdir -p $(dir $@)
 	$(hide)ln -sfT \
-		`echo $(dir $@) | sed 's:[^/]*/:../:g'`/$(MAIN_OVERLAY_REPO_REL)/profiles/default/linux/$(TARGET_KEYWORD) \
+		$(MAIN_OVERLAY_REPO)/profiles/default/linux/$(TARGET_KEYWORD) \
 		$@
 
 LOCAL_MODULE := make.conf
@@ -64,7 +63,7 @@
 		-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:@COMMON_OBJ@:$(if $(filter /%,$(TARGET_OUT_COMMON_GENTOO)),,$${ANDROID_BUILD_TOP}/)$(TARGET_OUT_COMMON_GENTOO):g' \
 		-e 's:@PRODUCT_OBJ@:$${ANDROID_PRODUCT_OUT}/obj/gentoo:g' \
 		-e 's:@PORTAGE_PREFIX@:$(PORTAGE_PREFIX):g' \
 		-e 's:@LIBDIR@:$(3RD_PARTY_LIBDIR):' \