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
This commit is contained in:
Ying Wang 2012-10-11 11:53:04 -07:00
parent fd671b2d5f
commit 7240549748
1 changed files with 20 additions and 1 deletions

View File

@ -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