Create separate Android.mk for main build targets

The runtime, compiler, dex2oat, and oatdump now are in seperate trees
to prevent dependency creep.  They can now be individually built
without rebuilding the rest of the art projects. dalvikvm and jdwpspy
were already this way. Builds in the art directory should behave as
before, building everything including tests.

Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81
diff --git a/build/Android.common.mk b/build/Android.common.mk
index 671ce5c..fcaa2bd 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -14,6 +14,36 @@
 # limitations under the License.
 #
 
+# These can be overridden via the environment or by editing to
+# enable/disable certain build configuration.
+#
+# For example, to disable everything but the host debug build you use:
+#
+# (export ART_BUILD_TARGET_NDEBUG=false && export ART_BUILD_TARGET_DEBUG=false && export ART_BUILD_HOST_NDEBUG=false && ...)
+#
+# Beware that tests may use the non-debug build for performance, notable 055-enum-performance
+#
+ART_BUILD_TARGET_NDEBUG ?= true
+ART_BUILD_TARGET_DEBUG ?= true
+ART_BUILD_HOST_NDEBUG ?= true
+ART_BUILD_HOST_DEBUG ?= true
+
+ifeq ($(ART_BUILD_TARGET_NDEBUG),false)
+$(info Disabling ART_BUILD_TARGET_NDEBUG)
+endif
+ifeq ($(ART_BUILD_TARGET_DEBUG),false)
+$(info Disabling ART_BUILD_TARGET_DEBUG)
+endif
+ifeq ($(ART_BUILD_HOST_NDEBUG),false)
+$(info Disabling ART_BUILD_HOST_NDEBUG)
+endif
+ifeq ($(ART_BUILD_HOST_DEBUG),false)
+$(info Disabling ART_BUILD_HOST_DEBUG)
+endif
+
+#
+# Used to enable smart mode
+#
 ART_SMALL_MODE := false
 ifneq ($(wildcard art/SMALL_ART),)
 $(info Enabling ART_SMALL_MODE because of existence of art/SMALL_ART)
@@ -23,6 +53,9 @@
 ART_SMALL_MODE := true
 endif
 
+#
+# Used to enable SEA mode
+#
 ART_SEA_IR_MODE := false
 ifneq ($(wildcard art/SEA_IR_ART),)
 $(info Enabling ART_SEA_IR_MODE because of existence of art/SEA_IR_ART)
@@ -32,6 +65,9 @@
 ART_SEA_IR_MODE := true
 endif
 
+#
+# Used to enable portable mode
+#
 ART_USE_PORTABLE_COMPILER := false
 ifneq ($(wildcard art/USE_PORTABLE_COMPILER),)
 $(info Enabling ART_USE_PORTABLE_COMPILER because of existence of art/USE_PORTABLE_COMPILER)
@@ -59,12 +95,14 @@
 
 ART_CPP_EXTENSION := .cc
 
+ART_HOST_SHLIB_EXTENSION := $(HOST_SHLIB_SUFFIX)
+ART_HOST_SHLIB_EXTENSION ?= .so
+
 ART_C_INCLUDES := \
 	external/gtest/include \
 	external/valgrind/main/include \
 	external/zlib \
-	frameworks/compile/mclinker/include \
-	art/src
+	frameworks/compile/mclinker/include
 
 art_cflags := \
 	-fno-rtti \
@@ -125,8 +163,11 @@
 else
   # Warn if not using GCC 4.6 for target builds when not doing a top-level or 'mma' build.
   ifneq ($(ONE_SHOT_MAKEFILE),)
-    # Enable target GCC 4.6 with: export TARGET_GCC_VERSION_EXP=4.6
-    $(info Using target GCC $(TARGET_GCC_VERSION) disables thread-safety checks.)
+    ifneq ($(ART_THREAD_SAFETY_CHECK_WARNING),true)
+      # Enable target GCC 4.6 with: export TARGET_GCC_VERSION_EXP=4.6
+      $(info Using target GCC $(TARGET_GCC_VERSION) disables thread-safety checks.)
+      ART_THREAD_SAFETY_CHECK_WARNING := true
+    endif
   endif
 endif
 # We build with GCC 4.6 on the host.
diff --git a/build/Android.executable.mk b/build/Android.executable.mk
index e74645c..54f9926 100644
--- a/build/Android.executable.mk
+++ b/build/Android.executable.mk
@@ -14,11 +14,7 @@
 # limitations under the License.
 #
 
-DEX2OAT_SRC_FILES := \
-	src/dex2oat.cc
-
-OATDUMP_SRC_FILES := \
-	src/oatdump.cc
+include art/build/Android.common.mk
 
 ART_HOST_EXECUTABLES :=
 ART_TARGET_EXECUTABLES :=
@@ -30,26 +26,28 @@
 
 # $(1): executable ("d" will be appended for debug version)
 # $(2): source
-# $(3): shared libraries
-# $(4): target or host
-# $(5): ndebug or debug
+# $(3): extra shared libraries
+# $(4): extra include directories
+# $(5): target or host
+# $(6): ndebug or debug
 define build-art-executable
-  ifneq ($(4),target)
-    ifneq ($(4),host)
-      $$(error expected target or host for argument 4, received $(4))
+  ifneq ($(5),target)
+    ifneq ($(5),host)
+      $$(error expected target or host for argument 5, received $(5))
     endif
   endif
-  ifneq ($(5),ndebug)
-    ifneq ($(5),debug)
-      $$(error expected ndebug or debug for argument 5, received $(5))
+  ifneq ($(6),ndebug)
+    ifneq ($(6),debug)
+      $$(error expected ndebug or debug for argument 6, received $(6))
     endif
   endif
 
   art_executable := $(1)
   art_source := $(2)
   art_shared_libraries := $(3)
-  art_target_or_host := $(4)
-  art_ndebug_or_debug := $(5)
+  art_c_includes := $(4)
+  art_target_or_host := $(5)
+  art_ndebug_or_debug := $(6)
 
   include $(CLEAR_VARS)
   ifeq ($$(art_target_or_host),target)
@@ -59,7 +57,7 @@
   LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION)
   LOCAL_MODULE_TAGS := optional
   LOCAL_SRC_FILES := $$(art_source)
