1 2# List of variables we want to print in the build banner. 3print_build_config_vars := \ 4 PLATFORM_VERSION_CODENAME \ 5 PLATFORM_VERSION \ 6 TARGET_PRODUCT \ 7 TARGET_BUILD_VARIANT \ 8 TARGET_BUILD_TYPE \ 9 TARGET_PLATFORM_VERSION \ 10 TARGET_BUILD_APPS \ 11 TARGET_ARCH \ 12 TARGET_ARCH_VARIANT \ 13 TARGET_CPU_VARIANT \ 14 TARGET_2ND_ARCH \ 15 TARGET_2ND_ARCH_VARIANT \ 16 TARGET_2ND_CPU_VARIANT \ 17 HOST_ARCH \ 18 HOST_2ND_ARCH \ 19 HOST_OS \ 20 HOST_OS_EXTRA \ 21 HOST_CROSS_OS \ 22 HOST_CROSS_ARCH \ 23 HOST_CROSS_2ND_ARCH \ 24 HOST_BUILD_TYPE \ 25 BUILD_ID \ 26 OUT_DIR \ 27 AUX_OS_VARIANT_LIST 28 29ifeq ($(TARGET_BUILD_PDK),true) 30print_build_config_vars += \ 31 TARGET_BUILD_PDK \ 32 PDK_FUSION_PLATFORM_ZIP 33endif 34 35# --------------------------------------------------------------- 36# the setpath shell function in envsetup.sh uses this to figure out 37# what to add to the path given the config we have chosen. 38ifeq ($(CALLED_FROM_SETUP),true) 39 40ifneq ($(filter /%,$(SOONG_HOST_OUT_EXECUTABLES)),) 41ABP := $(SOONG_HOST_OUT_EXECUTABLES) 42else 43ABP := $(PWD)/$(SOONG_HOST_OUT_EXECUTABLES) 44endif 45ifneq ($(filter /%,$(HOST_OUT_EXECUTABLES)),) 46ABP := $(ABP):$(HOST_OUT_EXECUTABLES) 47else 48ABP := $(ABP):$(PWD)/$(HOST_OUT_EXECUTABLES) 49endif 50 51ANDROID_BUILD_PATHS := $(ABP) 52ANDROID_PREBUILTS := prebuilt/$(HOST_PREBUILT_TAG) 53ANDROID_GCC_PREBUILTS := prebuilts/gcc/$(HOST_PREBUILT_TAG) 54 55# The "dumpvar" stuff lets you say something like 56# 57# CALLED_FROM_SETUP=true \ 58# make -f config/envsetup.make dumpvar-TARGET_OUT 59# or 60# CALLED_FROM_SETUP=true \ 61# make -f config/envsetup.make dumpvar-abs-HOST_OUT_EXECUTABLES 62# 63# The plain (non-abs) version just dumps the value of the named variable. 64# The "abs" version will treat the variable as a path, and dumps an 65# absolute path to it. 66# 67dumpvar_goals := \ 68 $(strip $(patsubst dumpvar-%,%,$(filter dumpvar-%,$(MAKECMDGOALS)))) 69ifdef dumpvar_goals 70 71 ifneq ($(words $(dumpvar_goals)),1) 72 $(error Only one "dumpvar-" goal allowed. Saw "$(MAKECMDGOALS)") 73 endif 74 75 # If the goal is of the form "dumpvar-abs-VARNAME", then 76 # treat VARNAME as a path and return the absolute path to it. 77 absolute_dumpvar := $(strip $(filter abs-%,$(dumpvar_goals))) 78 ifdef absolute_dumpvar 79 dumpvar_goals := $(patsubst abs-%,%,$(dumpvar_goals)) 80 DUMPVAR_VALUE := $(abspath $($(dumpvar_goals))) 81 dumpvar_target := dumpvar-abs-$(dumpvar_goals) 82 else 83 DUMPVAR_VALUE := $($(dumpvar_goals)) 84 dumpvar_target := dumpvar-$(dumpvar_goals) 85 endif 86 87.PHONY: $(dumpvar_target) 88$(dumpvar_target): 89 @echo $(DUMPVAR_VALUE) 90 91endif # dumpvar_goals 92 93ifneq ($(dumpvar_goals),report_config) 94PRINT_BUILD_CONFIG:= 95endif 96 97ifneq ($(filter report_config,$(DUMP_MANY_VARS)),) 98# Construct the shell commands that print the config banner. 99report_config_sh := echo '============================================'; 100report_config_sh += $(foreach v,$(print_build_config_vars),echo '$v=$($(v))';) 101report_config_sh += echo '============================================'; 102endif 103 104# Dump mulitple variables to "<var>=<value>" pairs, one per line. 105# The output may be executed as bash script. 106# Input variables: 107# DUMP_MANY_VARS: the list of variable names. 108# DUMP_VAR_PREFIX: an optional prefix of the variable name added to the output. 109# DUMP_MANY_ABS_VARS: the list of abs variable names. 110# DUMP_ABS_VAR_PREFIX: an optional prefix of the abs variable name added to the output. 111.PHONY: dump-many-vars 112dump-many-vars : 113 @$(foreach v, $(filter-out report_config, $(DUMP_MANY_VARS)),\ 114 echo "$(DUMP_VAR_PREFIX)$(v)='$($(v))'";) 115ifneq ($(filter report_config, $(DUMP_MANY_VARS)),) 116 @# Construct a special variable for report_config. 117 @# Escape \` to defer the execution of report_config_sh to preserve the line breaks. 118 @echo "$(DUMP_VAR_PREFIX)report_config=\`$(report_config_sh)\`" 119endif 120 @$(foreach v, $(sort $(DUMP_MANY_ABS_VARS)),\ 121 echo "$(DUMP_ABS_VAR_PREFIX)$(v)='$(abspath $($(v)))'";) 122 123endif # CALLED_FROM_SETUP 124 125ifneq ($(PRINT_BUILD_CONFIG),) 126$(info ============================================) 127$(foreach v, $(print_build_config_vars),\ 128 $(info $v=$($(v)))) 129$(info ============================================) 130endif 131