Always run dex2oat (2 of 3)
Change-Id: I2714508cbd655adfd9c6d46b40eedabc9d83dff6
diff --git a/Android.mk b/Android.mk
index e498db0..4086c2f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -65,8 +65,8 @@
ART_TARGET_DEPENDENCIES := $(ART_TARGET_EXECUTABLES) $(TARGET_OUT_JAVA_LIBRARIES)/core.jar $(TARGET_OUT_SHARED_LIBRARIES)/libjavacore.so
-ART_HOST_TEST_DEPENDENCIES := $(ART_HOST_DEPENDENCIES) $(ART_HOST_TEST_EXECUTABLES) $(ART_TEST_DEX_FILES) $(ART_TEST_OAT_FILES)
-ART_TARGET_TEST_DEPENDENCIES := $(ART_TARGET_DEPENDENCIES) $(ART_TARGET_TEST_EXECUTABLES) $(ART_TEST_DEX_FILES) $(ART_TEST_OAT_FILES)
+ART_HOST_TEST_DEPENDENCIES := $(ART_HOST_DEPENDENCIES) $(ART_HOST_TEST_EXECUTABLES) $(ART_TEST_DEX_FILES)
+ART_TARGET_TEST_DEPENDENCIES := $(ART_TARGET_DEPENDENCIES) $(ART_TARGET_TEST_EXECUTABLES) $(ART_TEST_DEX_FILES)
########################################################################
# host test targets
@@ -119,32 +119,30 @@
@echo test-art-target-run-test-002 PASSED
########################################################################
-# oat test targets
+# oat-target and oat-target-sync targets
-# $(1): jar or apk name
-define art-cache-oat
- $(call art-cache-out,$(1).oat)
+OAT_TARGET_TARGETS :=
+
+# $(1): input jar or apk target location
+define declare-oat-target-target
+.PHONY: oat-target-$(1)
+oat-target-$(1): $(PRODUCT_OUT)/$(1) $(TARGET_BOOT_IMG_OUT) $(DEX2OAT_DEPENDENCY)
+ $(DEX2OAT) --runtime-arg -Xms64m --runtime-arg -Xmx64m --boot-image=$(TARGET_BOOT_IMG_OUT) --dex-file=$(PRODUCT_OUT)/$(1) --dex-location=$(1) --oat-file=$(call art-cache-out,$(1).oat) --host-prefix=$(PRODUCT_OUT)
+
+OAT_TARGET_TARGETS += oat-target-$(1)
endef
-ART_CACHE_OATS :=
-# $(1): name
-define build-art-cache-oat
- $(call build-art-oat,$(PRODUCT_OUT)/$(1),/$(1),$(call art-cache-oat,$(1)),$(TARGET_BOOT_IMG_OUT))
- ART_CACHE_OATS += $(call art-cache-oat,$(1))
-endef
-
-
-########################################################################
-# oat-target-sync
-
$(foreach file,\
$(filter-out\
$(TARGET_BOOT_DEX),\
$(wildcard $(TARGET_OUT_APPS)/*.apk) $(wildcard $(TARGET_OUT_JAVA_LIBRARIES)/*.jar)),\
- $(eval $(call build-art-cache-oat,$(subst $(PRODUCT_OUT)/,,$(file)))))
+ $(eval $(call declare-oat-target-target,$(subst $(PRODUCT_OUT)/,,$(file)))))
+
+.PHONY: oat-target
+oat-target: $(ART_TARGET_DEPENDENCIES) $(TARGET_BOOT_OAT_OUT) $(OAT_TARGET_TARGETS)
.PHONY: oat-target-sync
-oat-target-sync: $(ART_TARGET_DEPENDENCIES) $(TARGET_BOOT_OAT_OUT) $(ART_CACHE_OATS)
+oat-target-sync: oat-target
adb remount
adb sync
diff --git a/build/Android.common.mk b/build/Android.common.mk
index aee7bdd..9825a9c 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -26,20 +26,6 @@
include $(LLVM_ROOT_PATH)/llvm.mk
endif
-# art-cache
-ART_CACHE_DIR := /data/art-cache
-ART_CACHE_OUT := $(TARGET_OUT_DATA)/art-cache
-
-# $(1): pathname
-define art-cache-dir
-$(ART_CACHE_DIR)/$(subst /,@,$(1))
-endef
-
-# $(1): pathname
-define art-cache-out
-$(ART_CACHE_OUT)/$(subst /,@,$(1))
-endef
-
# directory used for gtests on device
ART_NATIVETEST_DIR := /data/nativetest/art
ART_NATIVETEST_OUT := $(TARGET_OUT_DATA_NATIVE_TESTS)/art
diff --git a/build/Android.oat.mk b/build/Android.oat.mk
index 4f8ff2b..b1acfb3 100644
--- a/build/Android.oat.mk
+++ b/build/Android.oat.mk
@@ -14,7 +14,7 @@
# limitations under the License.
#
-DEX2OAT := $(HOST_OUT_EXECUTABLES)/dex2oat$(HOST_EXECUTABLE_SUFFIX)
+# DEX2OAT defined in build/core/config.mk
DEX2OATD := $(HOST_OUT_EXECUTABLES)/dex2oatd$(HOST_EXECUTABLE_SUFFIX)
# TODO: for now, override with debug version for better error reporting
DEX2OAT := $(DEX2OATD)
@@ -73,15 +73,10 @@
TARGET_BOOT_JARS := $(subst :, ,$(DEXPREOPT_BOOT_JARS))
TARGET_BOOT_DEX_LOCATIONS := $(foreach jar,$(TARGET_BOOT_JARS),/$(DEXPREOPT_BOOT_JAR_DIR)/$(jar).jar)
TARGET_BOOT_DEX_FILES := $(foreach jar,$(TARGET_BOOT_JARS),$(call intermediates-dir-for,JAVA_LIBRARIES,$(jar),,COMMON)/javalib.jar)
-ifeq ($(TARGET_PRODUCT),$(filter $(TARGET_PRODUCT),trygon))
- TARGET_BOOT_OAT := $(call art-cache-dir,$(DEXPREOPT_BOOT_JAR_DIR)/boot.oat)
- TARGET_BOOT_OAT_OUT := $(call art-cache-out,$(DEXPREOPT_BOOT_JAR_DIR)/boot.oat)
- TARGET_BOOT_IMG_OUT := $(call art-cache-out,$(DEXPREOPT_BOOT_JAR_DIR)/boot.art)
-else
- TARGET_BOOT_OAT := /$(DEXPREOPT_BOOT_JAR_DIR)/boot.oat
- TARGET_BOOT_OAT_OUT := $(TARGET_OUT_JAVA_LIBRARIES)/boot.oat
- TARGET_BOOT_IMG_OUT := $(TARGET_OUT_JAVA_LIBRARIES)/boot.art
-endif
+
+TARGET_BOOT_IMG_OUT := $(DEFAULT_DEX_PREOPT_IMAGE)
+TARGET_BOOT_OAT_OUT := $(patsubst %.art,%.oat,$(TARGET_BOOT_IMG_OUT))
+TARGET_BOOT_OAT := $(subst $(PRODUCT_OUT),,$(TARGET_BOOT_OAT_OUT))
$(TARGET_BOOT_OAT_OUT): $(TARGET_BOOT_DEX_FILES) $(DEX2OAT_DEPENDENCY)
@echo "target dex2oat: $@ ($?)"
diff --git a/build/Android.oattest.mk b/build/Android.oattest.mk
index 7e630c7..bba51e9 100644
--- a/build/Android.oattest.mk
+++ b/build/Android.oattest.mk
@@ -29,6 +29,7 @@
LOCAL_JAVA_LIBRARIES := core
LOCAL_NO_STANDARD_LIBRARIES := true
LOCAL_MODULE_PATH := $(3)
+ LOCAL_DEX_PREOPT_IMAGE := $(TARGET_CORE_IMG_OUT)
include $(BUILD_JAVA_LIBRARY)
ART_TEST_DEX_FILES += $(3)/$$(LOCAL_MODULE).jar
endef
@@ -37,36 +38,11 @@
########################################################################
-# $(1): input jar or apk filename
-# $(2): input jar or apk target location
-# $(3): output oat filename
-# $(4): boot image
-define build-art-oat
-$(3): $(1) $(4) $(DEX2OAT_DEPENDENCY)
- @echo "target dex2oat: $$@ ($$?)"
- @mkdir -p $$(dir $$@)
- $(hide) $(DEX2OAT) --runtime-arg -Xms64m --runtime-arg -Xmx64m --boot-image=$(4) --dex-file=$(1) --dex-location=$(2) --oat-file=$$@ --host-prefix=$(PRODUCT_OUT)
-endef
-
-########################################################################
-ART_TEST_OAT_FILES :=
-
-# $(1): directory
-define build-art-test-oat
- $(call build-art-oat,$(call intermediates-dir-for,JAVA_LIBRARIES,oat-test-dex-$(dir),,COMMON)/javalib.jar,$(ART_TEST_DIR)/oat-test-dex-$(1).jar,$(ART_TEST_OUT)/oat-test-dex-$(1).jar.oat,$(TARGET_CORE_IMG_OUT))
- ART_TEST_OAT_FILES += $(ART_TEST_OUT)/oat-test-dex-$(1).jar.oat
-endef
-ifneq (user,$(TARGET_BUILD_VARIANT))
- $(foreach dir,$(TEST_OAT_DIRECTORIES), $(eval $(call build-art-test-oat,$(dir))))
-endif
-
-########################################################################
-
ART_TEST_OAT_TARGETS :=
# $(1): directory
# $(2): arguments
-define declare-test-test-target
+define declare-test-art-target
.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)
@@ -77,6 +53,6 @@
ART_TEST_OAT_TARGETS += test-art-target-oat-$(1)
endef
-$(foreach dir,$(TEST_OAT_DIRECTORIES), $(eval $(call declare-test-test-target,$(dir))))
+$(foreach dir,$(TEST_OAT_DIRECTORIES), $(eval $(call declare-test-art-target,$(dir))))
########################################################################