summaryrefslogtreecommitdiffstats
path: root/jack/Android.mk
diff options
context:
space:
mode:
authorYohann Roussel <yroussel@google.com>2014-12-03 18:10:47 +0100
committerYohann Roussel <yroussel@google.com>2015-03-17 11:03:45 +0100
commit8acc0b3d08d804657767d1d6a25087de47e8fd5d (patch)
treee3281aeaff36ee883ed405cacd8a4ca69f23519b /jack/Android.mk
parent1e5b39e54602d3eada5c51230bbc11a75d4495e0 (diff)
downloadtoolchain_jack-8acc0b3d08d804657767d1d6a25087de47e8fd5d.zip
toolchain_jack-8acc0b3d08d804657767d1d6a25087de47e8fd5d.tar.gz
toolchain_jack-8acc0b3d08d804657767d1d6a25087de47e8fd5d.tar.bz2
Load default libraries from jack.jar
For now the only default library contains the jack annotations. The default libraries can be ignored by "--no-default-libraries". Bug: 17803510 Change-Id: I0eb0c1a535e1d4ff808c744ba7c1924e4dd4aee6
Diffstat (limited to 'jack/Android.mk')
-rw-r--r--jack/Android.mk39
1 files changed, 37 insertions, 2 deletions
diff --git a/jack/Android.mk b/jack/Android.mk
index dfabcc0..5e3a9fd 100644
--- a/jack/Android.mk
+++ b/jack/Android.mk
@@ -109,10 +109,45 @@ LOCAL_JAVA_LIBRARIES := \
include $(BUILD_HOST_JAVA_LIBRARY)
$(LOCAL_INSTALLED_MODULE) : $(jack_script)
-# overwrite install rule, using LOCAL_POST_INSTALL_CMD may cause the installed jar to be used before the post install command is completed
-$(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE)
+JACK_JAR_INTERMEDIATE:=$(LOCAL_BUILT_MODULE).intermediate.jar
+$(JACK_JAR_INTERMEDIATE): $(LOCAL_BUILT_MODULE)
java -jar $(call java-lib-libs,sched-build,true) $< $(call java-lib-libs,$(JACK_STATIC_JAVA_LIBRARIES),true) $@
+JACK_CORE_STUBS_MINI := $(LOCAL_BUILT_MODULE).core-stub-mini.jack
+JACK_CORE_STUBS_MINI_SRC := $(addprefix $(TOP_DIR)$(LOCAL_PATH)/,$(call all-java-files-under, ../core-stubs-mini/src))
+
+JACK_DEFAULT_LIB := $(LOCAL_BUILT_MODULE).defaultlib.jack
+JACK_DEFAULT_LIB_SRC :=$(addprefix $(TOP_DIR)$(LOCAL_PATH)/,$(call all-java-files-under, src/com/android/jack/annotations))
+$(JACK_CORE_STUBS_MINI) $(JACK_DEFAULT_LIB): PRIVATE_JACK_VM_ARGS := $(DEFAULT_JACK_VM_ARGS)
+ifneq ($(ANDROID_JACK_VM_ARGS),)
+$(JACK_CORE_STUBS_MINI) $(JACK_DEFAULT_LIB): PRIVATE_JACK_VM_ARGS := $(ANDROID_JACK_VM_ARGS)
+endif
+$(JACK_CORE_STUBS_MINI) $(JACK_DEFAULT_LIB): PRIVATE_JACK_EXTRA_ARGS := $(DEFAULT_JACK_EXTRA_ARGS)
+ifneq ($(ANDROID_JACK_EXTRA_ARGS),)
+$(JACK_CORE_STUBS_MINI) $(JACK_DEFAULT_LIB): PRIVATE_JACK_EXTRA_ARGS := $(ANDROID_JACK_EXTRA_ARGS)
+endif
+$(JACK_CORE_STUBS_MINI) $(JACK_DEFAULT_LIB): PRIVATE_JACK_VM := $(DEFAULT_JACK_VM)
+ifneq ($(strip $(ANDROID_JACK_VM)),)
+$(JACK_CORE_STUBS_MINI) $(JACK_DEFAULT_LIB): PRIVATE_JACK_VM := $(ANDROID_JACK_VM)
+endif
+
+$(JACK_CORE_STUBS_MINI): $(JACK_CORE_STUBS_MINI_SRC) $(JACK_JAR_INTERMEDIATE)
+ $(PRIVATE_JACK_VM) $(PRIVATE_JACK_VM_ARGS) -cp $(JACK_JAR_INTERMEDIATE) com.android.jack.Main $(PRIVATE_JACK_EXTRA_ARGS) \
+ -D jack.classpath.default-libraries=false --output-jack $(JACK_CORE_STUBS_MINI) $(JACK_CORE_STUBS_MINI_SRC)
+
+$(JACK_DEFAULT_LIB): $(JACK_DEFAULT_LIB_SRC) $(JACK_CORE_STUBS_MINI) $(JACK_JAR_INTERMEDIATE)
+ $(PRIVATE_JACK_VM) $(PRIVATE_JACK_VM_ARGS) -cp $(JACK_JAR_INTERMEDIATE) com.android.jack.Main $(PRIVATE_JACK_EXTRA_ARGS) \
+ --classpath $(JACK_CORE_STUBS_MINI) -D jack.classpath.default-libraries=false --output-jack $(JACK_DEFAULT_LIB) $(JACK_DEFAULT_LIB_SRC)
+
+# overwrite install rule, using LOCAL_POST_INSTALL_CMD may cause the installed jar to be used before the post install command is completed
+$(LOCAL_INSTALLED_MODULE): PRIVATE_JAR_MANIFEST := $(LOCAL_PATH)/$(LOCAL_JAR_MANIFEST)
+$(LOCAL_INSTALLED_MODULE): $(JACK_JAR_INTERMEDIATE) $(JACK_DEFAULT_LIB)
+ $(hide) rm -rf $<.tmp
+ $(hide) mkdir -p $<.tmp/jack-default-lib
+ $(hide) unzip -d $<.tmp $<
+ $(hide) unzip -d $<.tmp/jack-default-lib $(JACK_DEFAULT_LIB)
+ $(hide) jar -cfm $@ $(PRIVATE_JAR_MANIFEST) -C $<.tmp .
+
# Merge with sched lib support
$(LOCAL_BUILT_MODULE): $(call java-lib-libs,sched-build,true)