uboot总结:uboot配置和启动过程1(主Makefile分析)

时间:2022-06-03 04:54:50

说明:文件位置:在uboot的目录下,文件名为:Makefile

从文件的头部开始分析
1、24-29行,配置uboot的版本信息。
VERSION = 1
PATCHLEVEL
= 3
SUBLEVEL
= 4
EXTRAVERSION
=
U_BOOT_VERSION
= $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
VERSION_FILE
= $(obj)include/version_autogenerated.h

 

2、主机的环境信息(比如:我现在是虚拟机的Ubuntu10.04下开发的,就是i686,linux。)
uboot总结:uboot配置和启动过程1(主Makefile分析)
 
3、配置为静默编译的设置(使用方法:make -s;这个-s会作为MAKEFLAG传个Makefile,下面的XECHO就会变成空)
uboot总结:uboot配置和启动过程1(主Makefile分析)
 
4、是否配置为当独输出文件夹方式编译(使用方法:make -0=输出目录)
uboot总结:uboot配置和启动过程1(主Makefile分析)
 
5、设置目标路径、源文件路劲、顶层目录、连接目录。并导出为环境变量
uboot总结:uboot配置和启动过程1(主Makefile分析)
 
6、调用mkconfig配置脚本(文件就在uboot下,后续会进一步分析这个脚本)
uboot总结:uboot配置和启动过程1(主Makefile分析)
 
7、加载include目录下的config.mk文件,里面的信息是ARCH/CPU/BOARD/VENDOR/SOC。这个文件是在配置过程中产生的(make x210_sd_config)。
举例:我们的配置就是arm s5pc11x samsung s5pc110
uboot总结:uboot配置和启动过程1(主Makefile分析)
补充:配置过程的代码
uboot总结:uboot配置和启动过程1(主Makefile分析)
 
8、配置交叉编译工具链(部分代码)
uboot总结:uboot配置和启动过程1(主Makefile分析)
 
9、调用配置config.mk文件(config.mk是一个makefile,进行一些配置,后续后进一步分析)
uboot总结:uboot配置和启动过程1(主Makefile分析)
 
10、后面剩下就是Makefile的主要编译的一些东西
 
 
总结:分析主Makefile不能孤立的分析,因为里面有调用其它的文件(mkconfig、config.mk)。首先在框架上分析,对主Makefile有一个大概的了解,然后再去具体的分析和查找里面的文件和变量。