原创 u-boot mkconfig文件解析

2011-7-2 15:23 2096 7 7 分类: 工程师职场
mini2440_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0

unconfig:
@rm -f $(obj)include/config.h $(obj)include/config.mk \
  $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp
其实这部分的功能就是删除一些文件

@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0
这部分$(@:_config)没看懂,后来在网上查到了一些高人的解释:

这里使用了Makefile中的替换引用规则,类似常看到的例子 obj=$(srcfiles:%.c=%.o): 由.c得到对应的.o文件.

这里是一样的道理:
 $(@:_config=)  
 
 @代表的是target mini2440_config, 那么$(@:_config=)就是将mini2440_config中的_config替换为空!得到mini2440; 你可以用echo自己打印出来看看就明白了!  

mini2440_config : unconfig
  @echo $(@:_config=) # 打印出来看看吧
  @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 charming s3c24x0  

MKCONFIG其实就是根目录的脚本文件,这句的目的就是给脚本传递六个参数
所以上面的其实就是./mkconfig mini2440 arm arm920t mini2440 charming s3c24x0

在include文件夹下建立相应的文件(夹)软连接,

#如果是ARM体系将执行以下操作:
#ln -s     asm-arm        asm  

#ln -s  arch-s3c24x0    asm-arm/arch 
#ln -s   proc-armv       asm-arm/proc

生成Makefile包含文件include/config.mk,内容很简单,定义了四个变量:

ARCH   = arm
CPU    = arm920t
BOARD  = mini2440

VENDOR = tekkamanninja
SOC    = s3c24x0

生成include/config.h头文件,只有两行:

/* Automatically generated - do not edit */
#include "configs/mini2440.h"

#include"asm/config.h"


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条