ninja.mk revision bfd01872cb1afdf419f42bdd5c1df47b715e0d91
1KATI ?= $(HOST_OUT_EXECUTABLES)/ckati 2 3KATI_OUTPUT_PATTERNS := $(PRODUCT_OUT)/build%.ninja $(PRODUCT_OUT)/ninja%.sh 4NINJA_GOALS := fastincremental generateonly droid showcommands 5 6ANDROID_TARGETS := $(filter-out $(KATI_OUTPUT_PATTERNS) $(NINJA_GOALS),$(ORIGINAL_MAKECMDGOALS)) 7 8KATI_NINJA_SUFFIX := 9ifneq ($(ANDROID_TARGETS),) 10KATI_NINJA_SUFFIX := $(KATI_NINJA_SUFFIX)-$(subst $(space),_,$(sort $(ANDROID_TARGETS))) 11endif 12ifneq ($(ONE_SHOT_MAKEFILE),) 13KATI_NINJA_SUFFIX := $(KATI_NINJA_SUFFIX)-mmm-$(subst /,_,$(strip $(ONE_SHOT_MAKEFILE))) 14endif 15 16KATI_BUILD_NINJA := $(PRODUCT_OUT)/build$(KATI_NINJA_SUFFIX).ninja 17KATI_NINJA_SH := $(PRODUCT_OUT)/ninja$(KATI_NINJA_SUFFIX).sh 18KATI_OUTPUTS := $(KATI_BUILD_NINJA) $(KATI_NINJA_SH) 19 20ifeq (,$(NINJA_STATUS)) 21NINJA_STATUS := [%p %s/%t]$(space) 22endif 23 24ifneq (,$(filter showcommands,$(ORIGINAL_MAKECMDGOALS))) 25NINJA_ARGS += "-v" 26PHONY: showcommands 27showcommands: droid 28endif 29 30ifeq (,$(filter generateonly,$(ORIGINAL_MAKECMDGOALS))) 31fastincremental droid $(ANDROID_TARGETS): ninja.intermediate 32 @#empty 33 34.INTERMEDIATE: ninja.intermediate 35ninja.intermediate: $(KATI_OUTPUTS) 36 @echo Starting build with ninja 37 $(hide) PATH=prebuilts/ninja/$(HOST_PREBUILT_TAG)/:$$PATH NINJA_STATUS="$(NINJA_STATUS)" $(KATI_NINJA_SH) -C $(TOP) $(NINJA_ARGS) $(ANDROID_TARGETS) 38else 39generateonly droid $(ANDROID_TARGETS): $(KATI_OUTPUTS) 40 @#empty 41endif 42 43ifeq (,$(filter fastincremental,$(ORIGINAL_MAKECMDGOALS))) 44KATI_FORCE := FORCE 45endif 46 47$(KATI_OUTPUTS): kati.intermediate $(KATI_FORCE) 48 49.INTERMEDIATE: kati.intermediate 50kati.intermediate: $(KATI) 51 @echo Running kati to generate build$(KATI_NINJA_SUFFIX).ninja... 52 @#TODO: use separate ninja file for mm or single target build 53 $(hide) $(KATI) --ninja --ninja_dir=$(PRODUCT_OUT) --ninja_suffix=$(KATI_NINJA_SUFFIX) --regen --ignore_dirty=$(OUT_DIR)/% --ignore_optional_include=$(OUT_DIR)/%.P --detect_android_echo --use_find_emulator $(KATI_REMOTE_NUM_JOBS_FLAG) -f build/core/main.mk $(ANDROID_TARGETS) USE_NINJA=false 54 55KATI_CXX := $(CLANG_CXX) $(CLANG_HOST_GLOBAL_CPPFLAGS) 56KATI_LD := $(CLANG_CXX) $(CLANG_HOST_GLOBAL_LDFLAGS) 57# Build static ckati. Unfortunately Mac OS X doesn't officially support static exectuables. 58ifeq ($(BUILD_OS),linux) 59KATI_LD += -static 60endif 61 62KATI_INTERMEDIATES_PATH := $(HOST_OUT_INTERMEDIATES)/EXECUTABLES/ckati_intermediates 63KATI_BIN_PATH := $(HOST_OUT_EXECUTABLES) 64include build/kati/Makefile.ckati 65 66.PHONY: FORCE 67FORCE: 68