diff --git a/core/definitions.mk b/core/definitions.mk index fc18ee368d..36f2026d4b 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) 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 \ +$(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 ); \ $(1) -encoding UTF-8 \ $(strip $(PRIVATE_JAVAC_DEBUG_FLAGS)) \ $(if $(findstring true,$(PRIVATE_WARNINGS_ENABLE)),$(xlint_unchecked),) \ @@ -1815,8 +1815,10 @@ $(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) tr ' ' '\n' < $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list \ - | sort -u > $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq +$(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 $(if $(PRIVATE_JACK_PROGUARD_FLAGS), \ $(hide) echo -basedirectory $(CURDIR) > $@.flags; \ echo $(PRIVATE_JACK_PROGUARD_FLAGS) >> $@.flags; \ @@ -1893,8 +1895,10 @@ $(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) tr ' ' '\n' < $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list \ - | sort -u > $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq +$(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 $(if $(PRIVATE_JACK_PROGUARD_FLAGS), \ $(hide) echo -basedirectory $(CURDIR) > $@.flags; \ echo $(PRIVATE_JACK_PROGUARD_FLAGS) >> $@.flags; \ @@ -1936,69 +1940,6 @@ $(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) \ diff --git a/core/main.mk b/core/main.mk index 3bf9cae771..e04c4c71a6 100644 --- a/core/main.mk +++ b/core/main.mk @@ -234,23 +234,7 @@ endif # These are the modifier targets that don't do anything themselves, but # change the behavior of the build. # (must be defined before including definitions.make) -INTERNAL_MODIFIER_TARGETS := showcommands all incrementaljavac - -.PHONY: incrementaljavac -incrementaljavac: ; - -# WARNING: -# ENABLE_INCREMENTALJAVAC should NOT be enabled by default, because change of -# a Java source file won't trigger rebuild of its dependent Java files. -# You can only enable it by adding "incrementaljavac" to your make command line. -# You are responsible for the correctness of the incremental build. -# This may decrease incremental build time dramatically for large Java libraries, -# such as core.jar, framework.jar, etc. -ENABLE_INCREMENTALJAVAC := -ifneq (,$(filter incrementaljavac, $(MAKECMDGOALS))) -ENABLE_INCREMENTALJAVAC := true -MAKECMDGOALS := $(filter-out incrementaljavac, $(MAKECMDGOALS)) -endif +INTERNAL_MODIFIER_TARGETS := showcommands all # EMMA_INSTRUMENT_STATIC merges the static emma library to each emma-enabled module. ifeq (true,$(EMMA_INSTRUMENT_STATIC))