uboot 编译解析
来源:互联网 发布:织梦404页面制作 编辑:程序博客网 时间:2024/06/10 05:10
1、makefile
MKCONFIG := $(srctree)/mkconfig
export MKCONFIG
%_config:: outputmakefile
@$(MKCONFIG) -A $(@:_config=)
#########################################################################
# %代表着任意字符
#%_config目标后面是双冒号,而我们平常看的只有一个冒号,这个就是makefile 的双冒号规则了,
#而平常我们见的单冒号就是普通规则。Makefile 中规定:一个目标可以出现在多个规则中。
#但是这些规则必须是同一类型的规则,要么都是普通规则,要么都是双冒号规则。
#而不允许一个目标同时出现在两种不同类型的规则中。双冒号规则和普通规则的处理的不同点表现在以下几个方面:
#1. 双冒号规则中,当依赖文件比目标更新时。规则将会被执行。对于一个没有依赖而只有命令行的双冒号规则,
# 当引用此目标时,规则的命令将会被无条件执行。而普通规则,当规则的目标文件存在时,
# 此规则的命令永远不会被执行(目标文件永远是最新的)。
#2. 当同一个文件作为多个双冒号规则的目标时。这些不同的规则会被独立的处理,
# 而不是像普通规则那样合并所有的依赖到一个目标文件。这就意味着对这些规则的处理就像多个不同
# 的普通规则一样。就是说多个双冒号规则中的每一个的依赖文件被改变之后,make只执行此规则定义的命令,
# 而其它的以这个文件作为目标的双冒号规则将不会被执行。
#@的作用是在执行这条命令的时候不进行显示,$(MKCONFIG)是取变量MKCONFIG,
#由MKCONFIG := $(SRCTREE)/mkconfig这条语句知,就是当前目录下的mkconfig文件,
#$(@:_config=)的意思是,讲目标文件名字中含有的_config用等号后面的的字符替换掉,
#这里=后面为空,所以其效果就是把_config去掉
# 格式为“$(VAR:A=B)”(或者“${VAR:A=B}”),意思是:替换变量“VAR”中所有“A”字符结尾的字为“B”结尾的字。
#########################################################################
其实就是调用命令mkconfig -A am335x_evm
执行结果:
GEN /home/fz/build/forlinx_uboot/Makefile
Configuring for am335x_evm - Board: am335x_evm, Options: SERIAL1,CONS_INDEX=1,EMMC_BOOT
outputmakefile就是在输出目录,生成一个makefile
mkconfig是一个shell脚本,最终的目的只用一个,根据boards.cfg文件里与am335x_evm匹配的board行所提供的参数Target Architecture CPU Board [VENDOR] [SOC]来产生一个config.h和config.mk。
config.h是uboot源码的顶层配置头文件,它包括了对uboot产生影响的所有配置选项。
config.mk为make提供了几个变量,并根据boards.cfg中匹配行所提供的参数为这几个变量赋值,后面make将会用到的。
0 0
- uboot 编译解析
- uboot编译脚本解析
- uboot的配置和编译文件解析
- uboot编译
- uboot编译
- uboot编译
- Uboot编译
- uboot编译
- 编译uboot
- uboot解析
- uboot基础 配置编译uboot
- 编译AT91 uboot(转)
- ELDK 安装 UBOOT编译
- uboot编译全程
- Uboot 编译过程
- uboot编译过程
- Uboot 编译过程
- 编译uboot与内核
- WebRoot和Web-Info区别
- 入门篇
- Leetcode no. 194
- netty日志LoggingHandler怎么用
- 魂牵梦萦地魂牵梦萦地要a
- uboot 编译解析
- Yarn通信协议与工作流程
- 消息循环中TranslateMessage和Dispatch函数的作用
- 函数回调机制、异步函数回调机制图例详解
- Oracle数据库,忽略大小写Like模糊查询(SQL Server,MySql原理相同)
- hdu 1850 尼姆博弈
- 智能指针
- ViewPager的索引控件
- Fis3 前端工程构建工具