a) the basic opertion as following:
1 source build/envsetup.sh
2 lunch 21 --// this would refer to on combo
b) then we would try to find the system how to configure the defalut kernel defconfig , which used by running make menuconfig.
c)
1 after run the source build/envsetup.sh
it would try to find all the vendorsetup.sh in the device||vendor 's subdir
2 then user can try to lunch to set the correct vendorsetup.sh by lunch command.
such as it would run to below vendorsetup.sh
@./cherrytrail/cht_rvp/vendorsetup.sh:
add_lunch_combo cht_rvp_64_gen8-eng -- for example, lunch 21 would refer to cht_rvp_64_gen8-eng.
3 in below file would define all the related tag and files.
@./cht_rvp/AndroidProducts.mk:
$(LOCAL_DIR)/cht_rvp_64_gen8.mk
BOARD_USE_64BIT_KERNEL :=true //it would to tell the compile system, we would use the 64BIT kernel.
#./cht_rvp/cht_rvp_64_gen8.mk:
include $(LOCAL_PATH)/cht_rvp.mk
@./cht_rvp/cht_rvp.mk:
include $(LOCAL_PATH)/device.mk
@./cht_rvp/device.mk:
include $(PLATFORM_PATH)/cherrytrail.mk
4 in the cherrytrail.mk , it would define the TARGET_BOARD_PLARTFORM TAG.
@./cherrytrail.mk:
TARGET_BOARD_PLATFORM := cherrytrail
@./intel/baytrail/baytrail.mk:
TARGET_BOARD_PLATFORM := baytrail
4 In the AnrodiKernel.mk, it finally defined the KERNEL_DEFCONFIG to correct defconfig by make menuconfig.
@./intel/common/AndroidKernel.mk
Ifeq ($(BOARD_USE_64BIT_KERNEL),true)
KERNEL_ARCH := x86_64 // it define the kernel arch to x86_64.
Else
KERNEL_ARCH := i386 // it define the kernel arch to i386
KERNEL_SOC_cherrytrail := cht --- it is the cherrytrail soc abbrev
KERNEL_SOC_baytrail := byt -- it is the barytrail soc abbrev
KERNEL_SOC :=$(KERNEL_SOC_$(TARGET_BOARD_PLATFORM))
//so KERKEL_SOC =cht
./intel/common/AndroidKernel.mk:KERNEL_DEFCONFIG:= $(KERNEL_SRC_DIR)/arch/x86/configs/$(KERNEL_ARCH)_$(KERNEL_SOC)_defconfig
//so KERNEL_DEFCONFIG = x86_64_cht_defconfig