From c13f9c952dafb5a59ce5ae039a599e83a9622b83 Mon Sep 17 00:00:00 2001 From: Will Drewry Date: Tue, 6 Oct 2015 19:40:11 -0700 Subject: [PATCH] envsetup,product,ninja: enable symlink traversal When searching device, product, or hardware, allow find to follow symlinks. Add KATI_EMULATE_FIND=false to allow disabling the find emulator which changes findleaves.py behavior wrt symlinks. BUG=24605247 TEST=works with CL:783781 (without the find wrapper in that CL) Change-Id: Ia9d0e4add391a56f34828a09a6cec3f435ccc548 --- core/envsetup.mk | 4 ++-- core/ninja.mk | 6 +++++- core/product.mk | 6 +++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/core/envsetup.mk b/core/envsetup.mk index 199c6b760c..050d4459ae 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -141,8 +141,8 @@ SDK_HOST_ARCH := x86 board_config_mk := \ $(strip $(sort $(wildcard \ $(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)/BoardConfig.mk \ - $(shell test -d device && find device -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \ - $(shell test -d vendor && find vendor -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \ + $(shell test -d device && find -L device -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \ + $(shell test -d vendor && find -L vendor -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \ ))) ifeq ($(board_config_mk),) $(error No config file found for TARGET_DEVICE $(TARGET_DEVICE)) diff --git a/core/ninja.mk b/core/ninja.mk index def5823ed4..7a3166a3df 100644 --- a/core/ninja.mk +++ b/core/ninja.mk @@ -120,9 +120,13 @@ ninja_wrapper: $(KATI_BUILD_NINJA) $(MAKEPARALLEL) @echo Starting build with ninja +$(hide) PATH=prebuilts/ninja/$(HOST_PREBUILT_TAG)/:$$PATH NINJA_STATUS="$(NINJA_STATUS)" $(NINJA_MAKEPARALLEL) $(KATI_NINJA_SH) $(filter-out dist,$(ANDROID_TARGETS)) -C $(TOP) $(NINJA_ARGS) +KATI_FIND_EMULATOR := --use_find_emulator +ifeq ($(KATI_EMULATE_FIND),false) + KATI_FIND_EMULATOR := +endif $(KATI_BUILD_NINJA): $(KATI) $(MAKEPARALLEL) FORCE @echo Running kati to generate build$(KATI_NINJA_SUFFIX).ninja... - +$(hide) $(KATI_MAKEPARALLEL) $(KATI) --ninja --ninja_dir=$(OUT_DIR) --ninja_suffix=$(KATI_NINJA_SUFFIX) --regen --ignore_dirty=$(OUT_DIR)/% --ignore_optional_include=$(OUT_DIR)/%.P --detect_android_echo --use_find_emulator -f build/core/main.mk $(KATI_TARGETS) --gen_all_targets BUILDING_WITH_NINJA=true + +$(hide) $(KATI_MAKEPARALLEL) $(KATI) --ninja --ninja_dir=$(OUT_DIR) --ninja_suffix=$(KATI_NINJA_SUFFIX) --regen --ignore_dirty=$(OUT_DIR)/% --ignore_optional_include=$(OUT_DIR)/%.P --detect_android_echo $(KATI_FIND_EMULATOR) -f build/core/main.mk $(KATI_TARGETS) --gen_all_targets BUILDING_WITH_NINJA=true KATI_CXX := $(CLANG_CXX) $(CLANG_HOST_GLOBAL_CFLAGS) $(CLANG_HOST_GLOBAL_CPPFLAGS) KATI_LD := $(CLANG_CXX) $(CLANG_HOST_GLOBAL_LDFLAGS) diff --git a/core/product.mk b/core/product.mk index 3b78337423..d6f2860e3a 100644 --- a/core/product.mk +++ b/core/product.mk @@ -28,9 +28,9 @@ # $(call ) isn't necessary. # define _find-android-products-files -$(sort $(shell test -d device && find device -maxdepth 6 -name AndroidProducts.mk)) \ - $(sort $(shell test -d vendor && find vendor -maxdepth 6 -name AndroidProducts.mk)) \ - $(sort $(shell test -d product && find product -maxdepth 6 -name AndroidProducts.mk)) \ +$(sort $(shell test -d device && find -L device -maxdepth 6 -name AndroidProducts.mk)) \ + $(sort $(shell test -d vendor && find -L vendor -maxdepth 6 -name AndroidProducts.mk)) \ + $(sort $(shell test -d product && find -L product -maxdepth 6 -name AndroidProducts.mk)) \ $(SRC_TARGET_DIR)/product/AndroidProducts.mk endef