U-boot 编译学习---make TQ2440_config命令执行过程---在 Makefile 中

转载参考博客:http://www.cnblogs.com/heaad/archive/2010/07/17/1779806.html

下面分析命令“make TQ2440_config”执行过程,为了简化分析过程这里主要分析将编译目标输出到源代码目录的情况。
TQ2440_config :      unconfig
       @$(MKCONFIG) $(@:_config=) arm arm920t TQ2440 samsung s3c24x0
其中的依赖unconfig定义如下:
unconfig:
       @rm -f $(obj)include/config.h $(obj)include/config.mk \
              $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \
              $(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep

其中“@”的作用是执行该命令时不在shell显示。“obj”变量就是编译输出的目录,因此“unconfig”的作用就是清除上次执行make *_config命令生成的配置文件(如include/config.hinclude/config.mk等)。


$(MKCONFIG)在上面指定为“$(SRCTREE)/mkconfig”。$(@:_config=)为将传进来的所有参数中的_config替换为空(其中“@”指规则的目标文件名,在这里就是“TQ2440_config ”。$(text:patternA=patternB),这样的语法表示把text变量每一个元素中结尾的patternA的文本替换为patternB,然后输出) 。因此$(@:_config=)的作用就是将TQ2440_config中的_config去掉,得到TQ2440。


因此“@$(MKCONFIG) $(@:_config=) arm arm920tTQ2440 samsung s3c24x0”实际上就是执行了如下命令:

./mkconfig TQ2440 arm arm920t TQ2440 samsung s3c24x0

即将“TQ2440 arm arm920t TQ2440 samsung s3c24x0”作为参数传递给当前目录下的mkconfig脚本执行。


 mkconfig脚本中给出了mkconfig的用法

# Parameters:  Target  Architecture  CPU  Board [VENDOR] [SOC]

 因此传递给mkconfig的参数的意义分别是:

TQ2440:Target(目标板型号)
arm:Architecture (目标板的CPU架构)
arm920t:CPU (具体使用的CPU型号)
TQ2440:Board
samsung:VENDOR(生产厂家名)
s3c24x0:SOC






发布了115 篇原创文章 · 获赞 21 · 访问量 28万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章