-  LOCAL_C_INCLUDES += $(ART_C_INCLUDES)
+  LOCAL_C_INCLUDES += $(ART_C_INCLUDES) art/runtime $$(art_c_includes)
   LOCAL_SHARED_LIBRARIES := $$(art_shared_libraries) # libnativehelper
 
   ifeq ($$(art_ndebug_or_debug),ndebug)
@@ -97,8 +95,8 @@
     LOCAL_SHARED_LIBRARIES += libstlport
   endif
 
-  LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/build/Android.common.mk
-  LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/build/Android.executable.mk
+  LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common.mk
+  LOCAL_ADDITIONAL_DEPENDENCIES += art/build/Android.executable.mk
 
   ifeq ($$(art_target_or_host),target)
     include $(BUILD_EXECUTABLE)
@@ -109,27 +107,3 @@
   endif
 
 endef
-
-ifeq ($(ART_BUILD_TARGET_NDEBUG),true)
-  $(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libart-compiler,target,ndebug))
-  $(eval $(call build-art-executable,oatdump,$(OATDUMP_SRC_FILES),,target,ndebug))
-endif
-ifeq ($(ART_BUILD_TARGET_DEBUG),true)
-  $(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libartd-compiler,target,debug))
-  $(eval $(call build-art-executable,oatdump,$(OATDUMP_SRC_FILES),,target,debug))
-endif
-
-# We always build dex2oat and dependencies, even if the host build is otherwise disabled, since they are used to cross compile for the target.
-ifeq ($(ART_BUILD_NDEBUG),true)
-  $(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libart-compiler,host,ndebug))
-endif
-ifeq ($(ART_BUILD_NDEBUG),true)
-  $(eval $(call build-art-executable,dex2oat,$(DEX2OAT_SRC_FILES),libartd-compiler,host,debug))
-endif
-
-ifeq ($(ART_BUILD_HOST_NDEBUG),true)
-  $(eval $(call build-art-executable,oatdump,$(OATDUMP_SRC_FILES),,host,ndebug))
-endif
-ifeq ($(ART_BUILD_HOST_DEBUG),true)
-  $(eval $(call build-art-executable,oatdump,$(OATDUMP_SRC_FILES),,host,debug))
-endif
diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk
index 8b65efd..51af10c 100644
--- a/build/Android.gtest.mk
+++ b/build/Android.gtest.mk
@@ -14,53 +14,55 @@
 # limitations under the License.
 #
 
+LOCAL_PATH := art
+
 TEST_COMMON_SRC_FILES := \
-	src/barrier_test.cc \
-	src/base/histogram_test.cc \
-	src/base/mutex_test.cc \
-	src/base/unix_file/fd_file_test.cc \
-	src/base/unix_file/mapped_file_test.cc \
-	src/base/unix_file/null_file_test.cc \
-	src/base/unix_file/random_access_file_utils_test.cc \
-	src/base/unix_file/string_file_test.cc \
-	src/class_linker_test.cc \
-	src/compiler/driver/compiler_driver_test.cc \
-	src/compiler/elf_writer_test.cc \
-	src/compiler/jni/jni_compiler_test.cc \
-	src/dex_file_test.cc \
-	src/dex_instruction_visitor_test.cc \
-	src/dex_method_iterator_test.cc \
-	src/exception_test.cc \
-	src/gc/accounting/space_bitmap_test.cc \
-	src/gc/heap_test.cc \
-	src/gc/space/space_test.cc \
-	src/gtest_test.cc \
-	src/image_test.cc \
-	src/indenter_test.cc \
-	src/indirect_reference_table_test.cc \
-	src/intern_table_test.cc \
-	src/jni_internal_test.cc \
-	src/mirror/dex_cache_test.cc \
-	src/mirror/object_test.cc \
-	src/oat/utils/arm/managed_register_arm_test.cc \
-	src/oat/utils/x86/managed_register_x86_test.cc \
-	src/oat_test.cc \
-	src/output_stream_test.cc \
-	src/reference_table_test.cc \
-	src/runtime_support_test.cc \
-	src/runtime_test.cc \
-	src/thread_pool_test.cc \
-	src/utils_test.cc \
-	src/verifier/method_verifier_test.cc \
-	src/verifier/reg_type_test.cc \
-	src/zip_archive_test.cc
+	runtime/barrier_test.cc \
+	runtime/base/histogram_test.cc \
+	runtime/base/mutex_test.cc \
+	runtime/base/unix_file/fd_file_test.cc \
+	runtime/base/unix_file/mapped_file_test.cc \
+	runtime/base/unix_file/null_file_test.cc \
+	runtime/base/unix_file/random_access_file_utils_test.cc \
+	runtime/base/unix_file/string_file_test.cc \
+	runtime/class_linker_test.cc \
+	runtime/dex_file_test.cc \
+	runtime/dex_instruction_visitor_test.cc \
+	runtime/dex_method_iterator_test.cc \
+	runtime/exception_test.cc \
+	runtime/gc/accounting/space_bitmap_test.cc \
+	runtime/gc/heap_test.cc \
+	runtime/gc/space/space_test.cc \
+	runtime/gtest_test.cc \
+	runtime/image_test.cc \
+	runtime/indenter_test.cc \
+	runtime/indirect_reference_table_test.cc \
+	runtime/intern_table_test.cc \
+	runtime/jni_internal_test.cc \
+	runtime/mirror/dex_cache_test.cc \
+	runtime/mirror/object_test.cc \
+	runtime/oat/utils/arm/managed_register_arm_test.cc \
+	runtime/oat/utils/x86/managed_register_x86_test.cc \
+	runtime/oat_test.cc \
+	runtime/output_stream_test.cc \
+	runtime/reference_table_test.cc \
+	runtime/runtime_support_test.cc \
+	runtime/runtime_test.cc \
+	runtime/thread_pool_test.cc \
+	runtime/utils_test.cc \
+	runtime/verifier/method_verifier_test.cc \
+	runtime/verifier/reg_type_test.cc \
+	runtime/zip_archive_test.cc \
+	compiler/driver/compiler_driver_test.cc \
+	compiler/elf_writer_test.cc \
+	compiler/jni/jni_compiler_test.cc
 
 TEST_TARGET_SRC_FILES := \
 	$(TEST_COMMON_SRC_FILES)
 
 TEST_HOST_SRC_FILES := \
 	$(TEST_COMMON_SRC_FILES) \
