Don't run cleanspecs if you are using mm/mmm.

There is lurky bug in the previous logic I believe:
in rare cases, people saw almost all cleansteps rerun.
Anyway, it's very rare that you need to run cleansteps when you run mm/mmm.

Change-Id: I42e84b3bf01590712ba1b167fe9a500f4ae1ddde
This commit is contained in:
Ying Wang 2013-02-22 18:15:29 -08:00
parent e84420c3e4
commit 50e52fa11e
3 changed files with 7 additions and 34 deletions

View file

@ -13,6 +13,9 @@
# limitations under the License.
#
# Don't bother with the cleanspecs if you are running mm/mmm
ifndef ONE_SHOT_MAKEFILE
INTERNAL_CLEAN_STEPS :=
# Builds up a list of clean steps. Creates a unique
@ -78,18 +81,13 @@ else
$(info Clean step: $(INTERNAL_CLEAN_STEP.$(step))) \
$(shell $(INTERNAL_CLEAN_STEP.$(step))) \
)
# If we are running mm/mmm, we should copy over the other clean steps too.
ifneq ($(ONE_SHOT_MAKEFILE),)
INTERNAL_CLEAN_STEPS := $(strip $(CURRENT_CLEAN_STEPS) $(steps))
endif
steps :=
endif
CURRENT_CLEAN_BUILD_VERSION :=
CURRENT_CLEAN_STEPS :=
# Write the new state to the file.
# Don't write the file if we are running mm/mmm but without a preexisting clean_steps_file.
ifneq (,$(wildcard $(clean_steps_file))$(filter ||,|$(ONE_SHOT_MAKEFILE)|))
#
$(shell \
mkdir -p $(dir $(clean_steps_file)) && \
echo "CURRENT_CLEAN_BUILD_VERSION := $(INTERNAL_CLEAN_BUILD_VERSION)" > \
@ -97,12 +95,12 @@ $(shell \
echo "CURRENT_CLEAN_STEPS := $(INTERNAL_CLEAN_STEPS)" >> \
$(clean_steps_file) \
)
endif
clean_steps_file :=
INTERNAL_CLEAN_STEPS :=
INTERNAL_CLEAN_BUILD_VERSION :=
endif # ifndef ONE_SHOT_MAKEFILE
# Since products and build variants (unfortunately) share the same
# PRODUCT_OUT staging directory, things can get out of sync if different

View file

@ -63,32 +63,7 @@ INTERNAL_CLEAN_BUILD_VERSION := 6
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
# Get the path of the top of the tree.
# for example:
# /home/bob/master/framework/base => /home/bob/master
# See function gettop in build/envsetup.sh.
define get-top-dir
$(if $(1),$(if $(wildcard $(1)/build/core/envsetup.mk),$(1),$(strip \
$(call get-top-dir,$(patsubst %/,%,$(dir $(1)))))))
endef
ifneq ($(ONE_SHOT_MAKEFILE),)
cs_subdirs := $(patsubst %/,%,$(dir $(ONE_SHOT_MAKEFILE)))
abs_cs_subdirs := $(filter /%,$(cs_subdirs))
ifneq ($(abs_cs_subdirs),)
# Convert absolute path to relative path, e.g. when using mm.
abs_top_path := $(call get-top-dir,$(word 1,$(abs_cs_subdirs)))
cs_subdirs := $(filter-out /%,$(cs_subdirs)) \
$(patsubst $(abs_top_path)/%,%,$(abs_cs_subdirs))
abs_top_path :=
abs_cs_subdirs :=
endif
else
cs_subdirs := .
endif
subdir_cleanspecs := \
$(shell build/tools/findleaves.py --prune=out --prune=.repo --prune=.git $(cs_subdirs) CleanSpec.mk)
$(shell build/tools/findleaves.py --prune=out --prune=.repo --prune=.git . CleanSpec.mk)
include $(subdir_cleanspecs)
cs_subdirs :=
subdir_cleanspecs :=

View file

@ -78,7 +78,7 @@ include $(BUILD_SYSTEM)/help.mk
# and host information.
include $(BUILD_SYSTEM)/config.mk
# This allows us to force a clean build - included after the config.make
# This allows us to force a clean build - included after the config.mk
# environment setup is done, but before we generate any dependencies. This
# file does the rm -rf inline so the deps which are all done below will
# be generated correctly