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
diff --git a/core/cleanbuild.mk b/core/cleanbuild.mk
index b6b95af..63cbf63 100644
--- a/core/cleanbuild.mk
+++ b/core/cleanbuild.mk
@@ -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 @@
     $(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 @@
   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
diff --git a/core/cleanspec.mk b/core/cleanspec.mk
index 444ff98..d4a8eed 100644
--- a/core/cleanspec.mk
+++ b/core/cleanspec.mk
@@ -63,32 +63,7 @@
 # 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 :=
diff --git a/core/main.mk b/core/main.mk
index e176487..0f75102 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -78,7 +78,7 @@
 # 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