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
(cherry picked from commit 4b3ab413d96031d5f82b27fb06ab36b496688af4)
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):' \