如何确定本次编译的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
编译的命令如下:
. 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
相关文章推荐
- ConcurrentHashMap--锁分段技术
- C++函数编译原理和成员函数的实现
- TaskQuery查询API
- DOM解析XML
- ttyS、ttySAC、tty、ttyn的区别
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
- labwindows远程数据库操作
- 常用标签
- nginx、apache和tomcat之间的关系和区别
- Spring加载完成后调用方法
- java后台以json字符串的形式,将数据返回给$.ajax的问题总结
- 让linux支持EC11等旋转编码器
- 怎么获得webshell asp/PHP环境搭建 2016.03.31回顾
- 位运算—统计文本文件中汉字的个数
- Hadoop HA部署
- SQL拼接
- SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 'WIN-8IVSNAQS8T7\Administrator' 的信息,错误代码 0x534。 转+自我方法
- 64位Win7、8、10中导入excel提示“因为 OLE DB 访问接口 'MICROSOFT.JET.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。”
- 菜单详解(1)
- in 和 exists 效率问题