【linux】 Makefile之make menuconfig /uImage

时间:2022-05-30 20:22:55

 

欢迎转载,转载时请保留作者信息,谢谢。

邮箱:tangzhongp@163.com

博客园地址:http://www.cnblogs.com/embedded-tzp

Csdn博客地址:http://blog.csdn.net/xiayulewa

 

 

config文件生成

Make menuconfig: 在src/Makefile中

%config: scripts_basic outputmakefile FORCE

        $(Q)mkdir -p include/linux include/config

        $(Q)$(MAKE) $(build)=scripts/kconfig $@

上面最后一句话是会跳转到scripts/kconfig目录,然后执行其目录下的Makefile

在src\scripts\kconfig\Makefile中定义

menuconfig: $(obj)/mconf

        $< $(Kconfig)

在scripts\kconfig下的确有mconf文件,是二进制可执行的,$< $(Kconfig)意思为 执行mconf, 其参数为$(Kconfig)

mconf二进制文件的源代码在src\scripts\kconfig\mconf.c

 

入口就是这样了,更加详细的见如下文章:

linux make menuconfig\Makefile\Kconfig 详解: http://blog.csdn.net/codectq/article/details/9797031

 

当执行make menuconfig后,会生成.config文件。

 

.config转换成auto.conf

include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd

    $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig

auto.conf依赖于$(KCONFIG_CONFIG),而KCONFIG_CONFIG    ?= .config (src/Makefile中)

 

见如下文章,该文章未细看。

auto.conf, auto.conf.cmd, autoconf.h:http://blog.csdn.net/lcw_202/article/details/6661364

 

大概流程就是 .config→auto.conf(在src/Makefile中被包含 -include include/config/auto.conf)→ include/generated/autoconf.h(被 linux源代码包含)

 

Make uImage:

 

uImage目标:/src/arch/arm/boot/Makefile

src\scripts\Kbuild.include中定义了if_changed

src\scripts\Makefile.lib:完整mkimage命令定义cmd_uimage

src\scripts\mkuboot.sh 给MKIMAGE赋值

src\arch\arm\boot\Makefile:UIMAGE_LOADADDR加载地址定义

src\arch\arm\mach-s3c24xx\Makefile.boot:加载地址具体定义

 

要修改加载地址等,找到相关文件并修改就可以了。

 

下面图片是拷贝的,忘了出处了。

 

【linux】 Makefile之make menuconfig /uImage