Fix toolchain location for ndk-build.

Toolchains have been rearranged to have the host tag be at the top
level rather than the target architecture.

Bug: http://b/23362228
Change-Id: I4a1e5bb3c6f48d788369204222780af407c34070
diff --git a/build/core/init.mk b/build/core/init.mk
index 287eb6c..158e304 100644
--- a/build/core/init.mk
+++ b/build/core/init.mk
@@ -98,21 +98,20 @@
 endif
 
 # -----------------------------------------------------------------------------
-# Function : host-prebuilt-tag
-# Arguments: 1: parent path of "prebuilt"
-# Returns  : path $1/prebuilt/(HOST_TAG64) exists and NDK_HOST_32BIT isn't defined to 1,
-#            or $1/prebuilt/(HOST_TAG)
-# Usage    : $(call host-prebuilt-tag, <path>)
-# Rationale: This function is used to proble available 64-bit toolchain or
-#            return 32-bit one as default.  Note that HOST_TAG64==HOST_TAG for
-#            32-bit system (or 32-bit userland in 64-bit system)
+# Function : host-toolchain-path
+# Arguments: 1: NDK root
+# Returns  : The parent path of all toolchains for this host. Note that
+#            HOST_TAG64 == HOST_TAG for 32-bit systems.
 # -----------------------------------------------------------------------------
-ifeq ($(NDK_HOST_32BIT),1)
-host-prebuilt-tag = $1/prebuilt/$(HOST_TAG)
-else
-host-prebuilt-tag = \
-   $(if $(strip $(wildcard $1/prebuilt/$(HOST_TAG64))),$1/prebuilt/$(HOST_TAG64),$1/prebuilt/$(HOST_TAG))
-endif
+host-toolchain-path = $1/toolchains/$(HOST_TAG64)
+
+# -----------------------------------------------------------------------------
+# Function : get-toolchain-root
+# Arguments: 1: NDK root
+#            2: Toolchain name
+# Returns  : Path to the given prebuilt toolchain.
+# -----------------------------------------------------------------------------
+get-toolchain-root = $(call host-toolchain-path,$1)/$2/prebuilt
 
 # ====================================================================
 #
@@ -284,7 +283,7 @@
 $(call ndk_log,HOST_TAG set to $(HOST_TAG))
 
 # Check for NDK-specific versions of our host tools
-HOST_PREBUILT_ROOT := $(call host-prebuilt-tag, $(NDK_ROOT))
+HOST_PREBUILT_ROOT := $(NDK_ROOT)/prebuilt/$(HOST_TAG64)
 HOST_PREBUILT := $(strip $(wildcard $(HOST_PREBUILT_ROOT)/bin))
 HOST_AWK := $(strip $(NDK_HOST_AWK))
 HOST_MAKE := $(strip $(NDK_HOST_MAKE))
diff --git a/build/core/setup-app.mk b/build/core/setup-app.mk
index 34147f7..f28f297 100644
--- a/build/core/setup-app.mk
+++ b/build/core/setup-app.mk
@@ -136,8 +136,7 @@
 
 # Renderscript
 
-RENDERSCRIPT_TOOLCHAIN_ROOT   := $(NDK_ROOT)/toolchains/renderscript
-RENDERSCRIPT_TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(RENDERSCRIPT_TOOLCHAIN_ROOT))
+RENDERSCRIPT_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),renderscript)
 RENDERSCRIPT_TOOLCHAIN_PREFIX := $(RENDERSCRIPT_TOOLCHAIN_PREBUILT_ROOT)/bin/
 RENDERSCRIPT_TOOLCHAIN_HEADER := $(RENDERSCRIPT_TOOLCHAIN_PREBUILT_ROOT)/lib/clang/3.5/include
 
diff --git a/build/core/setup-toolchain.mk b/build/core/setup-toolchain.mk
index 1b27d4f..ca5a3cd 100644
--- a/build/core/setup-toolchain.mk
+++ b/build/core/setup-toolchain.mk
@@ -131,11 +131,8 @@
 TOOLCHAIN_NAME   := $(TARGET_TOOLCHAIN)
 TOOLCHAIN_VERSION := $(call last,$(subst -,$(space),$(TARGET_TOOLCHAIN)))
 
-# Define the root path of the toolchain in the NDK tree.
-TOOLCHAIN_ROOT   := $(NDK_ROOT)/toolchains/$(TOOLCHAIN_NAME)
-
 # Define the root path where toolchain prebuilts are stored
-TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(TOOLCHAIN_ROOT))
+TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(TOOLCHAIN_NAME))
 
 # Do the same for TOOLCHAIN_PREFIX. Note that we must chop the version
 # number from the toolchain name, e.g. arm-eabi-4.4.0 -> path/bin/arm-eabi-
diff --git a/toolchains/aarch64-linux-android-clang3.6/setup.mk b/toolchains/aarch64-linux-android-clang3.6/setup.mk
index 2d4cfc8..e49714c 100644
--- a/toolchains/aarch64-linux-android-clang3.6/setup.mk
+++ b/toolchains/aarch64-linux-android-clang3.6/setup.mk
@@ -29,14 +29,12 @@
 
 LLVM_VERSION := 3.6
 LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(LLVM_NAME)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(LLVM_TOOLCHAIN_ROOT))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_VERSION := 4.9
 TOOLCHAIN_NAME := aarch64-linux-android-$(TOOLCHAIN_VERSION)
-TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(TOOLCHAIN_NAME)
-TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(TOOLCHAIN_ROOT))
+TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(TOOLCHAIN_NAME))
 TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/aarch64-linux-android-
 
 TARGET_CC := $(LLVM_TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
diff --git a/toolchains/arm-linux-androideabi-clang3.6/setup.mk b/toolchains/arm-linux-androideabi-clang3.6/setup.mk
index 5a69988..8d2e8de 100644
--- a/toolchains/arm-linux-androideabi-clang3.6/setup.mk
+++ b/toolchains/arm-linux-androideabi-clang3.6/setup.mk
@@ -29,14 +29,12 @@
 
 LLVM_VERSION := 3.6
 LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(LLVM_NAME)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(LLVM_TOOLCHAIN_ROOT))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_VERSION := 4.9
 TOOLCHAIN_NAME := arm-linux-androideabi-$(TOOLCHAIN_VERSION)
-TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(TOOLCHAIN_NAME)
-TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(TOOLCHAIN_ROOT))
+TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(TOOLCHAIN_NAME))
 TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/arm-linux-androideabi-
 
 TARGET_CC := $(LLVM_TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
diff --git a/toolchains/mips64el-linux-android-clang3.6/setup.mk b/toolchains/mips64el-linux-android-clang3.6/setup.mk
index 64d1475..bc78de4 100644
--- a/toolchains/mips64el-linux-android-clang3.6/setup.mk
+++ b/toolchains/mips64el-linux-android-clang3.6/setup.mk
@@ -29,14 +29,12 @@
 
 LLVM_VERSION := 3.6
 LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(LLVM_NAME)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(LLVM_TOOLCHAIN_ROOT))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_VERSION := 4.9
 TOOLCHAIN_NAME := mips64el-linux-android-$(TOOLCHAIN_VERSION)
-TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(TOOLCHAIN_NAME)
-TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(TOOLCHAIN_ROOT))
+TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(TOOLCHAIN_NAME))
 TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/mips64el-linux-android-
 
 TARGET_CC := $(LLVM_TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
diff --git a/toolchains/mipsel-linux-android-clang3.6/setup.mk b/toolchains/mipsel-linux-android-clang3.6/setup.mk
index 3d8c057..3ac8f6c 100644
--- a/toolchains/mipsel-linux-android-clang3.6/setup.mk
+++ b/toolchains/mipsel-linux-android-clang3.6/setup.mk
@@ -29,14 +29,12 @@
 
 LLVM_VERSION := 3.6
 LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(LLVM_NAME)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(LLVM_TOOLCHAIN_ROOT))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_VERSION := 4.9
 TOOLCHAIN_NAME := mipsel-linux-android-$(TOOLCHAIN_VERSION)
-TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(TOOLCHAIN_NAME)
-TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(TOOLCHAIN_ROOT))
+TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(TOOLCHAIN_NAME))
 TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/mipsel-linux-android-
 
 TARGET_CC := $(LLVM_TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
diff --git a/toolchains/x86-clang3.6/setup.mk b/toolchains/x86-clang3.6/setup.mk
index 02f6f85..075fec5 100644
--- a/toolchains/x86-clang3.6/setup.mk
+++ b/toolchains/x86-clang3.6/setup.mk
@@ -29,14 +29,12 @@
 
 LLVM_VERSION := 3.6
 LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(LLVM_NAME)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(LLVM_TOOLCHAIN_ROOT))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_VERSION := 4.9
 TOOLCHAIN_NAME := x86-$(TOOLCHAIN_VERSION)
-TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(TOOLCHAIN_NAME)
-TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(TOOLCHAIN_ROOT))
+TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(TOOLCHAIN_NAME))
 TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/i686-linux-android-
 
 TARGET_CC := $(LLVM_TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
diff --git a/toolchains/x86_64-clang3.6/setup.mk b/toolchains/x86_64-clang3.6/setup.mk
index c69df90..010798c 100644
--- a/toolchains/x86_64-clang3.6/setup.mk
+++ b/toolchains/x86_64-clang3.6/setup.mk
@@ -29,14 +29,12 @@
 
 LLVM_VERSION := 3.6
 LLVM_NAME := llvm-$(LLVM_VERSION)
-LLVM_TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(LLVM_NAME)
-LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(LLVM_TOOLCHAIN_ROOT))
+LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(LLVM_NAME))
 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
 
 TOOLCHAIN_VERSION := 4.9
 TOOLCHAIN_NAME := x86_64-$(TOOLCHAIN_VERSION)
-TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/$(TOOLCHAIN_NAME)
-TOOLCHAIN_PREBUILT_ROOT := $(call host-prebuilt-tag,$(TOOLCHAIN_ROOT))
+TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,$(NDK_ROOT),$(TOOLCHAIN_NAME))
 TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/x86_64-linux-android-
 
 TARGET_CC := $(LLVM_TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)