diff options
author | Ying Wang <wangying@google.com> | 2010-09-17 16:36:06 -0700 |
---|---|---|
committer | Ying Wang <wangying@google.com> | 2010-09-22 16:51:53 -0700 |
commit | e7874c430895b9a4e631c89f1e7729da9264d167 (patch) | |
tree | eca14a68019faa2ee119cab7de78fcc8df7dedc0 /core/java_library.mk | |
parent | 38a3161dc7f5fec81df9412bc202c3962c74535d (diff) | |
download | build-e7874c430895b9a4e631c89f1e7729da9264d167.zip build-e7874c430895b9a4e631c89f1e7729da9264d167.tar.gz build-e7874c430895b9a4e631c89f1e7729da9264d167.tar.bz2 |
Integrate dexpreopt into the build system.
Change-Id: Id67f85d0f5c8674f5bc22e431114ca73625811ef
Diffstat (limited to 'core/java_library.mk')
-rw-r--r-- | core/java_library.mk | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/core/java_library.mk b/core/java_library.mk index a33bf2e..3e670a9 100644 --- a/core/java_library.mk +++ b/core/java_library.mk @@ -23,6 +23,14 @@ all_res_assets := LOCAL_BUILT_MODULE_STEM := javalib.jar +ifndef LOCAL_IS_HOST_MODULE +ifeq (true,$(WITH_DEXPREOPT)) +ifndef LOCAL_DEX_PREOPT +LOCAL_DEX_PREOPT := true +endif +endif +endif + ################################# include $(BUILD_SYSTEM)/java.mk ################################# @@ -35,13 +43,54 @@ $(LOCAL_BUILT_MODULE): $(full_classes_jar) else # !LOCAL_IS_STATIC_JAVA_LIBRARY +ifeq ($(LOCAL_DEX_PREOPT),true) +jar_with_dex := $(intermediates.COMMON)/javalib.dex.jar +$(jar_with_dex): PRIVATE_DEX_FILE := $(built_dex) +$(jar_with_dex) : $(built_dex) $(java_resource_sources) | $(AAPT) + @echo "target Jar: $(PRIVATE_MODULE) ($@)" + $(create-empty-package) + $(add-dex-to-package) +ifneq ($(extra_jar_args),) + $(add-java-resources-to-package) +endif + +dexpreopt_boot_jar_module := $(filter $(LOCAL_MODULE),$(DEXPREOPT_BOOT_JARS_MODULES)) +ifneq ($(dexpreopt_boot_jar_module),) +# boot jar's rules are defined in dex_preopt.mk +dexpreopted_boot_jar := $(DEXPREOPT_BOOT_JAR_DIR_FULL_PATH)/$(dexpreopt_boot_jar_module)_nodex.jar +$(LOCAL_BUILT_MODULE) : $(dexpreopted_boot_jar) | $(ACP) + $(call copy-file-to-target) + +dexpreopted_boot_odex := $(DEXPREOPT_BOOT_JAR_DIR_FULL_PATH)/$(dexpreopt_boot_jar_module).odex +built_odex := $(basename $(LOCAL_BUILT_MODULE)).odex +$(built_odex) : $(dexpreopted_boot_odex) | $(ACP) + $(call copy-file-to-target) + +else # dexpreopt_boot_jar_module +built_odex := $(basename $(LOCAL_BUILT_MODULE)).odex +$(built_odex): PRIVATE_MODULE := $(LOCAL_MODULE) +# Make sure the boot jars get dex-preopt-ed first +$(built_odex) : $(DEXPREOPT_BOOT_ODEXS) +$(built_odex) : $(jar_with_dex) | $(DEXPREOPT) $(DEXOPT) + @echo "Dexpreopt Jar: $(PRIVATE_MODULE) ($@)" + $(hide) rm -f $@ + $(call dexpreopt-one-file,$<,$@) + +$(LOCAL_BUILT_MODULE) : $(jar_with_dex) | $(ACP) $(AAPT) + $(call copy-file-to-target) + $(call dexpreopt-remove-classes.dex,$@) + +endif # dexpreopt_boot_jar_module + +else # LOCAL_DEX_PREOPT $(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex) -$(LOCAL_BUILT_MODULE): $(built_dex) $(java_resource_sources) | $(AAPT) +$(LOCAL_BUILT_MODULE) : $(built_dex) $(java_resource_sources) | $(AAPT) @echo "target Jar: $(PRIVATE_MODULE) ($@)" $(create-empty-package) $(add-dex-to-package) ifneq ($(extra_jar_args),) $(add-java-resources-to-package) endif +endif # LOCAL_DEX_PREOPT endif # !LOCAL_IS_STATIC_JAVA_LIBRARY |