diff options
-rw-r--r-- | core/Makefile | 16 | ||||
-rw-r--r-- | core/definitions.mk | 1 | ||||
-rw-r--r-- | core/envsetup.mk | 4 | ||||
-rw-r--r-- | core/ninja.mk | 6 | ||||
-rw-r--r-- | core/product.mk | 5 | ||||
-rw-r--r-- | envsetup.sh | 3 |
6 files changed, 27 insertions, 8 deletions
diff --git a/core/Makefile b/core/Makefile index 2f7ebdf3c7..2f8e8a774b 100644 --- a/core/Makefile +++ b/core/Makefile @@ -320,7 +320,12 @@ $(PACKAGE_STATS_FILE): $(PACKAGES_TO_STAT) @echo Package stats: $@ @mkdir -p $(dir $@) $(hide) rm -f $@ +ifeq ($(PACKAGES_TO_STAT),) +# Create empty package stats file if target builds no jar(s) or apk(s). + $(hide) touch $@ +else $(hide) build/tools/dump-package-stats $^ > $@ +endif .PHONY: package-stats package-stats: $(PACKAGE_STATS_FILE) @@ -1742,8 +1747,13 @@ $(APPS_ZIP): $(INSTALLED_SYSTEMIMAGE) @echo "Package apps: $@" $(hide) rm -rf $@ $(hide) mkdir -p $(dir $@) - $(hide) zip -qj $@ $(TARGET_OUT_APPS)/*/*.apk $(TARGET_OUT_APPS_PRIVILEGED)/*/*.apk - + $(hide) apps_to_zip=`find $(TARGET_OUT_APPS) $(TARGET_OUT_APPS_PRIVILEGED) -mindepth 2 -maxdepth 3 -name "*.apk"`; \ + if [ -z "$$apps_to_zip" ]; then \ + echo "No apps to zip up. Generating empty apps archive." ; \ + a=$$(mktemp /tmp/XXXXXXX) && touch $$a && zip $@ $$a && zip -d $@ $$a; \ + else \ + zip -qj $@ $$apps_to_zip; \ + fi #------------------------------------------------------------------ # A zip of emma code coverage meta files. Generated for fully emma @@ -1972,9 +1982,11 @@ ifneq ($(dont_bother),true) include $(sort $(wildcard $(BUILD_SYSTEM)/tasks/*.mk)) -include $(sort $(wildcard vendor/*/build/tasks/*.mk)) -include $(sort $(wildcard device/*/build/tasks/*.mk)) +-include $(sort $(wildcard product/*/build/tasks/*.mk)) # Also the project-specific tasks -include $(sort $(wildcard vendor/*/*/build/tasks/*.mk)) -include $(sort $(wildcard device/*/*/build/tasks/*.mk)) +-include $(sort $(wildcard product/*/*/build/tasks/*.mk)) endif include $(BUILD_SYSTEM)/product-graph.mk diff --git a/core/definitions.mk b/core/definitions.mk index ecc72532d1..ce7602bf70 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2547,6 +2547,7 @@ include $(BUILD_SYSTEM)/distdir.mk # Include any vendor specific definitions.mk file -include $(TOPDIR)vendor/*/build/core/definitions.mk -include $(TOPDIR)device/*/build/core/definitions.mk +-include $(TOPDIR)product/*/build/core/definitions.mk # broken: # $(foreach file,$^,$(if $(findstring,.a,$(suffix $file)),-l$(file),$(file))) 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 a9af325541..d6f2860e3a 100644 --- a/core/product.mk +++ b/core/product.mk @@ -28,8 +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 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 diff --git a/envsetup.sh b/envsetup.sh index f838d62021..245d5a21db 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -1535,7 +1535,8 @@ fi # Execute the contents of any vendorsetup.sh files we can find. for f in `test -d device && find -L device -maxdepth 4 -name 'vendorsetup.sh' 2> /dev/null | sort` \ - `test -d vendor && find -L vendor -maxdepth 4 -name 'vendorsetup.sh' 2> /dev/null | sort` + `test -d vendor && find -L vendor -maxdepth 4 -name 'vendorsetup.sh' 2> /dev/null | sort` \ + `test -d product && find -L product -maxdepth 4 -name 'vendorsetup.sh' 2> /dev/null | sort` do echo "including $f" . $f |