一. uboot 的 make xxx_deconfig配置
本文接上一篇文章的内容。地址如下:uboot 顶层Makefile-make xxx_deconfig过程说明二_凌肖战的博客-CSDN博客
本文继续来学习 uboot 源码在执行 make xxx_deconfig 这个配置过程中,顶层 Makefile有关的执行思路。
uboot执行配置过程时,执行了两条关键命令。本文分析第二条命令:
make -f ./scripts/Makefile.build obj=scripts/kconfig xxx_defconfig
二. %config目标对应的命令
%config 目 标 对 应 的 命 令 为 :
make -f ./scripts/Makefile.build obj=scripts/kconfig xxx_defconfig
同上一篇文章类似分析。各个变量值如下:
src= scripts/kconfig
kbuild-dir = ./scripts/kconfig
kbuild-file = ./scripts/kconfig/Makefile
include ./scripts/kconfig/Makefile
可以看出,
Makefilke.build
会读取
scripts/kconfig/Makefile
中的内容,此文件有如下所示内
容:
113 %_defconfig: $(obj)/conf
114 $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@
$(Kconfig)
115
116 # Added for U-Boot (backward compatibility)
117 %_config: %_defconfig
118 @:
目标
%_defconfig
刚好和我们输入的
xxx_defconfig
匹配,所以,会执行这条规则。
依赖为
$(obj)/conf
,展开后就是
scripts/kconfig/conf
。
接下来,就是检查并生成依赖
scripts/kconfig/conf
。
conf
是主机软件,到这里我们就不要纠结
conf
是怎么编译出来的,
像
conf
这种主机所使用的工具类软件我们一般不关心它是如何编译产生的。
得到
scripts/kconfig/conf
以后,就要执行目标
%_defconfig
的命令:
$(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
其中,变量值为:
silent=-s 或为空
SRCARCH=..
Kconfig=Kconfig
目标
%_defconfig 的命令,展开后:
@scripts/kconfig/conf --defconfig=arch/../configs/xxx_defconfig Kconfig
上述命令用到了
xxx_defconfig
文件,比如
mx6ull_alientek_nand_defconfig
。这里会将
mx6ull_alientek_emmc_defconfig
中的配置输出到
.config
文件中,最终生成
uboot
根目录下
的
.config
文件。
三. uboot的make xxx_deconfig 总结
这个就是uboot配置命令
make xxx_defconfig
执行流程,总体执行思路如下:
至此,uboot配置命令
make xxx_defconfig对应,顶层Makefile大体思路
就分析完了,接下来就要分析一下
u-boot.bin
是怎么生成的了。