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