summaryrefslogtreecommitdiffstats
path: root/core/java.mk
diff options
context:
space:
mode:
Diffstat (limited to 'core/java.mk')
-rw-r--r--core/java.mk27
1 files changed, 22 insertions, 5 deletions
diff --git a/core/java.mk b/core/java.mk
index a391ccb..25baf41 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -33,8 +33,8 @@ LOCAL_BUILT_MODULE_STEM := $(strip $(LOCAL_BUILT_MODULE_STEM))
ifeq ($(LOCAL_BUILT_MODULE_STEM),)
$(error $(LOCAL_PATH): Target java template must define LOCAL_BUILT_MODULE_STEM)
endif
-ifeq ($(LOCAL_BUILT_MODULE_STEM),classes.jar)
-$(error LOCAL_BUILT_MODULE_STEM may not be "classes.jar")
+ifneq ($(filter classes-compiled.jar classes.jar,$(LOCAL_BUILT_MODULE_STEM)),)
+$(error LOCAL_BUILT_MODULE_STEM may not be "$(LOCAL_BUILT_MODULE_STEM)")
endif
#######################################
@@ -64,14 +64,31 @@ ifneq (,$(strip $(all_java_sources)))
# Otherwise, the caller will define it as a prerequisite of
# LOCAL_BUILT_MODULE, so it will inherit the necessary PRIVATE_*
# variable definitions.
-#
+full_classes_jar := $(intermediates.COMMON)/classes.jar
+
+# Compile the java files to a .jar file.
# This intentionally depends on java_sources, not all_java_sources.
# Deps for generated source files must be handled separately,
# via deps on the target that generates the sources.
-full_classes_jar := $(intermediates.COMMON)/classes.jar
-$(full_classes_jar): $(java_sources) $(full_java_lib_deps)
+full_classes_compiled_jar := $(intermediates.COMMON)/classes-compiled.jar
+$(full_classes_compiled_jar): $(java_sources) $(full_java_lib_deps)
$(transform-java-to-classes.jar)
+# Run jarjar if necessary, otherwise just copy the file. This is the last
+# part of this step, so the output of this command is full_classes_jar.
+full_classes_jarjar_jar := $(full_classes_jar)
+ifneq ($(strip $(LOCAL_JARJAR_RULES)),)
+$(full_classes_jarjar_jar): PRIVATE_JARJAR_RULES := $(LOCAL_JARJAR_RULES)
+$(full_classes_jarjar_jar): $(full_classes_compiled_jar) | jarjar
+ @echo JarJar: $@
+ $(hide) $(JARJAR) process $(PRIVATE_JARJAR_RULES) $< $@
+else
+$(full_classes_jarjar_jar): $(full_classes_compiled_jar) | $(ACP)
+ @echo Copying: $@
+ $(hide) $(ACP) $< $@
+endif
+
+
built_dex := $(intermediates.COMMON)/classes.dex
# Override PRIVATE_INTERMEDIATES_DIR so that install-dex-debug