-	src/oat/utils/x86/assembler_x86_test.cc
+	runtime/oat/utils/x86/assembler_x86_test.cc
 
 ART_HOST_TEST_EXECUTABLES :=
 ART_TARGET_TEST_EXECUTABLES :=
@@ -96,11 +98,11 @@
   ifeq ($$(art_target_or_host),target)
     LOCAL_MODULE_TAGS := tests
   endif
-  LOCAL_SRC_FILES := $$(art_gtest_filename) src/common_test.cc
-  LOCAL_C_INCLUDES += $(ART_C_INCLUDES)
+  LOCAL_SRC_FILES := $$(art_gtest_filename) runtime/common_test.cc
+  LOCAL_C_INCLUDES += $(ART_C_INCLUDES) art/runtime art/compiler
   LOCAL_SHARED_LIBRARIES := libartd-compiler libartd
-  LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/build/Android.common.mk
-  LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/build/Android.gtest.mk
+  LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common.mk
+  LOCAL_ADDITIONAL_DEPENDENCIES += art/build/Android.gtest.mk
 
   # Mac OS linker doesn't understand --export-dynamic.
   ifneq ($(HOST_OS)-$$(art_target_or_host),darwin-host)
diff --git a/build/Android.libart-compiler.mk b/build/Android.libart-compiler.mk
deleted file mode 100644
index ce6edba..0000000
--- a/build/Android.libart-compiler.mk
+++ /dev/null
@@ -1,223 +0,0 @@
-#
-# Copyright (C) 2012 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.
-#
-
-LIBART_COMPILER_SRC_FILES := \
-	src/compiler/dex/local_value_numbering.cc \
-	src/compiler/dex/arena_allocator.cc \
-	src/compiler/dex/arena_bit_vector.cc \
-	src/compiler/dex/quick/arm/assemble_arm.cc \
-	src/compiler/dex/quick/arm/call_arm.cc \
-	src/compiler/dex/quick/arm/fp_arm.cc \
-	src/compiler/dex/quick/arm/int_arm.cc \
-	src/compiler/dex/quick/arm/target_arm.cc \
-	src/compiler/dex/quick/arm/utility_arm.cc \
-	src/compiler/dex/quick/codegen_util.cc \
-	src/compiler/dex/quick/gen_common.cc \
-	src/compiler/dex/quick/gen_invoke.cc \
-	src/compiler/dex/quick/gen_loadstore.cc \
-	src/compiler/dex/quick/local_optimizations.cc \
-	src/compiler/dex/quick/mips/assemble_mips.cc \
-	src/compiler/dex/quick/mips/call_mips.cc \
-	src/compiler/dex/quick/mips/fp_mips.cc \
-	src/compiler/dex/quick/mips/int_mips.cc \
-	src/compiler/dex/quick/mips/target_mips.cc \
-	src/compiler/dex/quick/mips/utility_mips.cc \
-	src/compiler/dex/quick/mir_to_lir.cc \
-	src/compiler/dex/quick/ralloc_util.cc \
-	src/compiler/dex/quick/x86/assemble_x86.cc \
-	src/compiler/dex/quick/x86/call_x86.cc \
-	src/compiler/dex/quick/x86/fp_x86.cc \
-	src/compiler/dex/quick/x86/int_x86.cc \
-	src/compiler/dex/quick/x86/target_x86.cc \
-	src/compiler/dex/quick/x86/utility_x86.cc \
-	src/compiler/dex/portable/mir_to_gbc.cc \
-	src/compiler/dex/dex_to_dex_compiler.cc \
-	src/compiler/dex/mir_dataflow.cc \
-	src/compiler/dex/mir_optimization.cc \
-	src/compiler/dex/frontend.cc \
-	src/compiler/dex/mir_graph.cc \
-	src/compiler/dex/vreg_analysis.cc \
-	src/compiler/dex/ssa_transformation.cc \
-	src/compiler/driver/compiler_driver.cc \
-	src/compiler/driver/dex_compilation_unit.cc \
-	src/compiler/jni/portable/jni_compiler.cc \
-	src/compiler/jni/quick/arm/calling_convention_arm.cc \
-	src/compiler/jni/quick/mips/calling_convention_mips.cc \
-	src/compiler/jni/quick/x86/calling_convention_x86.cc \
-	src/compiler/jni/quick/calling_convention.cc \
-	src/compiler/jni/quick/jni_compiler.cc \
-	src/compiler/llvm/compiler_llvm.cc \
-	src/compiler/llvm/gbc_expander.cc \
-	src/compiler/llvm/generated/art_module.cc \
-	src/compiler/llvm/intrinsic_helper.cc \
-	src/compiler/llvm/ir_builder.cc \
-	src/compiler/llvm/llvm_compilation_unit.cc \
-	src/compiler/llvm/md_builder.cc \
-	src/compiler/llvm/runtime_support_builder.cc \
-	src/compiler/llvm/runtime_support_builder_arm.cc \
-	src/compiler/llvm/runtime_support_builder_thumb2.cc \
-	src/compiler/llvm/runtime_support_builder_x86.cc \
-        src/compiler/stubs/portable/stubs.cc \
-        src/compiler/stubs/quick/stubs.cc \
-	src/compiler/elf_fixup.cc \
-	src/compiler/elf_stripper.cc \
-	src/compiler/elf_writer.cc \
-	src/compiler/elf_writer_quick.cc \
-	src/compiler/image_writer.cc \
-	src/compiler/oat_writer.cc
-
-ifeq ($(ART_SEA_IR_MODE),true)
-LIBART_COMPILER_SRC_FILES += \
-	src/compiler/sea_ir/frontend.cc \
-	src/compiler/sea_ir/instruction_tools.cc
-endif
-
-LIBART_COMPILER_CFLAGS :=
-ifeq ($(ART_USE_PORTABLE_COMPILER),true)
-  LIBART_COMPILER_SRC_FILES += src/compiler/elf_writer_mclinker.cc
-  LIBART_COMPILER_CFLAGS += -DART_USE_PORTABLE_COMPILER=1
-endif
-
-# $(1): target or host
-# $(2): ndebug or debug
-define build-libart-compiler
-  ifneq ($(1),target)
-    ifneq ($(1),host)
-      $$(error expected target or host for argument 1, received $(1))
-    endif
-  endif
-  ifneq ($(2),ndebug)
-    ifneq ($(2),debug)
-      $$(error expected ndebug or debug for argument 2, received $(2))
-    endif
-  endif
-
-  art_target_or_host := $(1)
-  art_ndebug_or_debug := $(2)
-
-  include $(CLEAR_VARS)
-  ifeq ($$(art_target_or_host),target)
-    include external/stlport/libstlport.mk
-  endif
-  LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION)
-  ifeq ($$(art_ndebug_or_debug),ndebug)
-    LOCAL_MODULE := libart-compiler
-  else # debug
-    LOCAL_MODULE := libartd-compiler
-  endif
-
-  LOCAL_MODULE_TAGS := optional
-  LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-
-  LOCAL_SRC_FILES := $$(LIBART_COMPILER_SRC_FILES)
-
-  LOCAL_CFLAGS := $$(LIBART_COMPILER_CFLAGS)
-  ifeq ($$(art_target_or_host),target)
-    LOCAL_CLANG := $(ART_TARGET_CLANG)
-    LOCAL_CFLAGS += $(ART_TARGET_CFLAGS)
-  else # host
-    LOCAL_CLANG := $(ART_HOST_CLANG)
-    LOCAL_CFLAGS += $(ART_HOST_CFLAGS)
-  endif
-
-  # TODO: clean up the compilers and remove this.
-  LOCAL_CFLAGS += -Wno-unused-parameter
-
-  LOCAL_SHARED_LIBRARIES := liblog
-  ifeq ($$(art_ndebug_or_debug),debug)
-    ifeq ($$(art_target_or_host),target)
-      LOCAL_CFLAGS += $(ART_TARGET_DEBUG_CFLAGS)
-    else # host
-      LOCAL_CFLAGS += $(ART_HOST_DEBUG_CFLAGS)
-    endif
-    LOCAL_SHARED_LIBRARIES += libartd
-  else
-    ifeq ($$(art_target_or_host),target)
-      LOCAL_CFLAGS += $(ART_TARGET_NON_DEBUG_CFLAGS)
-    else # host
-      LOCAL_CFLAGS += $(ART_HOST_NON_DEBUG_CFLAGS)
-    endif
-    LOCAL_SHARED_LIBRARIES += libart
-  endif
-  LOCAL_SHARED_LIBRARIES += libbcc libLLVM
-
-  ifeq ($(ART_USE_PORTABLE_COMPILER),true)
-    LOCAL_CFLAGS += -DART_USE_PORTABLE_COMPILER=1
-  endif
-
-  LOCAL_C_INCLUDES += $(ART_C_INCLUDES)
-
-  ifeq ($$(art_target_or_host),target)
-    LOCAL_SHARED_LIBRARIES += libstlport
-  else # host
-    LOCAL_LDLIBS := -ldl -lpthread
-  endif
-  LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/build/Android.common.mk
-  LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/build/Android.libart-compiler.mk
-  ifeq ($$(art_target_or_host),target)
-    LOCAL_SHARED_LIBRARIES += libcutils
-    include $(LLVM_GEN_INTRINSICS_MK)
-    include $(LLVM_DEVICE_BUILD_MK)
-    include $(BUILD_SHARED_LIBRARY)
-  else # host
-    LOCAL_IS_HOST_MODULE := true
-    LOCAL_STATIC_LIBRARIES += libcutils
-    include $(LLVM_GEN_INTRINSICS_MK)
-    include $(LLVM_HOST_BUILD_MK)
-    include $(BUILD_HOST_SHARED_LIBRARY)
-  endif
-
-  ifeq ($$(art_target_or_host),target)
-    ifeq ($$(art_ndebug_or_debug),debug)
-      $(TARGET_OUT_EXECUTABLES)/dex2oatd: $$(LOCAL_INSTALLED_MODULE)
-    else
-      $(TARGET_OUT_EXECUTABLES)/dex2oat: $$(LOCAL_INSTALLED_MODULE)
-    endif
-  else # host
-    ifeq ($$(art_ndebug_or_debug),debug)
-      $(HOST_OUT_EXECUTABLES)/dex2oatd: $$(LOCAL_INSTALLED_MODULE)
-    else
-      $(HOST_OUT_EXECUTABLES)/dex2oat: $$(LOCAL_INSTALLED_MODULE)
-    endif
-  endif
-
-endef
-
-ifeq ($(ART_BUILD_TARGET_NDEBUG),true)
-  $(eval $(call build-libart-compiler,target,ndebug))
-endif
-ifeq ($(ART_BUILD_TARGET_DEBUG),true)
-  $(eval $(call build-libart-compiler,target,debug))
-endif
-# We always build dex2oat and dependencies, even if the host build is otherwise disabled, since they are used to cross compile for the target.
-ifeq ($(ART_BUILD_NDEBUG),true)
-  $(eval $(call build-libart-compiler,host,ndebug))
-endif
-ifeq ($(ART_BUILD_DEBUG),true)
-  $(eval $(call build-libart-compiler,host,debug))
-endif
-
-# Rule to build /system/lib/libcompiler_rt.a
-# Usually static libraries are not installed on the device.
-ifeq ($(ART_USE_PORTABLE_COMPILER),true)
-ifeq ($(ART_BUILD_TARGET),true)
-# TODO: Move to external/compiler_rt
-$(eval $(call copy-one-file, $(call intermediates-dir-for,STATIC_LIBRARIES,libcompiler_rt,,)/libcompiler_rt.a, $(TARGET_OUT_SHARED_LIBRARIES)/libcompiler_rt.a))
-
-$(DEX2OAT): $(TARGET_OUT_SHARED_LIBRARIES)/libcompiler_rt.a
-
-endif
-endif
diff --git a/build/Android.libart.mk b/build/Android.libart.mk
deleted file mode 100644
index 2f17583..0000000
--- a/build/Android.libart.mk
+++ /dev/null
@@ -1,371 +0,0 @@
-#
-# Copyright (C) 2011 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.
-#
-
-LIBART_COMMON_SRC_FILES := \
-	src/atomic.cc.arm \
-	src/barrier.cc \
-	src/base/logging.cc \
-	src/base/mutex.cc \
-	src/base/stringpiece.cc \
-	src/base/stringprintf.cc \
-	src/base/timing_logger.cc \
-	src/base/unix_file/fd_file.cc \
-	src/base/unix_file/mapped_file.cc \
-	src/base/unix_file/null_file.cc \
-	src/base/unix_file/random_access_file_utils.cc \
-	src/base/unix_file/string_file.cc \
-	src/check_jni.cc \
-	src/class_linker.cc \
-	src/common_throws.cc \
-	src/compiled_method.cc \
-	src/debugger.cc \
-	src/dex_file.cc \
-	src/dex_file_verifier.cc \
-	src/dex_instruction.cc \
-	src/disassembler.cc \
-	src/disassembler_arm.cc \
-	src/disassembler_mips.cc \
-	src/disassembler_x86.cc \
-	src/elf_file.cc \
-	src/file_output_stream.cc \
-	src/gc/allocator/dlmalloc.cc \
-	src/gc/accounting/card_table.cc \
-	src/gc/accounting/heap_bitmap.cc \
-	src/gc/accounting/mod_union_table.cc \
-	src/gc/accounting/space_bitmap.cc \
-	src/gc/collector/garbage_collector.cc \
-	src/gc/collector/mark_sweep.cc \
-	src/gc/collector/partial_mark_sweep.cc \
-	src/gc/collector/sticky_mark_sweep.cc \
-	src/gc/heap.cc \
-	src/gc/space/dlmalloc_space.cc \
-	src/gc/space/image_space.cc \
-	src/gc/space/large_object_space.cc \
-	src/gc/space/space.cc \
-	src/hprof/hprof.cc \
-	src/image.cc \
-	src/indirect_reference_table.cc \
-	src/instrumentation.cc \
-	src/intern_table.cc \
-	src/interpreter/interpreter.cc \
-	src/jdwp/jdwp_event.cc \
-	src/jdwp/jdwp_expand_buf.cc \
-	src/jdwp/jdwp_handler.cc \
-	src/jdwp/jdwp_main.cc \
-	src/jdwp/jdwp_request.cc \
-	src/jdwp/jdwp_socket.cc \
-	src/jdwp/object_registry.cc \
-	src/jni_internal.cc \
-	src/jobject_comparator.cc \
-	src/locks.cc \
-	src/mem_map.cc \
-	src/memory_region.cc \
-	src/mirror/abstract_method.cc \
-	src/mirror/array.cc \
-	src/mirror/class.cc \
-	src/mirror/dex_cache.cc \
-	src/mirror/field.cc \
-	src/mirror/object.cc \
-	src/mirror/stack_trace_element.cc \
-	src/mirror/string.cc \
-	src/mirror/throwable.cc \
-	src/monitor.cc \
-	src/native/dalvik_system_DexFile.cc \
-	src/native/dalvik_system_VMDebug.cc \
-	src/native/dalvik_system_VMRuntime.cc \
-	src/native/dalvik_system_VMStack.cc \
-	src/native/dalvik_system_Zygote.cc \
-	src/native/java_lang_Class.cc \
-	src/native/java_lang_Object.cc \
-	src/native/java_lang_Runtime.cc \
-	src/native/java_lang_String.cc \
-	src/native/java_lang_System.cc \
-	src/native/java_lang_Thread.cc \
-	src/native/java_lang_Throwable.cc \
-	src/native/java_lang_VMClassLoader.cc \
-	src/native/java_lang_reflect_Array.cc \
-	src/native/java_lang_reflect_Constructor.cc \
-	src/native/java_lang_reflect_Field.cc \
-	src/native/java_lang_reflect_Method.cc \
-	src/native/java_lang_reflect_Proxy.cc \
-	src/native/java_util_concurrent_atomic_AtomicLong.cc \
-	src/native/org_apache_harmony_dalvik_ddmc_DdmServer.cc \
-	src/native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc \
-	src/native/sun_misc_Unsafe.cc \
-	src/oat.cc \
-	src/oat/utils/arm/assembler_arm.cc \
-	src/oat/utils/arm/managed_register_arm.cc \
-	src/oat/utils/assembler.cc \
-	src/oat/utils/mips/assembler_mips.cc \
-	src/oat/utils/mips/managed_register_mips.cc \
-	src/oat/utils/x86/assembler_x86.cc \
-	src/oat/utils/x86/managed_register_x86.cc \
-	src/oat_file.cc \
-	src/offsets.cc \
-	src/os_linux.cc \
-	src/primitive.cc \
-	src/reference_table.cc \
-	src/reflection.cc \
-	src/runtime.cc \
-	src/runtime_support.cc \
-	src/runtime_support_llvm.cc \
-	src/signal_catcher.cc \
-	src/stack.cc \
-	src/thread.cc \
-	src/thread_list.cc \
-	src/thread_pool.cc \
-	src/throw_location.cc \
-	src/trace.cc \
-	src/utf.cc \
-	src/utils.cc \
-	src/vector_output_stream.cc \
-	src/verifier/dex_gc_map.cc \
-	src/verifier/instruction_flags.cc \
-	src/verifier/method_verifier.cc \
-	src/verifier/reg_type.cc \
-	src/verifier/reg_type_cache.cc \
-	src/verifier/register_line.cc \
-	src/well_known_classes.cc \
-	src/zip_archive.cc
-
-LIBART_COMMON_SRC_FILES += \
-	src/oat/runtime/context.cc \
-	src/oat/runtime/support_alloc.cc \
-	src/oat/runtime/support_cast.cc \
-	src/oat/runtime/support_deoptimize.cc \
-	src/oat/runtime/support_dexcache.cc \
-	src/oat/runtime/support_field.cc \
-	src/oat/runtime/support_fillarray.cc \
-	src/oat/runtime/support_instrumentation.cc \
-	src/oat/runtime/support_invoke.cc \
-	src/oat/runtime/support_jni.cc \
-	src/oat/runtime/support_locks.cc \
-	src/oat/runtime/support_math.cc \
-	src/oat/runtime/support_proxy.cc \
-	src/oat/runtime/support_stubs.cc \
-	src/oat/runtime/support_thread.cc \
-	src/oat/runtime/support_throw.cc \
-	src/oat/runtime/support_interpreter.cc
-
-ifeq ($(ART_SEA_IR_MODE),true)
-LIBART_COMMON_SRC_FILES += \
-	src/compiler/sea_ir/sea.cc \
-	src/compiler/sea_ir/instruction_tools.cc
-endif
-
-LIBART_TARGET_SRC_FILES := \
-	$(LIBART_COMMON_SRC_FILES) \
-	src/base/logging_android.cc \
-	src/jdwp/jdwp_adb.cc \
-	src/monitor_android.cc \
-	src/runtime_android.cc \
-	src/thread_android.cc
-
-ifeq ($(TARGET_ARCH),arm)
-LIBART_TARGET_SRC_FILES += \
-	src/oat/runtime/arm/context_arm.cc.arm \
-	src/oat/runtime/arm/oat_support_entrypoints_arm.cc \
-	src/oat/runtime/arm/runtime_support_arm.S
-else # TARGET_ARCH != arm
-ifeq ($(TARGET_ARCH),x86)
-LIBART_TARGET_SRC_FILES += \
-	src/oat/runtime/x86/context_x86.cc \
-	src/oat/runtime/x86/oat_support_entrypoints_x86.cc \
-	src/oat/runtime/x86/runtime_support_x86.S
-else # TARGET_ARCH != x86
-ifeq ($(TARGET_ARCH),mips)
-LIBART_TARGET_SRC_FILES += \
-	src/oat/runtime/mips/context_mips.cc \
-	src/oat/runtime/mips/oat_support_entrypoints_mips.cc \
-	src/oat/runtime/mips/runtime_support_mips.S
-else # TARGET_ARCH != mips
-$(error unsupported TARGET_ARCH=$(TARGET_ARCH))
-endif # TARGET_ARCH != mips
-endif # TARGET_ARCH != x86
-endif # TARGET_ARCH != arm
-
-ifeq ($(TARGET_ARCH),arm)
-LIBART_TARGET_SRC_FILES += src/thread_arm.cc
-else # TARGET_ARCH != arm
-ifeq ($(TARGET_ARCH),x86)
-LIBART_TARGET_SRC_FILES += src/thread_x86.cc
-else # TARGET_ARCH != x86
-ifeq ($(TARGET_ARCH),mips)
-LIBART_TARGET_SRC_FILES += src/thread_mips.cc
-else # TARGET_ARCH != mips
-$(error unsupported TARGET_ARCH=$(TARGET_ARCH))
-endif # TARGET_ARCH != mips
-endif # TARGET_ARCH != x86
-endif # TARGET_ARCH != arm
-
-LIBART_HOST_SRC_FILES := \
-	$(LIBART_COMMON_SRC_FILES) \
-	src/base/logging_linux.cc \
-	src/monitor_linux.cc \
-	src/runtime_linux.cc \
-	src/thread_linux.cc
-
-ifeq ($(HOST_ARCH),x86)
-LIBART_HOST_SRC_FILES += \
-	src/oat/runtime/x86/context_x86.cc \
-	src/oat/runtime/x86/oat_support_entrypoints_x86.cc \
-	src/oat/runtime/x86/runtime_support_x86.S
-else # HOST_ARCH != x86
-$(error unsupported HOST_ARCH=$(HOST_ARCH))
-endif # HOST_ARCH != x86
-
-ifeq ($(HOST_ARCH),x86)
-LIBART_HOST_SRC_FILES += src/thread_x86.cc
-else # HOST_ARCH != x86
-$(error unsupported HOST_ARCH=$(HOST_ARCH))
-endif # HOST_ARCH != x86
-
-
-LIBART_ENUM_OPERATOR_OUT_HEADER_FILES := \
-	src/base/mutex.h \
-	src/compiler/dex/compiler_enums.h \
-	src/dex_file.h \
-	src/dex_instruction.h \
-	src/gc/collector/gc_type.h \
-	src/gc/space/space.h \
-	src/gc/heap.h \
-	src/indirect_reference_table.h \
-	src/instruction_set.h \
-	src/invoke_type.h \
-	src/jdwp/jdwp.h \
-	src/jdwp/jdwp_constants.h \
-	src/locks.h \
-	src/mirror/class.h \
-	src/thread.h \
-	src/thread_state.h \
-	src/verifier/method_verifier.h
-
-LIBART_CFLAGS :=
-ifeq ($(ART_USE_PORTABLE_COMPILER),true)
-  LIBART_CFLAGS += -DART_USE_PORTABLE_COMPILER=1
-endif
-
-# $(1): target or host
-# $(2): ndebug or debug
-define build-libart
-  ifneq ($(1),target)
-    ifneq ($(1),host)
-      $$(error expected target or host for argument 1, received $(1))
-    endif
-  endif
-  ifneq ($(2),ndebug)
-    ifneq ($(2),debug)
-      $$(error expected ndebug or debug for argument 2, received $(2))
-    endif
-  endif
-
-  art_target_or_host := $(1)
-  art_ndebug_or_debug := $(2)
-
-  include $(CLEAR_VARS)
-  ifeq ($$(art_target_or_host),target)
-    include external/stlport/libstlport.mk
-  endif
-  LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION)
-  ifeq ($$(art_ndebug_or_debug),ndebug)
-    LOCAL_MODULE := libart
-  else # debug
-    LOCAL_MODULE := libartd
-  endif
-
-  LOCAL_MODULE_TAGS := optional
-  LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-
-  ifeq ($$(art_target_or_host),target)
-    LOCAL_SRC_FILES := $(LIBART_TARGET_SRC_FILES)
-  else # host
-    LOCAL_SRC_FILES := $(LIBART_HOST_SRC_FILES)
-    LOCAL_IS_HOST_MODULE := true
-  endif
-
-  GENERATED_SRC_DIR := $$(call intermediates-dir-for,$$(LOCAL_MODULE_CLASS),$$(LOCAL_MODULE),$$(LOCAL_IS_HOST_MODULE),)
-  ENUM_OPERATOR_OUT_CC_FILES := $$(patsubst %.h,%_operator_out.cc,$$(LIBART_ENUM_OPERATOR_OUT_HEADER_FILES))
-  ENUM_OPERATOR_OUT_GEN := $$(addprefix $$(GENERATED_SRC_DIR)/,$$(ENUM_OPERATOR_OUT_CC_FILES))
-
-$$(ENUM_OPERATOR_OUT_GEN): art/tools/generate-operator-out.py
-$$(ENUM_OPERATOR_OUT_GEN): PRIVATE_CUSTOM_TOOL = art/tools/generate-operator-out.py $$< > $$@
-$$(ENUM_OPERATOR_OUT_GEN): $$(GENERATED_SRC_DIR)/%_operator_out.cc : art/%.h
-	$$(transform-generated-source)
-
-  LOCAL_GENERATED_SOURCES += $$(ENUM_OPERATOR_OUT_GEN)
-
-  LOCAL_CFLAGS := $(LIBART_CFLAGS)
-  ifeq ($$(art_target_or_host),target)
-    LOCAL_CLANG := $(ART_TARGET_CLANG)
-    LOCAL_CFLAGS += $(ART_TARGET_CFLAGS)
-  else # host
-    LOCAL_CLANG := $(ART_HOST_CLANG)
-    LOCAL_CFLAGS += $(ART_HOST_CFLAGS)
-  endif
-  ifeq ($$(art_ndebug_or_debug),debug)
-    ifeq ($$(art_target_or_host),target)
-      LOCAL_CFLAGS += $(ART_TARGET_DEBUG_CFLAGS)
-    else # host
-      LOCAL_CFLAGS += $(ART_HOST_DEBUG_CFLAGS)
-      LOCAL_LDLIBS += $(ART_HOST_DEBUG_LDLIBS)
-      LOCAL_STATIC_LIBRARIES := libgtest_host
-    endif
-  else
-    ifeq ($$(art_target_or_host),target)
-      LOCAL_CFLAGS += $(ART_TARGET_NON_DEBUG_CFLAGS)
-    else # host
-      LOCAL_CFLAGS += $(ART_HOST_NON_DEBUG_CFLAGS)
-    endif
-  endif
-  LOCAL_C_INCLUDES += $(ART_C_INCLUDES)
-  LOCAL_SHARED_LIBRARIES := liblog libnativehelper
-  LOCAL_SHARED_LIBRARIES += libcorkscrew # native stack trace support
-  ifeq ($$(art_target_or_host),target)
-    LOCAL_SHARED_LIBRARIES += libcutils libstlport libz libdl libselinux
-  else # host
-    LOCAL_STATIC_LIBRARIES += libcutils
-    LOCAL_SHARED_LIBRARIES += libz-host
-    LOCAL_LDLIBS += -ldl -lpthread
-    ifeq ($(HOST_OS),linux)
-      LOCAL_LDLIBS += -lrt
-    endif
-  endif
-  include $(LLVM_GEN_INTRINSICS_MK)
-  LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/build/Android.common.mk
-  LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/build/Android.libart.mk
-  ifeq ($$(art_target_or_host),target)
-    include $(LLVM_DEVICE_BUILD_MK)
-    include $(BUILD_SHARED_LIBRARY)
-  else # host
-    include $(LLVM_HOST_BUILD_MK)
-    include $(BUILD_HOST_SHARED_LIBRARY)
-  endif
-endef
-
-ifeq ($(ART_BUILD_TARGET_NDEBUG),true)
-  $(eval $(call build-libart,target,ndebug))
-endif
-ifeq ($(ART_BUILD_TARGET_DEBUG),true)
-  $(eval $(call build-libart,target,debug))
-endif
-
-# We always build dex2oat and dependencies, even if the host build is otherwise disabled, since they are used to cross compile for the target.
-ifeq ($(ART_BUILD_NDEBUG),true)
-  $(eval $(call build-libart,host,ndebug))
-endif
-ifeq ($(ART_BUILD_DEBUG),true)
-  $(eval $(call build-libart,host,debug))
-endif
diff --git a/build/Android.libarttest.mk b/build/Android.libarttest.mk
index 64f8368..239f6c1 100644
--- a/build/Android.libarttest.mk
+++ b/build/Android.libarttest.mk
@@ -40,7 +40,7 @@
   endif
   LOCAL_SRC_FILES := $(LIBARTTEST_COMMON_SRC_FILES)
   LOCAL_SHARED_LIBRARIES := libartd
