diff options
author | Ying Wang <wangying@android.com> | 2015-10-28 23:51:57 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-10-28 23:51:57 +0000 |
commit | aabff90bfe2312a95d3cf57564845fef8dc469a2 (patch) | |
tree | 4ae96fc8323b274c3a79aa84a6536a81ffb86183 | |
parent | dda5e96b144c15a75d625ceac7e92b50cf9c363a (diff) | |
parent | a17426104219f3c06244f92d73b6c938949d0fe3 (diff) | |
download | build-aabff90bfe2312a95d3cf57564845fef8dc469a2.tar.gz |
Merge "Normalize the product makefile path in inherit-product."
-rw-r--r-- | core/config.mk | 12 | ||||
-rw-r--r-- | core/product.mk | 7 | ||||
-rwxr-xr-x | tools/normalize_path.py | 7 |
3 files changed, 21 insertions, 5 deletions
diff --git a/core/config.mk b/core/config.mk index 680a16906f..10c66f50cd 100644 --- a/core/config.mk +++ b/core/config.mk @@ -113,6 +113,16 @@ BUILD_HOST_DALVIK_STATIC_JAVA_LIBRARY := $(BUILD_SYSTEM)/host_dalvik_static_java SHOW_COMMANDS:= $(filter showcommands,$(MAKECMDGOALS)) hide := $(if $(SHOW_COMMANDS),,@) +################################################################ +# Tools needed in product configuration makefiles. +################################################################ +NORMALIZE_PATH := build/tools/normalize_path.py + +# $(1): the paths to be normalized +define normalize-paths +$(if $(1),$(shell $(NORMALIZE_PATH) $(1))) +endef + # ############################################################### # Set common values # ############################################################### @@ -550,8 +560,6 @@ else MD5SUM:=md5sum endif -NORMALIZE_PATH := build/tools/normalize_path.py - APICHECK_CLASSPATH := $(HOST_JDK_TOOLS_JAR) APICHECK_CLASSPATH := $(APICHECK_CLASSPATH):$(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX) APICHECK_CLASSPATH := $(APICHECK_CLASSPATH):$(HOST_OUT_JAVA_LIBRARIES)/jsilver$(COMMON_JAVA_PACKAGE_SUFFIX) diff --git a/core/product.mk b/core/product.mk index f242e829d0..a9af325541 100644 --- a/core/product.mk +++ b/core/product.mk @@ -133,11 +133,14 @@ endef # 3. Records that we've visited this node, in ALL_PRODUCTS # define inherit-product + $(if $(findstring ../,$(1)),\ + $(eval np := $(call normalize-paths,$(1))),\ + $(eval np := $(strip $(1))))\ $(foreach v,$(_product_var_list), \ - $(eval $(v) := $($(v)) $(INHERIT_TAG)$(strip $(1)))) \ + $(eval $(v) := $($(v)) $(INHERIT_TAG)$(np))) \ $(eval inherit_var := \ PRODUCTS.$(strip $(word 1,$(_include_stack))).INHERITS_FROM) \ - $(eval $(inherit_var) := $(sort $($(inherit_var)) $(strip $(1)))) \ + $(eval $(inherit_var) := $(sort $($(inherit_var)) $(np))) \ $(eval inherit_var:=) \ $(eval ALL_PRODUCTS := $(sort $(ALL_PRODUCTS) $(word 1,$(_include_stack)))) endef diff --git a/tools/normalize_path.py b/tools/normalize_path.py index 1b3d42e64c..6c4d5486dc 100755 --- a/tools/normalize_path.py +++ b/tools/normalize_path.py @@ -14,11 +14,16 @@ # See the License for the specific language governing permissions and # limitations under the License. """ -Normalize and output paths read from stdin. +Normalize and output paths from arguments, or stdin if no arguments provided. """ import os.path import sys +if len(sys.argv) > 1: + for p in sys.argv[1:]: + print os.path.normpath(p) + sys.exit(0) + for line in sys.stdin: print os.path.normpath(line.strip()) |