dumpvar.mk revision 8bc4c438bd8483c8bf794a51908229c8e644b3f3
1# ---------------------------------------------------------------
2# the setpath shell function in envsetup.sh uses this to figure out
3# what to add to the path given the config we have chosen.
4ifeq ($(CALLED_FROM_SETUP),true)
5
6ifneq ($(filter /%,$(HOST_OUT_EXECUTABLES)),)
7ABP:=$(HOST_OUT_EXECUTABLES)
8else
9ABP:=$(PWD)/$(HOST_OUT_EXECUTABLES)
10endif
11
12# Add the ARM toolchain bin dir if it actually exists
13ifeq ($(TARGET_ARCH),arm)
14    ifneq ($(wildcard $(PWD)/prebuilts/gcc/$(HOST_PREBUILT_TAG)/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)/bin),)
15        # this should be copied to HOST_OUT_EXECUTABLES instead
16        ABP:=$(ABP):$(PWD)/prebuilts/gcc/$(HOST_PREBUILT_TAG)/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)/bin
17    endif
18    ifneq ($(wildcard $(PWD)/prebuilts/gcc/$(HOST_PREBUILT_TAG)/arm/arm-eabi-$(TARGET_GCC_VERSION)/bin),)
19        # this should be copied to HOST_OUT_EXECUTABLES instead
20        ABP:=$(ABP):$(PWD)/prebuilts/gcc/$(HOST_PREBUILT_TAG)/arm/arm-eabi-$(TARGET_GCC_VERSION)/bin
21    endif
22else ifeq ($(TARGET_ARCH),x86)
23
24# Add the x86 toolchain bin dir if it actually exists
25    ifneq ($(wildcard $(PWD)/prebuilts/gcc/$(HOST_PREBUILT_TAG)/x86/i686-linux-android-$(TARGET_GCC_VERSION)/bin),)
26        # this should be copied to HOST_OUT_EXECUTABLES instead
27        ABP:=$(ABP):$(PWD)/prebuilts/gcc/$(HOST_PREBUILT_TAG)/x86/i686-linux-android-$(TARGET_GCC_VERSION)/bin
28    endif
29endif
30
31# Add the mips toolchain bin dir if it actually exists
32ifneq ($(wildcard $(PWD)/prebuilts/gcc/$(HOST_PREBUILT_TAG)/mips/mipsel-linux-android-$(TARGET_GCC_VERSION)/bin),)
33    # this should be copied to HOST_OUT_EXECUTABLES instead
34    ABP:=$(ABP):$(PWD)/prebuilts/gcc/$(HOST_PREBUILT_TAG)/mips/mipsel-linux-android-$(TARGET_GCC_VERSION)/bin
35endif
36
37ANDROID_BUILD_PATHS := $(ABP)
38ANDROID_PREBUILTS := prebuilt/$(HOST_PREBUILT_TAG)
39ANDROID_GCC_PREBUILTS := prebuilts/gcc/$(HOST_PREBUILT_TAG)
40
41# The "dumpvar" stuff lets you say something like
42#
43#     CALLED_FROM_SETUP=true \
44#       make -f config/envsetup.make dumpvar-TARGET_OUT
45# or
46#     CALLED_FROM_SETUP=true \
47#       make -f config/envsetup.make dumpvar-abs-HOST_OUT_EXECUTABLES
48#
49# The plain (non-abs) version just dumps the value of the named variable.
50# The "abs" version will treat the variable as a path, and dumps an
51# absolute path to it.
52#
53dumpvar_goals := \
54	$(strip $(patsubst dumpvar-%,%,$(filter dumpvar-%,$(MAKECMDGOALS))))
55ifdef dumpvar_goals
56
57  ifneq ($(words $(dumpvar_goals)),1)
58    $(error Only one "dumpvar-" goal allowed. Saw "$(MAKECMDGOALS)")
59  endif
60
61  # If the goal is of the form "dumpvar-abs-VARNAME", then
62  # treat VARNAME as a path and return the absolute path to it.
63  absolute_dumpvar := $(strip $(filter abs-%,$(dumpvar_goals)))
64  ifdef absolute_dumpvar
65    dumpvar_goals := $(patsubst abs-%,%,$(dumpvar_goals))
66    ifneq ($(filter /%,$($(dumpvar_goals))),)
67      DUMPVAR_VALUE := $($(dumpvar_goals))
68    else
69      DUMPVAR_VALUE := $(PWD)/$($(dumpvar_goals))
70    endif
71    dumpvar_target := dumpvar-abs-$(dumpvar_goals)
72  else
73    DUMPVAR_VALUE := $($(dumpvar_goals))
74    dumpvar_target := dumpvar-$(dumpvar_goals)
75  endif
76
77.PHONY: $(dumpvar_target)
78$(dumpvar_target):
79	@echo $(DUMPVAR_VALUE)
80
81endif # dumpvar_goals
82
83ifneq ($(dumpvar_goals),report_config)
84PRINT_BUILD_CONFIG:=
85endif
86
87endif # CALLED_FROM_SETUP
88
89
90ifneq ($(PRINT_BUILD_CONFIG),)
91HOST_OS_EXTRA:=$(shell python -c "import platform; print(platform.platform())")
92$(info ============================================)
93$(info   PLATFORM_VERSION_CODENAME=$(PLATFORM_VERSION_CODENAME))
94$(info   PLATFORM_VERSION=$(PLATFORM_VERSION))
95$(info   TARGET_PRODUCT=$(TARGET_PRODUCT))
96$(info   TARGET_BUILD_VARIANT=$(TARGET_BUILD_VARIANT))
97$(info   TARGET_BUILD_TYPE=$(TARGET_BUILD_TYPE))
98$(info   TARGET_BUILD_APPS=$(TARGET_BUILD_APPS))
99$(info   TARGET_ARCH=$(TARGET_ARCH))
100$(info   TARGET_ARCH_VARIANT=$(TARGET_ARCH_VARIANT))
101$(info   HOST_ARCH=$(HOST_ARCH))
102$(info   HOST_OS=$(HOST_OS))
103$(info   HOST_OS_EXTRA=$(HOST_OS_EXTRA))
104$(info   HOST_BUILD_TYPE=$(HOST_BUILD_TYPE))
105$(info   BUILD_ID=$(BUILD_ID))
106$(info   OUT_DIR=$(OUT_DIR))
107$(info ============================================)
108endif
109