summaryrefslogtreecommitdiffstats
path: root/dx/Android.mk
diff options
context:
space:
mode:
authorYohann Roussel <yroussel@google.com>2013-08-07 16:08:05 +0200
committerYohann Roussel <yroussel@google.com>2013-08-21 21:42:34 +0200
commit2bb6fe45bf620525ba34bd7303d7ecb597aa0689 (patch)
treea5a4f57ee1bb0b0975aae196b146e8f92b8038ee /dx/Android.mk
parent27366b6a408f945db1873f3cd507d520cd57d124 (diff)
downloadandroid_dalvik-2bb6fe45bf620525ba34bd7303d7ecb597aa0689.tar.gz
android_dalvik-2bb6fe45bf620525ba34bd7303d7ecb597aa0689.tar.bz2
android_dalvik-2bb6fe45bf620525ba34bd7303d7ecb597aa0689.zip
Introduction of a tool to find main dex classes.
This is for legacy application wanting to allow --multi-dex on dx and load the multiple files using the com.android.multidex.installer library. The mainDexClasses script will provide the content of the file to give to dx in --main-dex-list. Change-Id: Id14bc785c6a888f6af49c018b2c29b89284ae40e
Diffstat (limited to 'dx/Android.mk')
-rw-r--r--dx/Android.mk59
1 files changed, 59 insertions, 0 deletions
diff --git a/dx/Android.mk b/dx/Android.mk
index edf8ca3b4..a69c785df 100644
--- a/dx/Android.mk
+++ b/dx/Android.mk
@@ -29,6 +29,65 @@ INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
endif # TARGET_BUILD_APPS
+# the mainDexClasses rules
+# ============================================================
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := mainDexClasses.rules
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(HOST_OUT_JAVA_LIBRARIES)/dx$(COMMON_JAVA_PACKAGE_SUFFIX)
+$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/etc/mainDexClasses.rules | $(ACP)
+ @echo "Copy: $(PRIVATE_MODULE) ($@)"
+ $(copy-file-to-new-target)
+
+INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
+
+installed_mainDexClasses.rules := $(LOCAL_INSTALLED_MODULE)
+
+# the shrinkedAndroid jar is a library used by the mainDexClasses script
+# ============================================================
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := shrinkedAndroid
+LOCAL_BUILT_MODULE_STEM := shrinkedAndroid.jar
+LOCAL_MODULE_SUFFIX := $(COMMON_JAVA_PACKAGE_SUFFIX)
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): PRIVATE_PROGUARD_FLAGS:= \
+ -include $(addprefix $(LOCAL_PATH)/, shrinkedAndroid.proguard.flags)
+$(LOCAL_BUILT_MODULE): $(call java-lib-files,android_stubs_current)| $(PROGUARD)
+ $(call proguard-enabled-commands,)
+
+INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
+
+installed_shrinkedAndroid := $(LOCAL_INSTALLED_MODULE)
+
+# the mainDexClasses script
+# ============================================================
+include $(CLEAR_VARS)
+LOCAL_IS_HOST_MODULE := true
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := mainDexClasses
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(HOST_OUT_JAVA_LIBRARIES)/dx$(COMMON_JAVA_PACKAGE_SUFFIX)
+$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/etc/mainDexClasses | $(ACP)
+ @echo "Copy: $(PRIVATE_MODULE) ($@)"
+ $(copy-file-to-new-target)
+ $(hide) chmod 755 $@
+
+$(LOCAL_INSTALLED_MODULE): | $(installed_shrinkedAndroid) $(installed_mainDexClasses.rules)
+INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
+
# the dexmerger script
# ============================================================
include $(CLEAR_VARS)