art: convert makefiles to support multilib build

Convert makefiles to allow for building two architectures at the
same time.  More changes may be necessary to get the tests to
build.

Change-Id: I02ba11706b7e5b5592d76e43c167bcbf0e665b93
diff --git a/compiler/Android.mk b/compiler/Android.mk
index c6662c2..c51087c 100644
--- a/compiler/Android.mk
+++ b/compiler/Android.mk
@@ -155,7 +155,7 @@
 
   LOCAL_SRC_FILES := $$(LIBART_COMPILER_SRC_FILES)
 
-  GENERATED_SRC_DIR := $$(call intermediates-dir-for,$$(LOCAL_MODULE_CLASS),$$(LOCAL_MODULE),$$(LOCAL_IS_HOST_MODULE),)
+  GENERATED_SRC_DIR := $$(call local-generated-sources-dir)
   ENUM_OPERATOR_OUT_CC_FILES := $$(patsubst %.h,%_operator_out.cc,$$(LIBART_COMPILER_ENUM_OPERATOR_OUT_HEADER_FILES))
   ENUM_OPERATOR_OUT_GEN := $$(addprefix $$(GENERATED_SRC_DIR)/,$$(ENUM_OPERATOR_OUT_CC_FILES))
 
@@ -198,27 +198,13 @@
   ifeq ($(ART_USE_PORTABLE_COMPILER),true)
     LOCAL_CFLAGS += -DART_USE_PORTABLE_COMPILER=1
     ifeq ($$(art_target_or_host),target)
-      ifeq ($(TARGET_ARCH),arm)
-        LOCAL_STATIC_LIBRARIES += libmcldARMInfo libmcldARMTarget
-      else # TARGET_ARCH != arm
-      ifeq ($(TARGET_ARCH),x86)
-        LOCAL_STATIC_LIBRARIES += libmcldX86Info libmcldX86Target
-      else # TARGET_ARCH != x86
-      ifeq ($(TARGET_ARCH),x86_64)
-        LOCAL_STATIC_LIBRARIES += libmcldX86Info libmcldX86Target
-      else # TARGET_ARCH != x86_64
-      ifeq ($(TARGET_ARCH),mips)
-        LOCAL_STATIC_LIBRARIES += libmcldMipsInfo libmcldMipsTarget
-      else # TARGET_ARCH != mips
-      ifeq ($(TARGET_ARCH),aarch64)
-         $$(info TODOAArch64: $$(LOCAL_PATH)/Android.mk Add AArch64 specific MCLinker libraries)
-      else # TARGET_ARCH != aarch64
-        $$(error unsupported TARGET_ARCH=$(TARGET_ARCH))
-      endif # TARGET_ARCH != aarch64
-      endif # TARGET_ARCH != mips
-      endif # TARGET_ARCH != x86_64
-      endif # TARGET_ARCH != x86
-      endif # TARGET_ARCH != arm
+      LOCAL_STATIC_LIBRARIES_arm += libmcldARMInfo libmcldARMTarget
+      LOCAL_STATIC_LIBRARIES_x86 += libmcldX86Info libmcldX86Target
+      LOCAL_STATIC_LIBRARIES_x86_64 += libmcldX86Info libmcldX86Target
+      LOCAL_STATIC_LIBRARIES_mips += libmcldMipsInfo libmcldMipsTarget
+      ifeq ($(TARGET_ARCH),arm64)
+         $$(info TODOAArch64: $$(LOCAL_PATH)/Android.mk Add Arm64 specific MCLinker libraries)
+      endif # TARGET_ARCH != arm64
     else # host
       LOCAL_STATIC_LIBRARIES += libmcldARMInfo libmcldARMTarget
       LOCAL_STATIC_LIBRARIES += libmcldX86Info libmcldX86Target
@@ -284,6 +270,9 @@
 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))
+ifdef TARGET_2ND_ARCH
+$(eval $(call copy-one-file, $(call intermediates-dir-for,STATIC_LIBRARIES,libcompiler_rt,,,t)/libcompiler_rt.a, $(2ND_TARGET_OUT_SHARED_LIBRARIES)/libcompiler_rt.a))
+endif
 
 $(DEX2OAT): $(TARGET_OUT_SHARED_LIBRARIES)/libcompiler_rt.a