From 7240549748fd4e4879009524a6d01a4c26294568 Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Thu, 11 Oct 2012 11:53:04 -0700 Subject: Convert to relative path for CleanSpec.mk When using mm, which passes in absolute path, while in full build relative paths are used to encode clean steps. Change-Id: I3e39ce3125194589f9a464f27eef4a9c96fa06c1 --- core/cleanspec.mk | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/core/cleanspec.mk b/core/cleanspec.mk index a3eb7cd..444ff98 100644 --- a/core/cleanspec.mk +++ b/core/cleanspec.mk @@ -63,8 +63,27 @@ 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 := $(dir $(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 -- cgit v1.1