Home | History | Annotate | Download | only in core
      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