1 2 # List of variables we want to print in the build banner. 3 print_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 29 ifeq ($(TARGET_BUILD_PDK),true) 30 print_build_config_vars += \ 31 TARGET_BUILD_PDK \ 32 PDK_FUSION_PLATFORM_ZIP 33 endif 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. 38 ifeq ($(CALLED_FROM_SETUP),true) 39 40 ifneq ($(filter /%,$(SOONG_HOST_OUT_EXECUTABLES)),) 41 ABP := $(SOONG_HOST_OUT_EXECUTABLES) 42 else 43 ABP := $(PWD)/$(SOONG_HOST_OUT_EXECUTABLES) 44 endif 45 ifneq ($(filter /%,$(HOST_OUT_EXECUTABLES)),) 46 ABP := $(ABP):$(HOST_OUT_EXECUTABLES) 47 else 48 ABP := $(ABP):$(PWD)/$(HOST_OUT_EXECUTABLES) 49 endif 50 51 ANDROID_BUILD_PATHS := $(ABP) 52 ANDROID_PREBUILTS := prebuilt/$(HOST_PREBUILT_TAG) 53 ANDROID_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 # 67 dumpvar_goals := \ 68 $(strip $(patsubst dumpvar-%,%,$(filter dumpvar-%,$(MAKECMDGOALS)))) 69 ifdef 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 91 endif # dumpvar_goals 92 93 ifneq ($(dumpvar_goals),report_config) 94 PRINT_BUILD_CONFIG:= 95 endif 96 97 ifneq ($(filter report_config,$(DUMP_MANY_VARS)),) 98 # Construct the shell commands that print the config banner. 99 report_config_sh := echo '============================================'; 100 report_config_sh += $(foreach v,$(print_build_config_vars),echo '$v=$($(v))';) 101 report_config_sh += echo '============================================'; 102 endif 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 112 dump-many-vars : 113 @$(foreach v, $(filter-out report_config, $(DUMP_MANY_VARS)),\ 114 echo "$(DUMP_VAR_PREFIX)$(v)='$($(v))'";) 115 ifneq ($(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)\`" 119 endif 120 @$(foreach v, $(sort $(DUMP_MANY_ABS_VARS)),\ 121 echo "$(DUMP_ABS_VAR_PREFIX)$(v)='$(abspath $($(v)))'";) 122 123 endif # CALLED_FROM_SETUP 124 125 ifneq ($(PRINT_BUILD_CONFIG),) 126 $(info ============================================) 127 $(foreach v, $(print_build_config_vars),\ 128 $(info $v=$($(v)))) 129 $(info ============================================) 130 endif 131