diff --git a/build/core/add-toolchain.mk b/build/core/add-toolchain.mk
index 555b645..8fe00a3 100644
--- a/build/core/add-toolchain.mk
+++ b/build/core/add-toolchain.mk
@@ -34,6 +34,18 @@
 # Include the config file
 include $(_config_mk)
 
+# Plug in the undefined
+ifeq ($(TOOLCHAIN_ABIS)$(TOOLCHAIN_ARCH),)
+ifeq (1,$(words $(filter-out $(NDK_KNOWN_ARCHS),$(NDK_FOUND_ARCHS))))
+TOOLCHAIN_ARCH := $(filter-out $(NDK_KNOWN_ARCHS),$(NDK_FOUND_ARCHS))
+TOOLCHAIN_ABIS := $(TOOLCHAIN_ARCH) $(NDK_KNOWN_ABIS:%=$(TOOLCHAIN_ARCH)%)
+endif
+endif
+
+ifeq ($(TOOLCHAIN_ABIS)$(TOOLCHAIN_ARCH),)
+# Ignore if both TOOLCHAIN_ABIS and TOOLCHAIN_ARCH are not defined
+else
+
 # Check that the proper variables were defined
 $(call check-required-vars,$(NDK_TOOLCHAIN_VARS_REQUIRED),$(_config_mk))
 
@@ -76,4 +88,6 @@
 NDK_ARCH.$(_arch).toolchains += $(_name)
 NDK_ARCH.$(_arch).abis := $(sort $(NDK_ARCH.$(_arch).abis) $(_abis))
 
+endif
+
 # done
diff --git a/build/core/init.mk b/build/core/init.mk
index 9b4e28a..3db5ce5 100644
--- a/build/core/init.mk
+++ b/build/core/init.mk
@@ -428,6 +428,66 @@
 
 # ====================================================================
 #
+# Read all platform-specific configuration files.
+#
+# Each platform must be located in build/platforms/android-<apilevel>
+# where <apilevel> corresponds to an API level number, with:
+#   3 -> Android 1.5
+#   4 -> next platform release
+#
+# ====================================================================
+
+# The platform files were moved in the Android source tree from
+# $TOP/ndk/build/platforms to $TOP/development/ndk/platforms. However,
+# the official NDK release packages still place them under the old
+# location for now, so deal with this here
+#
+NDK_PLATFORMS_ROOT := $(strip $(NDK_PLATFORMS_ROOT))
+ifndef NDK_PLATFORMS_ROOT
+    NDK_PLATFORMS_ROOT := $(strip $(wildcard $(NDK_ROOT)/platforms))
+    ifndef NDK_PLATFORMS_ROOT
+        NDK_PLATFORMS_ROOT := $(strip $(wildcard $(NDK_ROOT)/build/platforms))
+    endif
+
+    ifndef NDK_PLATFORMS_ROOT
+        $(call __ndk_info,Could not find platform files (headers and libraries))
+        $(if $(strip $(wildcard $(NDK_ROOT)/RELEASE.TXT)),\
+            $(call __ndk_info,Please define NDK_PLATFORMS_ROOT to point to a valid directory.)\
+        ,\
+            $(call __ndk_info,Please run build/tools/build-platforms.sh to build the corresponding directory.)\
+        )
+        $(call __ndk_error,Aborting)
+    endif
+
+    $(call ndk_log,Found platform root directory: $(NDK_PLATFORMS_ROOT))
+endif
+ifeq ($(strip $(wildcard $(NDK_PLATFORMS_ROOT)/android-*)),)
+    $(call __ndk_info,Your NDK_PLATFORMS_ROOT points to an invalid directory)
+    $(call __ndk_info,Current value: $(NDK_PLATFORMS_ROOT))
+    $(call __ndk_error,Aborting)
+endif
+
+NDK_ALL_PLATFORMS := $(strip $(notdir $(wildcard $(NDK_PLATFORMS_ROOT)/android-*)))
+$(call ndk_log,Found supported platforms: $(NDK_ALL_PLATFORMS))
+
+$(foreach _platform,$(NDK_ALL_PLATFORMS),\
+  $(eval include $(BUILD_SYSTEM)/add-platform.mk)\
+)
+
+# we're going to find the maximum platform number of the form android-<number>
+# ignore others, which could correspond to special and experimental cases
+NDK_ALL_PLATFORM_LEVELS := $(filter android-%,$(NDK_ALL_PLATFORMS))
+NDK_ALL_PLATFORM_LEVELS := $(patsubst android-%,%,$(NDK_ALL_PLATFORM_LEVELS))
+$(call ndk_log,Found stable platform levels: $(NDK_ALL_PLATFORM_LEVELS))
+
+NDK_MAX_PLATFORM_LEVEL := 3
+$(foreach level,$(NDK_ALL_PLATFORM_LEVELS),\
+  $(eval NDK_MAX_PLATFORM_LEVEL := $$(call max,$$(NDK_MAX_PLATFORM_LEVEL),$$(level)))\
+)
+$(call ndk_log,Found max platform level: $(NDK_MAX_PLATFORM_LEVEL))
+
+# ====================================================================
+#
 # Read all toolchain-specific configuration files.
 #
 # Each toolchain must have a corresponding config.mk file located
