您的位置:首页 > 其它

如何确定本次编译的deconfig文件

2016-04-01 09:33 274 查看
之前我们知道deconfig里会定义某个config变量是y还是n,但是kernel里有很多deconfig文件,系统编译的时候到底用的是哪个呢,我们来看一下:

编译的命令如下:

. build/envsetup.sh

lunch

8. msm8937_evb-userdebug

./mkimage msm8937_evb boot_image

首先在envsetup.sh

command make --no-print-directory -f build/core/config.mk dumpvar-abs-$1) //这里也是线索

function gettop

{

local TOPFILE=build/core/envsetup.mk //这里就是线索

......

}

然后看config.mk

include $(BUILD_SYSTEM)/envsetup.mk //这里是确定引用的

所以看envsetup.mk

board_config_mk := \

$(strip $(wildcard \

$(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)/BoardConfig.mk \

$(shell test -d device && find device -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \

$(shell test -d vendor && find vendor -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \

)) //获取到对应的BoardConfig.mk文件

TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk))) //获取对应的路径

matthew@matthew:/media/matt2/8937-evb-1/build/target/board$ grep -r "TARGET_DEVICE_DIR" ./

./Android.mk:-include $(TARGET_DEVICE_DIR)/AndroidBoard.mk //加载对应的AndroidBoard.mk

然后到对应的/device/asus/msm8937_evb/里的AndroidBoard.mk

如下:

-include device/qcom/msm8937_64/AndroidBoard.mk

LOCAL_PATH := $(call my-dir)

ifeq ($(TARGET_BUILD_VARIANT),user)

KERNEL_DEFCONFIG := msm8937-perf_defconfig

else

KERNEL_DEFCONFIG := msm8937_defconfig //最后用的是这个deconfig文件

endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: