openwrt-uboot-mt7628-master框架分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fengfeng0328/article/details/83350964

在顶层目录执行 make menuconfig 时:

menuconfig: clean config.in
    $(MAKE) -C scripts/lxdialog all
    $(CONFIG_SHELL) scripts/Menuconfig config.in

可以看到 menuconfig 目标的依赖是 clean 命令和 config.in 文件

然后执行 scripts/lxdialog 目录下的 Makefile文件

再运行$(CONFIG_SHELL) scripts/Menuconfig config.in

问题是:$(CONFIG_SHELL)是什么玩意?


在 config.mk 文件中有一段:

CONFIG_SHELL:= $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
    else if [ -x /bin/bash ]; then echo /bin/bash; \
    else echo sh; fi ; fi)

$(CONFIG_SHELL) scripts/Menuconfig config.in 就是用 scripts/Menuconfig 脚本解释 config.in

经过 make menuconfig 后就可以读出配置选项并显示图形配置界面了

问题是,配置生效文件在哪里? 答案是一个隐藏文件.config 文件


运行 make menuconfig 进行配置后,然后就是运行 make 了,我们来看看这个 make 做了什么:


make 运行顶层目录的 Makefile文件

顶层 Makefile 包含了 config.mk 文件

同时 config.mk 文件又包含了.config 文件

综上可得框图:

猜你喜欢

转载自blog.csdn.net/fengfeng0328/article/details/83350964