Update:: Just use make product-graph.
Then convert the generated .dot file to pdf:
dot -Tpdf -Nshape=box -o out/products.pdf out/products.dot
…or svg:
dot -Tsvg -Nshape=box -o out/products.svg out/products.dot
Sony Open Devices Project: Read order of build variables
-
kagura/vendorsetup.sh(only forbuild/envsetup.sh) Sets up the lunch combo, which then sets the environment variablesTARGET_PRODUCT,TARGET_BUILD_VARIANT,TARGET_PLATFORM_VERSION,TARGET_BUILD_TYPE=release -
kagura/AndroidProducts.mk -
kagura/aosp_f8331.mk -
kagura/aosp_f8332.mk -
kagura/device.mk -
tone/platform.mk -
common/common.mk -
(
customization/customization.mk) -
common/common-init.mk -
common/common-odm.mk -
common/common-packages.mk -
common/common-perm.mk -
common/common-prop.mk -
common/common-treble.mk -
kagura/BoardConfig.mk -
tone/PlatformConfig.mk -
common/CommonConfig.mk -
(customization/Customization.mk)
-
(
common-headers/KernelHeaders.mk) -
(
common-kernel/KernelConfig.mk) -
sepolicy/sepolicy.mk
Internal Order
Short:
build/core/main.mkbuild/core/config.mkbuild/core/envsetup.mkbuild/core/product_config.mkBoardConfig.mkbuild/core/product.mkbuild/core/device.mk
build/core/main.mk
BUILD_SYSTEM := $(TOPDIR)build/make/core
include $(BUILD_SYSTEM)/config.mk
include $(BUILD_SYSTEM)/definitions.mk
Then, include all subdir makefiles:
subdir_makefiles := $(SOONG_ANDROID_MK) $(file <$(OUT_DIR)/.module_paths/Android.mk.list)
$(foreach mk,$(subdir_makefiles),$(info [$(call inc_and_print,subdir_makefiles_inc)/$(subdir_makefiles_total)] including $(mk) ...)$(eval include $(mk)))
include $(BUILD_SYSTEM)/Makefile
build/core/config.mk
include $(BUILD_SYSTEM)/envsetup.mk
build/core/envsetup.mk
include $(BUILD_SYSTEM)/product_config.mk
board_config_mk := \
$(strip $(sort $(wildcard \
$(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)/BoardConfig.mk \
$(shell test -d device && find -L device -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \
$(shell test -d vendor && find -L vendor -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \
)))
include $(board_config_mk)
That means: $board_config_mk = device/$VENDOR/$DEVICE/BoardConfig.mk
build/core/product_config.mk
include $(BUILD_SYSTEM)/product.mk
include $(BUILD_SYSTEM)/device.mk
TODO: Nice charts with relations