@@ -445,6 +505,12 @@
 # the build script to include in each toolchain config.mk
 ADD_TOOLCHAIN := $(BUILD_SYSTEM)/add-toolchain.mk
 
+# the list of known values
+NDK_KNOWN_ABIS     := armeabi armeabi-v7a x86 mips
+NDK_KNOWN_ARCHS    := arm x86 mips
+_archs := $(sort $(strip $(notdir $(wildcard $(NDK_PLATFORMS_ROOT)/android-*/arch-*))))
+NDK_FOUND_ARCHS    := $(_archs:arch-%=%)
+
 # the list of all toolchains in this NDK
 NDK_ALL_TOOLCHAINS :=
 NDK_ALL_ABIS       :=
@@ -507,63 +573,3 @@
     $(call ndk_log, $(space)$(space)$(tc):  $(NDK_TOOLCHAIN.$(tc).abis))\
 )
 
-# ====================================================================
-#
-# Read all platform-specific configuration files.
-#
-# Each platform must be located in build/platforms/android-<apilevel>
-# where <apilevel> corresponds to an API level number, with:
-#   3 -> Android 1.5
-#   4 -> next platform release
-#
-# ====================================================================
-
-# The platform files were moved in the Android source tree from
-# $TOP/ndk/build/platforms to $TOP/development/ndk/platforms. However,
-# the official NDK release packages still place them under the old
-# location for now, so deal with this here
-#
-NDK_PLATFORMS_ROOT := $(strip $(NDK_PLATFORMS_ROOT))
-ifndef NDK_PLATFORMS_ROOT
-    NDK_PLATFORMS_ROOT := $(strip $(wildcard $(NDK_ROOT)/platforms))
-    ifndef NDK_PLATFORMS_ROOT
-        NDK_PLATFORMS_ROOT := $(strip $(wildcard $(NDK_ROOT)/build/platforms))
-    endif
-
-    ifndef NDK_PLATFORMS_ROOT
-        $(call __ndk_info,Could not find platform files (headers and libraries))
-        $(if $(strip $(wildcard $(NDK_ROOT)/RELEASE.TXT)),\
-            $(call __ndk_info,Please define NDK_PLATFORMS_ROOT to point to a valid directory.)\
-        ,\
-            $(call __ndk_info,Please run build/tools/build-platforms.sh to build the corresponding directory.)\
-        )
-        $(call __ndk_error,Aborting)
-    endif
-
-    $(call ndk_log,Found platform root directory: $(NDK_PLATFORMS_ROOT))
-endif
-ifeq ($(strip $(wildcard $(NDK_PLATFORMS_ROOT)/android-*)),)
-    $(call __ndk_info,Your NDK_PLATFORMS_ROOT points to an invalid directory)
-    $(call __ndk_info,Current value: $(NDK_PLATFORMS_ROOT))
-    $(call __ndk_error,Aborting)
-endif
-
-NDK_ALL_PLATFORMS := $(strip $(notdir $(wildcard $(NDK_PLATFORMS_ROOT)/android-*)))
-$(call ndk_log,Found supported platforms: $(NDK_ALL_PLATFORMS))
-
-$(foreach _platform,$(NDK_ALL_PLATFORMS),\
-  $(eval include $(BUILD_SYSTEM)/add-platform.mk)\
-)
-
-# we're going to find the maximum platform number of the form android-<number>
-# ignore others, which could correspond to special and experimental cases
-NDK_ALL_PLATFORM_LEVELS := $(filter android-%,$(NDK_ALL_PLATFORMS))
-NDK_ALL_PLATFORM_LEVELS := $(patsubst android-%,%,$(NDK_ALL_PLATFORM_LEVELS))
-$(call ndk_log,Found stable platform levels: $(NDK_ALL_PLATFORM_LEVELS))
-
-NDK_MAX_PLATFORM_LEVEL := 3
-$(foreach level,$(NDK_ALL_PLATFORM_LEVELS),\
-  $(eval NDK_MAX_PLATFORM_LEVEL := $$(call max,$$(NDK_MAX_PLATFORM_LEVEL),$$(level)))\
-)
-$(call ndk_log,Found max platform level: $(NDK_MAX_PLATFORM_LEVEL))
-
diff --git a/build/core/setup-app.mk b/build/core/setup-app.mk
index 1e27dc3..87b7b59 100644
--- a/build/core/setup-app.mk
+++ b/build/core/setup-app.mk
@@ -53,8 +53,21 @@
 # Otherwise, check that we don't have an invalid value here.
 #
 ifeq ($(NDK_APP_ABI),all)
