原创
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"
文章评论(0条评论)
登录后参与讨论