-  LOCAL_C_INCLUDES += $(ART_C_INCLUDES)
+  LOCAL_C_INCLUDES += $(ART_C_INCLUDES) art/runtime
   LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/build/Android.common.mk
   LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/build/Android.libarttest.mk
   ifeq ($$(art_target_or_host),target)
diff --git a/build/Android.oattest.mk b/build/Android.oattest.mk
deleted file mode 100644
index 6ee8492..0000000
--- a/build/Android.oattest.mk
+++ /dev/null
@@ -1,138 +0,0 @@
-#
-# Copyright (C) 2011 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.
-#
-
-########################################################################
-
-# subdirectories of test/ which are used as inputs for gtests
-TEST_DEX_DIRECTORIES := \
-	AbstractMethod \
-	AllFields \
-	CreateMethodSignature \
-	ExceptionHandle \
-	Interfaces \
-	Main \
-	MyClass \
-	MyClassNatives \
-	Nested \
-	NonStaticLeafMethods \
-	ProtoCompare \
-	ProtoCompare2 \
-	StaticLeafMethods \
-	Statics \
-	StaticsFromCode \
-	XandY
-
-# subdirectories of test/ which are used with test-art-target-oat
-# Declare the simplest tests (Main, HelloWorld) first, the rest are alphabetical
-TEST_OAT_DIRECTORIES := \
-	Main \
-	HelloWorld \
-	\
-	ParallelGC \
-	ReferenceMap \
-	StackWalk \
-	ThreadStress
-
-# TODO: Enable when the StackWalk2 tests are passing
-#	StackWalk2 \
-
-ART_TEST_TARGET_DEX_FILES :=
-ART_TEST_HOST_DEX_FILES :=
-
-# $(1): module prefix
-# $(2): input test directory
-# $(3): target output module path (default module path is used on host)
-define build-art-test-dex
-  ifeq ($(ART_BUILD_TARGET),true)
-    include $(CLEAR_VARS)
-    LOCAL_MODULE := $(1)-$(2)
-    LOCAL_MODULE_TAGS := tests
-    LOCAL_SRC_FILES := $(call all-java-files-under, test/$(2))
-    LOCAL_JAVA_LIBRARIES := $(TARGET_CORE_JARS)
-    LOCAL_NO_STANDARD_LIBRARIES := true
-    LOCAL_MODULE_PATH := $(3)
-    LOCAL_DEX_PREOPT_IMAGE := $(TARGET_CORE_IMG_OUT)
-    LOCAL_DEX_PREOPT := false
-    LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/build/Android.common.mk
-    LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/build/Android.oattest.mk
-    include $(BUILD_JAVA_LIBRARY)
-    ART_TEST_TARGET_DEX_FILES += $(3)/$$(LOCAL_MODULE).jar
-  endif
-
-  ifeq ($(ART_BUILD_HOST),true)
-    include $(CLEAR_VARS)
-    LOCAL_MODULE := $(1)-$(2)
-    LOCAL_SRC_FILES := $(call all-java-files-under, test/$(2))
-    LOCAL_JAVA_LIBRARIES := $(HOST_CORE_JARS)
-    LOCAL_NO_STANDARD_LIBRARIES := true
-    LOCAL_DEX_PREOPT_IMAGE := $(HOST_CORE_IMG_OUT)
-    LOCAL_BUILD_HOST_DEX := true
-    LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/build/Android.common.mk
-    LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/build/Android.oattest.mk
-    include $(BUILD_HOST_JAVA_LIBRARY)
-    ART_TEST_HOST_DEX_FILES += $$(LOCAL_MODULE_PATH)/$$(LOCAL_MODULE).jar
-  endif
-endef
-$(foreach dir,$(TEST_DEX_DIRECTORIES), $(eval $(call build-art-test-dex,art-test-dex,$(dir),$(ART_NATIVETEST_OUT))))
-$(foreach dir,$(TEST_OAT_DIRECTORIES), $(eval $(call build-art-test-dex,oat-test-dex,$(dir),$(ART_TEST_OUT))))
-
-########################################################################
-
-ART_TEST_TARGET_OAT_TARGETS :=
-ART_TEST_HOST_OAT_TARGETS :=
-ART_TEST_HOST_INTERPRETER_OAT_TARGETS :=
-
-# $(1): directory
-# $(2): arguments
-define declare-test-art-oat-targets
-.PHONY: test-art-target-oat-$(1)
-test-art-target-oat-$(1): $(ART_TEST_OUT)/oat-test-dex-$(1).jar test-art-target-sync
-	adb shell touch $(ART_TEST_DIR)/test-art-target-oat-$(1)
-	adb shell rm $(ART_TEST_DIR)/test-art-target-oat-$(1)
-	adb shell sh -c "dalvikvm -XXlib:libartd.so -Ximage:$(ART_TEST_DIR)/core.art -classpath $(ART_TEST_DIR)/oat-test-dex-$(1).jar -Djava.library.path=$(ART_TEST_DIR) $(1) $(2) && touch $(ART_TEST_DIR)/test-art-target-oat-$(1)"
-	$(hide) (adb pull $(ART_TEST_DIR)/test-art-target-oat-$(1) /tmp/ && echo test-art-target-oat-$(1) PASSED) || (echo test-art-target-oat-$(1) FAILED && exit 1)
-	$(hide) rm /tmp/test-art-target-oat-$(1)
-
-$(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).odex: $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).jar $(HOST_CORE_IMG_OUT) | $(DEX2OAT)
-	$(DEX2OAT) --runtime-arg -Xms16m --runtime-arg -Xmx16m --boot-image=$(HOST_CORE_IMG_OUT) --dex-file=$$< --oat-file=$$@ --instruction-set=$(HOST_ARCH) --host --host-prefix="" --android-root=$(HOST_OUT)
-
-.PHONY: test-art-host-oat-$(1)
-test-art-host-oat-$(1): $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).odex test-art-host-dependencies
-	mkdir -p /tmp/android-data/test-art-host-oat-$(1)
-	ANDROID_DATA=/tmp/android-data/test-art-host-oat-$(1) \
-	  ANDROID_ROOT=$(HOST_OUT) \
-	  LD_LIBRARY_PATH=$(HOST_OUT_SHARED_LIBRARIES) \
-	  dalvikvm -XXlib:libartd.so -Ximage:$(shell pwd)/$(HOST_CORE_IMG_OUT) -classpath $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).jar -Djava.library.path=$(HOST_OUT_SHARED_LIBRARIES) $(1) $(2) \
-          && echo test-art-host-oat-$(1) PASSED || (echo test-art-host-oat-$(1) FAILED && exit 1)
-	$(hide) rm -r /tmp/android-data/test-art-host-oat-$(1)
-
-.PHONY: test-art-host-interpreter-oat-$(1)
-test-art-host-interpreter-oat-$(1): $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).odex test-art-host-dependencies
-	mkdir -p /tmp/android-data/test-art-host-interpreter-oat-$(1)
-	ANDROID_DATA=/tmp/android-data/test-art-host-interpreter-oat-$(1) \
-	  ANDROID_ROOT=$(HOST_OUT) \
-	  LD_LIBRARY_PATH=$(HOST_OUT_SHARED_LIBRARIES) \
-	  dalvikvm -XXlib:libartd.so -Ximage:$(shell pwd)/$(HOST_CORE_IMG_OUT) -Xint -classpath $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).jar -Djava.library.path=$(HOST_OUT_SHARED_LIBRARIES) $(1) $(2) \
-          && echo test-art-host-interpreter-oat-$(1) PASSED || (echo test-art-host-interpreter-oat-$(1) FAILED && exit 1)
-	$(hide) rm -r /tmp/android-data/test-art-host-interpreter-oat-$(1)
-
-ART_TEST_TARGET_OAT_TARGETS += test-art-target-oat-$(1)
-ART_TEST_HOST_OAT_TARGETS += test-art-host-oat-$(1)
-ART_TEST_HOST_INTERPRETER_OAT_TARGETS += test-art-host-interpreter-oat-$(1)
-endef
-$(foreach dir,$(TEST_OAT_DIRECTORIES), $(eval $(call declare-test-art-oat-targets,$(dir))))
-
-########################################################################