-    NDK_APP_ABI := $(NDK_ALL_ABIS)
+    NDK_APP_ABI := $(NDK_KNOWN_ABIS)
 else
+    # Plug in the unknown
+    _unknown_abis := $(strip $(filter-out $(NDK_ALL_ABIS),$(NDK_APP_ABI)))
+    ifneq ($(_unknown_abis),)
+        ifeq (1,$(words $(filter-out $(NDK_KNOWN_ARCHS),$(NDK_FOUND_ARCHS))))
+            $(foreach _abi,$(NDK_KNOWN_ABIS),\
+                $(eval _unknown_abis := $(subst $(_abi),,$(_unknown_abis)))\
+            )
+            _unknown_abis_prefix := $(sort $(_unknown_abis))
+            ifeq (1,$(words $(_unknown_abis_prefix)))
+                NDK_APP_ABI := $(subst $(_unknown_abis_prefix),$(filter-out $(NDK_KNOWN_ARCHS),$(NDK_FOUND_ARCHS)),$(NDK_APP_ABI))
+            endif
+        endif
+    endif
     # check the target ABIs for this application
     _bad_abis = $(strip $(filter-out $(NDK_ALL_ABIS),$(NDK_APP_ABI)))
     ifneq ($(_bad_abis),)
diff --git a/build/core/setup-toolchain.mk b/build/core/setup-toolchain.mk
index 482e45b..685c0bd 100644
--- a/build/core/setup-toolchain.mk
+++ b/build/core/setup-toolchain.mk
@@ -119,18 +119,18 @@
 TOOLCHAIN_PREFIX := $(call merge,-,$(call chop,$(call split,-,$(TOOLCHAIN_NAME))))-
 TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/$(TOOLCHAIN_PREFIX)
 
-# Default build commands, can be overriden by the toolchain's setup script
-include $(BUILD_SYSTEM)/default-build-commands.mk
-
-# now call the toolchain-specific setup script
-include $(NDK_TOOLCHAIN.$(TARGET_TOOLCHAIN).setup)
-
 # We expect the gdbserver binary for this toolchain to be located at its root.
 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-$(TARGET_ARCH)/gdbserver/gdbserver
 
 # compute NDK_APP_DST_DIR as the destination directory for the generated files
 NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
 
