diff options
Diffstat (limited to 'core/definitions.mk')
-rw-r--r-- | core/definitions.mk | 81 |
1 files changed, 70 insertions, 11 deletions
diff --git a/core/definitions.mk b/core/definitions.mk index 36f2026..fc18ee3 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1750,9 +1750,9 @@ $(call dump-words-to-file,$(PRIVATE_JAVA_SOURCES),$(PRIVATE_CLASS_INTERMEDIATES_ $(hide) if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \ find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' >> $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list; \ fi -$(hide) if [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list ] ; then \ - ( tr ' ' '\n' < $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list \ - | sort -u > $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq ); \ +$(hide) tr ' ' '\n' < $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list \ + | sort -u > $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq +$(hide) if [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq ] ; then \ $(1) -encoding UTF-8 \ $(strip $(PRIVATE_JAVAC_DEBUG_FLAGS)) \ $(if $(findstring true,$(PRIVATE_WARNINGS_ENABLE)),$(xlint_unchecked),) \ @@ -1815,10 +1815,8 @@ $(call dump-words-to-file,$(PRIVATE_JAVA_SOURCES),$(PRIVATE_JACK_INTERMEDIATES_D $(hide) if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \ find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' >> $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list; \ fi -$(hide) if [ -s $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list ] ; then \ - tr ' ' '\n' < $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list \ - | sort -u > $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq; \ -fi +$(hide) tr ' ' '\n' < $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list \ + | sort -u > $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq $(if $(PRIVATE_JACK_PROGUARD_FLAGS), \ $(hide) echo -basedirectory $(CURDIR) > $@.flags; \ echo $(PRIVATE_JACK_PROGUARD_FLAGS) >> $@.flags; \ @@ -1895,10 +1893,8 @@ $(call dump-words-to-file,$(PRIVATE_JAVA_SOURCES),$(PRIVATE_JACK_INTERMEDIATES_D $(hide) if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \ find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' >> $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list; \ fi -$(hide) if [ -s $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list ] ; then \ - tr ' ' '\n' < $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list \ - | sort -u > $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq; \ -fi +$(hide) tr ' ' '\n' < $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list \ + | sort -u > $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq $(if $(PRIVATE_JACK_PROGUARD_FLAGS), \ $(hide) echo -basedirectory $(CURDIR) > $@.flags; \ echo $(PRIVATE_JACK_PROGUARD_FLAGS) >> $@.flags; \ @@ -1940,6 +1936,69 @@ $(if $(PRIVATE_JAR_EXCLUDE_PACKAGES), $(hide) echo unsupported options JAR_EXCLU $(if $(PRIVATE_JAR_MANIFEST), $(hide) echo unsupported options JAR_MANIFEST in $@; exit 53) endef +# Override the above definitions if we want to do incremetal javac +ifeq (true, $(ENABLE_INCREMENTALJAVAC)) +define compile-java +$(hide) mkdir -p $(dir $@) +$(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR) +$(hide) touch $(PRIVATE_CLASS_INTERMEDIATES_DIR)/newstamp +$(call unzip-jar-files,$(PRIVATE_STATIC_JAVA_LIBRARIES),$(PRIVATE_CLASS_INTERMEDIATES_DIR)) +$(hide) if [ -e $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stamp ] ; then \ + newerFlag=$$(echo -n "-newer $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stamp") ; \ + fi ; \ + find $(PRIVATE_JAVA_SOURCES) $$newerFlag > $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list ; \ + if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \ + find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' $$newerFlag >> $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list; \ + fi +$(hide) tr ' ' '\n' < $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list \ + | sort -u > $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq +@echo "(Incremental) build source files:" +@cat $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq +$(hide) if [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq ] ; then \ + $(1) -encoding UTF-8 \ + $(strip $(PRIVATE_JAVAC_DEBUG_FLAGS)) \ + $(if $(findstring true,$(PRIVATE_WARNINGS_ENABLE)),$(xlint_unchecked),) \ + $(2) \ + $(addprefix -classpath ,$(strip \ + $(call normalize-path-list,$(PRIVATE_ALL_JAVA_LIBRARIES) $(PRIVATE_CLASS_INTERMEDIATES_DIR)))) \ + $(if $(findstring true,$(PRIVATE_WARNINGS_ENABLE)),$(xlint_unchecked),) \ + -extdirs "" -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) \ + $(PRIVATE_JAVACFLAGS) \ + \@$(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq \ + || ( exit 41 ) \ +fi +$(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list +$(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq +$(hide) rm -f $@ +$(if $(PRIVATE_JAR_EXCLUDE_FILES), $(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DIR) \ + -name $(word 1, $(PRIVATE_JAR_EXCLUDE_FILES)) \ + $(addprefix -o -name , $(wordlist 2, 999, $(PRIVATE_JAR_EXCLUDE_FILES))) \ + | xargs rm -rf) +$(if $(PRIVATE_JAR_PACKAGES), \ + $(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -mindepth 1 -type f \ + $(foreach pkg, $(PRIVATE_JAR_PACKAGES), \ + -not -path $(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))/\*) -delete ; \ + find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -empty -delete) +$(if $(PRIVATE_JAR_EXCLUDE_PACKAGES), $(hide) rm -rf \ + $(foreach pkg, $(PRIVATE_JAR_EXCLUDE_PACKAGES), \ + $(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg)))) +$(if $(PRIVATE_RMTYPEDEFS), $(hide) $(RMTYPEDEFS) -v $(PRIVATE_CLASS_INTERMEDIATES_DIR)) +$(if $(PRIVATE_JAR_MANIFEST), \ + $(hide) sed -e 's/%BUILD_NUMBER%/$(BUILD_NUMBER)/' \ + $(PRIVATE_JAR_MANIFEST) > $(dir $@)/manifest.mf && \ + jar -cfm $@ $(dir $@)/manifest.mf \ + -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) ., \ + $(hide) jar -cf $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .) +$(if $(PRIVATE_EXTRA_JAR_ARGS),$(call add-java-resources-to,$@)) +$(hide) mv $(PRIVATE_CLASS_INTERMEDIATES_DIR)/newstamp $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stamp +endef + +define transform-java-to-classes.jar +@echo "target Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" +$(call compile-java,$(TARGET_JAVAC),$(PRIVATE_BOOTCLASSPATH)) +endef +endif # ENABLE_INCREMENTALJAVAC + define transform-classes.jar-to-emma $(hide) java -classpath $(EMMA_JAR) emma instr -outmode fullcopy -outfile \ $(PRIVATE_EMMA_COVERAGE_FILE) -ip $< -d $(PRIVATE_EMMA_INTERMEDIATES_DIR) \ |