1. Files Path:
main.mk --> config.mk --> envsetup.mk --> version_defaults.mk, build_id.mk
初始化变量:
PLATFORM_VERSION := AOSP
PLATFORM_SDK_VERSION := 8
PLATFORM_VERSION_CODENAME := AOSP
BUILD_ID
BUILD_NUMBER := eng.root.20101201.160045 # eng.$(USER).$(shell date +%Y%m%d.%H%M%S)
2. Files Path:
main.mk --> config.mk --> envsetup.mk
初始化变量:
TARGET_PRODUCT := generic
TARGET_BUILD_VARIANT := eng
HOST_OS
HOST_ARCH
HOST_BUILD_TYPE := release
TARGET_BUILD_TYPE := release
TARGET_PREBUILT_TAG := android-arm
OUT_DIR := $(TOPDIR)out
DEBUG_OUT_DIR := $(OUT_DIR)/debug
TARGET_OUT_ROOT_ release := $(OUT_DIR)/target #./out/target
TARGET_OUT_ROOT_debug := $(DEBUG_OUT_DIR)/target #./out/debug/target
HOST_OUT_ROOT_release := $(OUT_DIR)/host $./out/host
HOST_OUT_ROOT_debug := $(DEBUG_OUT_DIR)/host #./out/debug/host
HOST_OUT_release := $(HOST_OUT_ROOT_release)/$(HOST_OS)-$(HOST_ARCH) #./out/host/linux-x86
HOST_OUT_debug := $(HOST_OUT_ROOT_debug)/$(HOST_OS)-$(HOST_ARCH) #./out/debug/host/linux-x86
BUILD_OUT := $(OUT_DIR)/host/$(BUILD_OS)-$(BUILD_ARCH) #./out/host/linux-x86
TARGET_PRODUCT_OUT_ROOT := $(TARGET_OUT_ROOT)/product #./out/target/product
TARGET_COMMON_OUT_ROOT := $(TARGET_OUT_ROOT)/common #./out/target/common
HOST_COMMON_OUT_ROOT := $(HOST_OUT_ROOT)/common #./out/host/common
PRODUCT_OUT := $(TARGET_PRODUCT_OUT_ROOT)/$(TARGET_DEVICE) #./out/target/product/generic
OUT_DOCS := $(TARGET_COMMON_OUT_ROOT)/docs #./out/target/common/docs
BUILD_OUT_EXECUTABLES:= $(BUILD_OUT)/bin #./out/host/linux-x86/bin
HOST_OUT_EXECUTABLES:= $(HOST_OUT)/bin #./out/host/linux-x86/bin
3. Files Path:
main.mk --> config.mk
初始化变量:
board_config_mk = ./build/target/board/generic/BoardConfig.mk
TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk))) #./build/target/board/generic
TARGET_CPU_ABI := armeabi
4. Files Path:
main.mk --> config.mk --> select.mk, HOST_linux-x86.mk, ARGET_linux-arm.mk
初始化变量:
include $(BUILD_COMBOS)/$(combo_target)$(combo_os_arch).mk #./build/core/combo/HOST_linux-x86.mk
HOST_GLOBAL_CFLAGS = -fno-exception -Wno-multichar -m32 -fPIC -include system/core/include/arch/linux-x86/AndroidConfig.h
include $(BUILD_COMBOS)/$(combo_target)$(combo_os_arch).mk #./build/core/combo/TARGET_linux-arm.mk
TARGET_ARCH_SPECIFIC_MAKEFILE = build/core/combo/arch/arm/armv5te.mk
(说明:TARGET_linux-arm.mk 默认指定 TARGET_ARCH_SPECIFIC_MAKEFILE 为 armv5te;高端机型为 armv7-a-neon)
TARGET_TOOLS_PREFIX := prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
#./prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
(说明:toolchain/arm-eabi-4.4.0)
android_config_h := $(call select-android-config-h,linux-arm) #./system/core/include/arch/linux-arm/AndroidConfig.h
arch_include_dir := $(dir $(android_config_h))
TARGET_GLOBAL_CFLAGS = -fno-exception -Wno-multichar -msoft-float -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums --march=armv5te -mtune=xscale -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -include system/core/include/arch/linux-arm/AndroidConfig.h -I system/core/include/arch/linux-arm/
TARGET_LIBGCC := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) -print-libgcc-file-name)
./prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/interwork/libgcc.a
target_libgcov := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) --print-file-name=libgcov.a)
./prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/interwork/libgcov.a
TARGET_FDO_PROFILE_PATH := fdo/profiles/$(TARGET_ARCH)/$(TARGET_ARCH_VARIANT)
fdo/profiles/arm/armv5te
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/common #./bionic/libc/kernel/common
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/arch-$(TARGET_ARCH) #./bionic/libc/kernel/arch-arm
5. Files Path:
main.mk --> cleanbuild.mk
初始化变量:
.PHONY: dataclean
.PHONY: installclean
force_installclean $(shell rm -rf $(dataclean_files) $(installclean_files))
6. Files Path:
main.mk --> definitions.mk distdir.mk
初始化变量:
.PHONY: dist
7. Files Path:
main.mk
初始化变量:
ADDITIONAL_BUILD_PROPERTIES
ADDITIONAL_DEFAULT_PROPERTIES
PRODUCT_TAGS
TARGET_BUILD_VARIANT
PRODUCT_COPY_FILES = development/data/etc/apns-conf_sdk.xml:system/etc/apns-conf.xml
8. Files Path:
main.mk -- PolicyConfig.mk
初始化变量:
LOCAL_MODULE := android.policy # 生成 android.policy