Loading CleanSpec.mk +3 −0 Original line number Diff line number Diff line Loading @@ -417,6 +417,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/vendor/lib*) # Soong module variant change, remove obsolete intermediates $(call add-clean-step, rm -rf $(OUT_DIR)/soong/.intermediates) # Version checking moving to Soong $(call add-clean-step, rm -rf $(OUT_DIR)/versions_checked.mk) # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ core/cleanbuild.mk +2 −56 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ # # Don't bother with the cleanspecs if you are running mm/mmm ifeq ($(ONE_SHOT_MAKEFILE)$(dont_bother),) ifeq ($(ONE_SHOT_MAKEFILE)$(dont_bother)$(NO_ANDROID_CLEANSPEC),) INTERNAL_CLEAN_STEPS := Loading Loading @@ -142,53 +142,7 @@ rewrite_clean_steps_file := INTERNAL_CLEAN_STEPS := INTERNAL_CLEAN_BUILD_VERSION := endif # if not ONE_SHOT_MAKEFILE dont_bother # Since products and build variants (unfortunately) share the same # PRODUCT_OUT staging directory, things can get out of sync if different # build configurations are built in the same tree. The following logic # will notice when the configuration has changed and remove the files # necessary to keep things consistent. previous_build_config_file := $(PRODUCT_OUT)/previous_build_config.mk current_build_config_file := $(PRODUCT_OUT)/current_build_config.mk current_build_config := \ $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) force_installclean := false # Read the current state from the file, if present. # Will set PREVIOUS_BUILD_CONFIG. # PREVIOUS_BUILD_CONFIG := -include $(previous_build_config_file) PREVIOUS_BUILD_CONFIG := $(strip $(PREVIOUS_BUILD_CONFIG)) ifdef PREVIOUS_BUILD_CONFIG ifneq ($(current_build_config),$(PREVIOUS_BUILD_CONFIG)) $(info *** Build configuration changed: "$(PREVIOUS_BUILD_CONFIG)" -> "$(current_build_config)") ifneq ($(DISABLE_AUTO_INSTALLCLEAN),true) force_installclean := true else $(info DISABLE_AUTO_INSTALLCLEAN is set; skipping auto-clean. Your tree may be in an inconsistent state.) endif endif endif # else, this is the first build, so no need to clean. # Write the new state to the file. # $(shell \ mkdir -p $(dir $(current_build_config_file)) && \ echo "PREVIOUS_BUILD_CONFIG := $(current_build_config)" > \ $(current_build_config_file) \ ) $(shell cmp $(current_build_config_file) $(previous_build_config_file) > /dev/null 2>&1 || \ mv -f $(current_build_config_file) $(previous_build_config_file)) PREVIOUS_BUILD_CONFIG := previous_build_config_file := current_build_config_file := current_build_config := endif # if not ONE_SHOT_MAKEFILE dont_bother NO_ANDROID_CLEANSPEC # # installclean logic Loading Loading @@ -272,14 +226,6 @@ installclean: dataclean $(hide) rm -rf $(FILES) @echo "Deleted images and staging directories." ifeq ($(force_installclean),true) $(info *** Forcing "make installclean"...) $(info *** rm -rf $(dataclean_files) $(installclean_files)) $(shell rm -rf $(dataclean_files) $(installclean_files)) $(info *** Done with the cleaning, now starting the real build.) endif force_installclean := ########################################################### .PHONY: clean-jack-files Loading core/config.mk +1 −1 Original line number Diff line number Diff line Loading @@ -847,7 +847,7 @@ endef # These goals don't need to collect and include Android.mks/CleanSpec.mks # in the source tree. dont_bother_goals := clean clobber dataclean installclean \ dont_bother_goals := dataclean installclean \ help out \ snod systemimage-nodeps \ stnod systemtarball-nodeps \ Loading core/main.mk +0 −148 Original line number Diff line number Diff line Loading @@ -88,146 +88,6 @@ include $(BUILD_SYSTEM)/cleanbuild.mk # Include the google-specific config -include vendor/google/build/config.mk VERSION_CHECK_SEQUENCE_NUMBER := 6 JAVA_NOT_REQUIRED_CHECKED := -include $(OUT_DIR)/versions_checked.mk ifneq ($(VERSION_CHECK_SEQUENCE_NUMBER)$(JAVA_NOT_REQUIRED),$(VERSIONS_CHECKED)$(JAVA_NOT_REQUIRED_CHECKED)) $(info Checking build tools versions...) # check for a case sensitive file system ifneq (a,$(shell mkdir -p $(OUT_DIR) ; \ echo a > $(OUT_DIR)/casecheck.txt; \ echo B > $(OUT_DIR)/CaseCheck.txt; \ cat $(OUT_DIR)/casecheck.txt)) $(warning ************************************************************) $(warning You are building on a case-insensitive filesystem.) $(warning Please move your source tree to a case-sensitive filesystem.) $(warning ************************************************************) $(error Case-insensitive filesystems not supported) endif # Make sure that there are no spaces in the absolute path; the # build system can't deal with them. ifneq ($(words $(shell pwd)),1) $(warning ************************************************************) $(warning You are building in a directory whose absolute path contains) $(warning a space character:) $(warning $(space)) $(warning "$(shell pwd)") $(warning $(space)) $(warning Please move your source tree to a path that does not contain) $(warning any spaces.) $(warning ************************************************************) $(error Directory names containing spaces not supported) endif ifneq ($(JAVA_NOT_REQUIRED),true) java_version_str := $(shell unset _JAVA_OPTIONS && java -version 2>&1) javac_version_str := $(shell unset _JAVA_OPTIONS && javac -version 2>&1) # Check for the correct version of java, should be 1.8 by # default and only 1.7 if LEGACY_USE_JAVA7 is set. ifeq ($(LEGACY_USE_JAVA7),) # if LEGACY_USE_JAVA7 == '' required_version := "1.8.x" required_javac_version := "1.8" java_version := $(shell echo '$(java_version_str)' | grep '[ "]1\.8[\. "$$]') javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.8[\. "$$]') else required_version := "1.7.x" required_javac_version := "1.7" java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.7[\. "$$]') javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.7[\. "$$]') endif # if LEGACY_USE_JAVA7 == '' ifeq ($(strip $(java_version)),) $(info ************************************************************) $(info You are attempting to build with the incorrect version) $(info of java.) $(info $(space)) $(info Your version is: $(java_version_str).) $(info The required version is: $(required_version)) $(info $(space)) $(info Please follow the machine setup instructions at) $(info $(space)$(space)$(space)$(space)https://source.android.com/source/initializing.html) $(info ************************************************************) $(error stop) endif # Check for the current JDK. # # For Java 1.7/1.8, we require OpenJDK on linux and Oracle JDK on Mac OS. requires_openjdk := false ifeq ($(BUILD_OS),linux) requires_openjdk := true endif # Check for the current jdk ifeq ($(requires_openjdk), true) # The user asked for openjdk, so check that the host # java version is really openjdk and not some other JDK. ifeq ($(shell echo '$(java_version_str)' | grep -i openjdk),) $(info ************************************************************) $(info You asked for an OpenJDK based build but your version is) $(info $(java_version_str).) $(info ************************************************************) $(error stop) endif # java version is not OpenJdk else # if requires_openjdk ifneq ($(shell echo '$(java_version_str)' | grep -i openjdk),) $(info ************************************************************) $(info You are attempting to build with an unsupported JDK.) $(info $(space)) $(info You use OpenJDK but only Sun/Oracle JDK is supported.) $(info Please follow the machine setup instructions at) $(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html) $(info ************************************************************) $(error stop) endif # java version is not Sun Oracle JDK endif # if requires_openjdk KNOWN_INCOMPATIBLE_JAVAC_VERSIONS := google incompat_javac := $(foreach v,$(KNOWN_INCOMPATIBLE_JAVAC_VERSIONS),$(findstring $(v),$(javac_version_str))) ifneq ($(incompat_javac),) javac_version := endif # Check for the correct version of javac ifeq ($(strip $(javac_version)),) $(info ************************************************************) $(info You are attempting to build with the incorrect version) $(info of javac.) $(info $(space)) $(info Your version is: $(javac_version_str).) ifneq ($(incompat_javac),) $(info This '$(incompat_javac)' version is not supported for Android platform builds.) $(info Use a publicly available JDK and make sure you have run envsetup.sh / lunch.) else $(info The required version is: $(required_javac_version)) endif $(info $(space)) $(info Please follow the machine setup instructions at) $(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html) $(info ************************************************************) $(error stop) endif endif # if JAVA_NOT_REQUIRED ifndef BUILD_EMULATOR # Emulator binaries are now provided under prebuilts/android-emulator/ BUILD_EMULATOR := false endif $(shell echo 'VERSIONS_CHECKED := $(VERSION_CHECK_SEQUENCE_NUMBER)' \ > $(OUT_DIR)/versions_checked.mk) $(shell echo 'BUILD_EMULATOR ?= $(BUILD_EMULATOR)' \ >> $(OUT_DIR)/versions_checked.mk) $(shell echo 'JAVA_NOT_REQUIRED_CHECKED := $(JAVA_NOT_REQUIRED)' \ >> $(OUT_DIR)/versions_checked.mk) 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) Loading Loading @@ -1270,14 +1130,6 @@ endif # samplecode in $(MAKECMDGOALS) .PHONY: findbugs findbugs: $(INTERNAL_FINDBUGS_HTML_TARGET) $(INTERNAL_FINDBUGS_XML_TARGET) .PHONY: clean clean: @rm -rf $(OUT_DIR)/* @echo "Entire build directory removed." .PHONY: clobber clobber: clean # The rules for dataclean and installclean are defined in cleanbuild.mk. #xxx scrape this from ALL_MODULE_NAME_TAGS Loading Loading
CleanSpec.mk +3 −0 Original line number Diff line number Diff line Loading @@ -417,6 +417,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/vendor/lib*) # Soong module variant change, remove obsolete intermediates $(call add-clean-step, rm -rf $(OUT_DIR)/soong/.intermediates) # Version checking moving to Soong $(call add-clean-step, rm -rf $(OUT_DIR)/versions_checked.mk) # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************
core/cleanbuild.mk +2 −56 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ # # Don't bother with the cleanspecs if you are running mm/mmm ifeq ($(ONE_SHOT_MAKEFILE)$(dont_bother),) ifeq ($(ONE_SHOT_MAKEFILE)$(dont_bother)$(NO_ANDROID_CLEANSPEC),) INTERNAL_CLEAN_STEPS := Loading Loading @@ -142,53 +142,7 @@ rewrite_clean_steps_file := INTERNAL_CLEAN_STEPS := INTERNAL_CLEAN_BUILD_VERSION := endif # if not ONE_SHOT_MAKEFILE dont_bother # Since products and build variants (unfortunately) share the same # PRODUCT_OUT staging directory, things can get out of sync if different # build configurations are built in the same tree. The following logic # will notice when the configuration has changed and remove the files # necessary to keep things consistent. previous_build_config_file := $(PRODUCT_OUT)/previous_build_config.mk current_build_config_file := $(PRODUCT_OUT)/current_build_config.mk current_build_config := \ $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) force_installclean := false # Read the current state from the file, if present. # Will set PREVIOUS_BUILD_CONFIG. # PREVIOUS_BUILD_CONFIG := -include $(previous_build_config_file) PREVIOUS_BUILD_CONFIG := $(strip $(PREVIOUS_BUILD_CONFIG)) ifdef PREVIOUS_BUILD_CONFIG ifneq ($(current_build_config),$(PREVIOUS_BUILD_CONFIG)) $(info *** Build configuration changed: "$(PREVIOUS_BUILD_CONFIG)" -> "$(current_build_config)") ifneq ($(DISABLE_AUTO_INSTALLCLEAN),true) force_installclean := true else $(info DISABLE_AUTO_INSTALLCLEAN is set; skipping auto-clean. Your tree may be in an inconsistent state.) endif endif endif # else, this is the first build, so no need to clean. # Write the new state to the file. # $(shell \ mkdir -p $(dir $(current_build_config_file)) && \ echo "PREVIOUS_BUILD_CONFIG := $(current_build_config)" > \ $(current_build_config_file) \ ) $(shell cmp $(current_build_config_file) $(previous_build_config_file) > /dev/null 2>&1 || \ mv -f $(current_build_config_file) $(previous_build_config_file)) PREVIOUS_BUILD_CONFIG := previous_build_config_file := current_build_config_file := current_build_config := endif # if not ONE_SHOT_MAKEFILE dont_bother NO_ANDROID_CLEANSPEC # # installclean logic Loading Loading @@ -272,14 +226,6 @@ installclean: dataclean $(hide) rm -rf $(FILES) @echo "Deleted images and staging directories." ifeq ($(force_installclean),true) $(info *** Forcing "make installclean"...) $(info *** rm -rf $(dataclean_files) $(installclean_files)) $(shell rm -rf $(dataclean_files) $(installclean_files)) $(info *** Done with the cleaning, now starting the real build.) endif force_installclean := ########################################################### .PHONY: clean-jack-files Loading
core/config.mk +1 −1 Original line number Diff line number Diff line Loading @@ -847,7 +847,7 @@ endef # These goals don't need to collect and include Android.mks/CleanSpec.mks # in the source tree. dont_bother_goals := clean clobber dataclean installclean \ dont_bother_goals := dataclean installclean \ help out \ snod systemimage-nodeps \ stnod systemtarball-nodeps \ Loading
core/main.mk +0 −148 Original line number Diff line number Diff line Loading @@ -88,146 +88,6 @@ include $(BUILD_SYSTEM)/cleanbuild.mk # Include the google-specific config -include vendor/google/build/config.mk VERSION_CHECK_SEQUENCE_NUMBER := 6 JAVA_NOT_REQUIRED_CHECKED := -include $(OUT_DIR)/versions_checked.mk ifneq ($(VERSION_CHECK_SEQUENCE_NUMBER)$(JAVA_NOT_REQUIRED),$(VERSIONS_CHECKED)$(JAVA_NOT_REQUIRED_CHECKED)) $(info Checking build tools versions...) # check for a case sensitive file system ifneq (a,$(shell mkdir -p $(OUT_DIR) ; \ echo a > $(OUT_DIR)/casecheck.txt; \ echo B > $(OUT_DIR)/CaseCheck.txt; \ cat $(OUT_DIR)/casecheck.txt)) $(warning ************************************************************) $(warning You are building on a case-insensitive filesystem.) $(warning Please move your source tree to a case-sensitive filesystem.) $(warning ************************************************************) $(error Case-insensitive filesystems not supported) endif # Make sure that there are no spaces in the absolute path; the # build system can't deal with them. ifneq ($(words $(shell pwd)),1) $(warning ************************************************************) $(warning You are building in a directory whose absolute path contains) $(warning a space character:) $(warning $(space)) $(warning "$(shell pwd)") $(warning $(space)) $(warning Please move your source tree to a path that does not contain) $(warning any spaces.) $(warning ************************************************************) $(error Directory names containing spaces not supported) endif ifneq ($(JAVA_NOT_REQUIRED),true) java_version_str := $(shell unset _JAVA_OPTIONS && java -version 2>&1) javac_version_str := $(shell unset _JAVA_OPTIONS && javac -version 2>&1) # Check for the correct version of java, should be 1.8 by # default and only 1.7 if LEGACY_USE_JAVA7 is set. ifeq ($(LEGACY_USE_JAVA7),) # if LEGACY_USE_JAVA7 == '' required_version := "1.8.x" required_javac_version := "1.8" java_version := $(shell echo '$(java_version_str)' | grep '[ "]1\.8[\. "$$]') javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.8[\. "$$]') else required_version := "1.7.x" required_javac_version := "1.7" java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.7[\. "$$]') javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.7[\. "$$]') endif # if LEGACY_USE_JAVA7 == '' ifeq ($(strip $(java_version)),) $(info ************************************************************) $(info You are attempting to build with the incorrect version) $(info of java.) $(info $(space)) $(info Your version is: $(java_version_str).) $(info The required version is: $(required_version)) $(info $(space)) $(info Please follow the machine setup instructions at) $(info $(space)$(space)$(space)$(space)https://source.android.com/source/initializing.html) $(info ************************************************************) $(error stop) endif # Check for the current JDK. # # For Java 1.7/1.8, we require OpenJDK on linux and Oracle JDK on Mac OS. requires_openjdk := false ifeq ($(BUILD_OS),linux) requires_openjdk := true endif # Check for the current jdk ifeq ($(requires_openjdk), true) # The user asked for openjdk, so check that the host # java version is really openjdk and not some other JDK. ifeq ($(shell echo '$(java_version_str)' | grep -i openjdk),) $(info ************************************************************) $(info You asked for an OpenJDK based build but your version is) $(info $(java_version_str).) $(info ************************************************************) $(error stop) endif # java version is not OpenJdk else # if requires_openjdk ifneq ($(shell echo '$(java_version_str)' | grep -i openjdk),) $(info ************************************************************) $(info You are attempting to build with an unsupported JDK.) $(info $(space)) $(info You use OpenJDK but only Sun/Oracle JDK is supported.) $(info Please follow the machine setup instructions at) $(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html) $(info ************************************************************) $(error stop) endif # java version is not Sun Oracle JDK endif # if requires_openjdk KNOWN_INCOMPATIBLE_JAVAC_VERSIONS := google incompat_javac := $(foreach v,$(KNOWN_INCOMPATIBLE_JAVAC_VERSIONS),$(findstring $(v),$(javac_version_str))) ifneq ($(incompat_javac),) javac_version := endif # Check for the correct version of javac ifeq ($(strip $(javac_version)),) $(info ************************************************************) $(info You are attempting to build with the incorrect version) $(info of javac.) $(info $(space)) $(info Your version is: $(javac_version_str).) ifneq ($(incompat_javac),) $(info This '$(incompat_javac)' version is not supported for Android platform builds.) $(info Use a publicly available JDK and make sure you have run envsetup.sh / lunch.) else $(info The required version is: $(required_javac_version)) endif $(info $(space)) $(info Please follow the machine setup instructions at) $(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html) $(info ************************************************************) $(error stop) endif endif # if JAVA_NOT_REQUIRED ifndef BUILD_EMULATOR # Emulator binaries are now provided under prebuilts/android-emulator/ BUILD_EMULATOR := false endif $(shell echo 'VERSIONS_CHECKED := $(VERSION_CHECK_SEQUENCE_NUMBER)' \ > $(OUT_DIR)/versions_checked.mk) $(shell echo 'BUILD_EMULATOR ?= $(BUILD_EMULATOR)' \ >> $(OUT_DIR)/versions_checked.mk) $(shell echo 'JAVA_NOT_REQUIRED_CHECKED := $(JAVA_NOT_REQUIRED)' \ >> $(OUT_DIR)/versions_checked.mk) 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) Loading Loading @@ -1270,14 +1130,6 @@ endif # samplecode in $(MAKECMDGOALS) .PHONY: findbugs findbugs: $(INTERNAL_FINDBUGS_HTML_TARGET) $(INTERNAL_FINDBUGS_XML_TARGET) .PHONY: clean clean: @rm -rf $(OUT_DIR)/* @echo "Entire build directory removed." .PHONY: clobber clobber: clean # The rules for dataclean and installclean are defined in cleanbuild.mk. #xxx scrape this from ALL_MODULE_NAME_TAGS Loading