+# Default build commands, can be overriden by the toolchain's setup script
+include $(BUILD_SYSTEM)/default-build-commands.mk
+
+# now call the toolchain-specific setup script
+include $(NDK_TOOLCHAIN.$(TARGET_TOOLCHAIN).setup)
+
 clean-installed-binaries::
 
 # Ensure that for debuggable applications, gdbserver will be copied to
diff --git a/toolchains/arm-linux-androideabi-clang3.1/setup.mk b/toolchains/arm-linux-androideabi-clang3.1/setup.mk
index 4501bd7..78bcc77 100644
--- a/toolchains/arm-linux-androideabi-clang3.1/setup.mk
+++ b/toolchains/arm-linux-androideabi-clang3.1/setup.mk
@@ -61,7 +61,7 @@
 TARGET_C_INCLUDES := \
     $(SYSROOT_INC)/usr/include
 
-ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
+ifneq ($(filter %armeabi-v7a,$(TARGET_ARCH_ABI)),)
     LLVM_TRIPLE := armv7-none-linux-androideabi
 
     TARGET_CFLAGS += -target $(LLVM_TRIPLE) \
diff --git a/toolchains/arm-linux-androideabi-clang3.2/setup.mk b/toolchains/arm-linux-androideabi-clang3.2/setup.mk
index 0b80829..acf87b9 100644
--- a/toolchains/arm-linux-androideabi-clang3.2/setup.mk
+++ b/toolchains/arm-linux-androideabi-clang3.2/setup.mk
@@ -61,7 +61,7 @@
 TARGET_C_INCLUDES := \
     $(SYSROOT_INC)/usr/include
 
-ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
+ifneq ($(filter %armeabi-v7a,$(TARGET_ARCH_ABI)),)
     LLVM_TRIPLE := armv7-none-linux-androideabi
 
     TARGET_CFLAGS += -target $(LLVM_TRIPLE) \
