TQ2440之U-Boot-1.1.6之顶层Makefile分析一

       分析U-Boot或者是分析Linux内核这些庞大的代码量时,我们应该首先去阅读它的顶层Makefile文件,它会告诉你,这些如何编译这么一系列的文件。这就如同你去到一个陌生的大城市,首先你要买一张地图,才能更好的去了解这座城市。进入顶层的Makefile里面有那么二句

1884  EmbedSky_config : unconfig
1885       @$(MKCONFIG) $(@:_config=) arm arm920t EmbedSky NULL s3c24x0

这是Makefile最基础语法之一,在语法上来说,EmbedSky_config是一个目标,unconfig是一个依赖,

@$(MKCONFIG) $(@:_config=) arm arm920t EmbedSky NULL s3c24x0就是一个命令。

 

unconfig:

             @rm -f $(obj)include/config.h $(obj)include/config.mk \   $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp

@$(MKCONFIG) $(@:_config=) arm arm920t EmbedSky NULL s3c24x0

 $(@:_config=) 是什么意思呢?

这语法是利用了Makefile的替换功能,如:obj=$(srcfiles:%.c=%.o)就是将源文件里面的.c文件替换成.o文件,相对应的,$(@:_config=)就相当于$(EmbedSky_config:_config=) 将EmbedSky_config中的_config=空,也就是去掉_config,得到EmbedSky

MKCONFIG其实就是根目录的脚本文件,这句的目的就是给脚本传递六个参数 所以上面的其实就是

./mkconfig  EmbedSky   arm   arm920t   EmbedSky  NULL   s3c24x0

    $0              $1              $2      $3                $4            $5        $6

接下来就分析顶层目录下的mkconfig这个脚本文件大笑

 

你可能感兴趣的:(TQ2440之U-Boot-1.1.6之顶层Makefile分析一)