diff --git a/toolchains/llvm-3.1/config.mk b/toolchains/llvm-3.1/config.mk
new file mode 100644
index 0000000..fedc977
--- /dev/null
+++ b/toolchains/llvm-3.1/config.mk
@@ -0,0 +1,20 @@
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# config file for the clang-3.1 toolchain for the Android NDK
+# the real meat is in the setup.mk file adjacent to this one
+#
+TOOLCHAIN_ARCH :=
+TOOLCHAIN_ABIS :=
diff --git a/toolchains/llvm-3.1/setup.mk b/toolchains/llvm-3.1/setup.mk
new file mode 100644
index 0000000..24e1baf
--- /dev/null
+++ b/toolchains/llvm-3.1/setup.mk
@@ -0,0 +1,125 @@
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# this file is used to prepare the NDK to build with the clang-3.1
+# toolchain any number of source files
+#
+# its purpose is to define (or re-define) templates used to build
+# various sources into target object files, libraries or executables.
+#
+# Note that this file may end up being parsed several times in future
+# revisions of the NDK.
+#
+
+ifneq ($(filter %armeabi-v7a,$(TARGET_ARCH_ABI)),)
+
+SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
+TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
+NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/armeabi-v7a
+TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a/libportable.a $(TARGET_LDLIBS)
+include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.1/setup.mk
+
+else
+ifneq ($(filter %armeabi,$(TARGET_ARCH_ABI)),)
+
+SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
+TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
+NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/armeabi
+TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/armeabi/libportable.a $(TARGET_LDLIBS)
+include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.1/setup.mk
+
+else
+ifneq ($(filter %x86,$(TARGET_ARCH_ABI)),)
+
+SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86
+TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86/gdbserver/gdbserver
+NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/x86
+TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/x86/libportable.a $(TARGET_LDLIBS)
+include $(NDK_ROOT)/toolchains/x86-clang3.1/setup.mk
+
+else
+ifneq ($(filter %mips,$(TARGET_ARCH_ABI)),)
+
+SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips
+TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips/gdbserver/gdbserver
+NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/mips
+TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/mips/libportable.a $(TARGET_LDLIBS)
+include $(NDK_ROOT)/toolchains/mipsel-linux-android-clang3.1/setup.mk
+
+else
+
+TOOLCHAIN_NAME   := clang-3.1
+TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/
+LLVM_TRIPLE := le32-none-ndk
+
+TARGET_CC := $(TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
+TARGET_CXX := $(TOOLCHAIN_PREFIX)clang++$(HOST_EXEEXT)
+TARGET_LD := $(TOOLCHAIN_PREFIX)clang++$(HOST_EXEEXT)
+TARGET_AR := $(TOOLCHAIN_PREFIX)llvm-ar$(HOST_EXEEXT)
+TARGET_STRIP := $(TOOLCHAIN_PREFIX)$(LLVM_TRIPLE)-strip$(HOST_EXEEXT)
+
+TARGET_OBJ_EXTENSION := .bc
+TARGET_LIB_EXTENSION := .a #.bc
+TARGET_SONAME_EXTENSION := .bc
+
+TARGET_CFLAGS := \
+    -target $(LLVM_TRIPLE) \
+    -emit-llvm \
+    -ffunction-sections \
+    -funwind-tables \
+    -fPIC \
+    -no-canonical-prefixes
+# -nostdlibinc
+
+#TARGET_CXXFLAGS := $(TARGET_CFLAGS) -fno-exceptions -fno-rtti
+
+# reset backend flags
+TARGET_NO_EXECUTE_CFLAGS :=
+
+# Add and LDFLAGS for the target here
+TARGET_LDFLAGS := \
+    -target $(LLVM_TRIPLE) \
+    -emit-llvm \
+    -no-canonical-prefixes
+
+TARGET_C_INCLUDES := \
+    $(SYSROOT_INC)/usr/include
+
+TARGET_release_CFLAGS := -O2 \
+                         -g \
+                         -DNDEBUG \
+                         -fomit-frame-pointer \
+                         -fstrict-aliasing
+
+TARGET_debug_CFLAGS := $(TARGET_release_CFLAGS) \
+                       -O0 \
+                       -UNDEBUG \
+                       -fno-omit-frame-pointer \
+                       -fno-strict-aliasing
+
+# This function will be called to determine the target CFLAGS used to build
+# a C or Assembler source file, based on its tags.
+#
+TARGET-process-src-files-tags = \
+$(eval __debug_sources := $(call get-src-files-with-tag,debug)) \
+$(eval __release_sources := $(call get-src-files-without-tag,debug)) \
+$(call set-src-files-target-cflags, $(__debug_sources), $(TARGET_debug_CFLAGS)) \
+$(call set-src-files-target-cflags, $(__release_sources),$(TARGET_release_CFLAGS)) \
+$(call set-src-files-text,$(LOCAL_SRC_FILES),plus$(space)$(space)) \
+
+endif
+endif
+endif
+endif
diff --git a/toolchains/llvm-3.2/config.mk b/toolchains/llvm-3.2/config.mk
new file mode 100644
index 0000000..c110571
--- /dev/null
+++ b/toolchains/llvm-3.2/config.mk
@@ -0,0 +1,20 @@
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# config file for the clang-3.2 toolchain for the Android NDK
+# the real meat is in the setup.mk file adjacent to this one
+#
+TOOLCHAIN_ARCH :=
+TOOLCHAIN_ABIS :=
diff --git a/toolchains/llvm-3.2/setup.mk b/toolchains/llvm-3.2/setup.mk
new file mode 100644
index 0000000..2531ee5
--- /dev/null
+++ b/toolchains/llvm-3.2/setup.mk
@@ -0,0 +1,125 @@
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# this file is used to prepare the NDK to build with the clang-3.2
+# toolchain any number of source files
+#
+# its purpose is to define (or re-define) templates used to build
+# various sources into target object files, libraries or executables.
+#
+# Note that this file may end up being parsed several times in future
+# revisions of the NDK.
+#
+
+ifneq ($(filter %armeabi-v7a,$(TARGET_ARCH_ABI)),)
+
+SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
+TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
+NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/armeabi-v7a
+TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a/libportable.a $(TARGET_LDLIBS)
+include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.2/setup.mk
+
+else
+ifneq ($(filter %armeabi,$(TARGET_ARCH_ABI)),)
+
+SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
+TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
+NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/armeabi
+TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/armeabi/libportable.a $(TARGET_LDLIBS)
+include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.2/setup.mk
+
+else
+ifneq ($(filter %x86,$(TARGET_ARCH_ABI)),)
+
+SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86
+TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86/gdbserver/gdbserver
+NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/x86
+TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/x86/libportable.a $(TARGET_LDLIBS)
+include $(NDK_ROOT)/toolchains/x86-clang3.2/setup.mk
+
+else
+ifneq ($(filter %mips,$(TARGET_ARCH_ABI)),)
+
+SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips
+TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips/gdbserver/gdbserver
+NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/mips
+TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/mips/libportable.a $(TARGET_LDLIBS)
+include $(NDK_ROOT)/toolchains/mipsel-linux-android-clang3.2/setup.mk
+
+else
+
+TOOLCHAIN_NAME   := clang-3.2
+TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREBUILT_ROOT)/bin/
+LLVM_TRIPLE := le32-none-ndk
+
+TARGET_CC := $(TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
+TARGET_CXX := $(TOOLCHAIN_PREFIX)clang++$(HOST_EXEEXT)
+TARGET_LD := $(TOOLCHAIN_PREFIX)clang++$(HOST_EXEEXT)
+TARGET_AR := $(TOOLCHAIN_PREFIX)llvm-ar$(HOST_EXEEXT)
+TARGET_STRIP := $(TOOLCHAIN_PREFIX)$(LLVM_TRIPLE)-strip$(HOST_EXEEXT)
+
+TARGET_OBJ_EXTENSION := .bc
+TARGET_LIB_EXTENSION := .a #.bc
+TARGET_SONAME_EXTENSION := .bc
+
+TARGET_CFLAGS := \
+    -target $(LLVM_TRIPLE) \
+    -emit-llvm \
+    -ffunction-sections \
+    -funwind-tables \
+    -fPIC \
+    -no-canonical-prefixes
+# -nostdlibinc
+
+#TARGET_CXXFLAGS := $(TARGET_CFLAGS) -fno-exceptions -fno-rtti
+
+# reset backend flags
+TARGET_NO_EXECUTE_CFLAGS :=
+
+# Add and LDFLAGS for the target here
+TARGET_LDFLAGS := \
+    -target $(LLVM_TRIPLE) \
+    -emit-llvm \
+    -no-canonical-prefixes
+
+TARGET_C_INCLUDES := \
+    $(SYSROOT_INC)/usr/include
+
+TARGET_release_CFLAGS := -O2 \
+                         -g \
+                         -DNDEBUG \
+                         -fomit-frame-pointer \
+                         -fstrict-aliasing
+
+TARGET_debug_CFLAGS := $(TARGET_release_CFLAGS) \
+                       -O0 \
+                       -UNDEBUG \
+                       -fno-omit-frame-pointer \
+                       -fno-strict-aliasing
+
+# This function will be called to determine the target CFLAGS used to build
+# a C or Assembler source file, based on its tags.
+#
+TARGET-process-src-files-tags = \
+$(eval __debug_sources := $(call get-src-files-with-tag,debug)) \
+$(eval __release_sources := $(call get-src-files-without-tag,debug)) \
+$(call set-src-files-target-cflags, $(__debug_sources), $(TARGET_debug_CFLAGS)) \
+$(call set-src-files-target-cflags, $(__release_sources),$(TARGET_release_CFLAGS)) \
+$(call set-src-files-text,$(LOCAL_SRC_FILES),plus$(space)$(space)) \
+
+endif
+endif
+endif
+endif
