当前位置: 技术问答>linux和unix
问个makefile的问题啊?求助!
来源: 互联网 发布时间:2016-05-09
本文导语: smdk2410_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0 MKCONFIG 是顶层目录下的mkcofig脚本文件,后面五个是传入的参数。 这是u-boot里的makefile 其中$(@:_config=) 这块是什么意思啊 语法这么怪??????? ...
smdk2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
MKCONFIG 是顶层目录下的mkcofig脚本文件,后面五个是传入的参数。
这是u-boot里的makefile
其中$(@:_config=) 这块是什么意思啊 语法这么怪???????
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
MKCONFIG 是顶层目录下的mkcofig脚本文件,后面五个是传入的参数。
这是u-boot里的makefile
其中$(@:_config=) 这块是什么意思啊 语法这么怪???????
|
这里使用了Makefile中的替换引用规则,类似常看到的例子 obj=$(srcfiles:%.c=%.o): 由.c得到对应的.o文件.
这里是一样的道理:
$(@:_config=)
@代表的是target smdk2410_config, 那么$(@:_config=)就是将smdk2410_config中的_config替换为空!得到smdk2410; 你可以用echo自己打印出来看看就明白了!
smdk2410_config : unconfig
@echo $(@:_config=) # 打印出来看看吧
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
good luck!
这里是一样的道理:
$(@:_config=)
@代表的是target smdk2410_config, 那么$(@:_config=)就是将smdk2410_config中的_config替换为空!得到smdk2410; 你可以用echo自己打印出来看看就明白了!
smdk2410_config : unconfig
@echo $(@:_config=) # 打印出来看看吧
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
good luck!
|
smdk2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
lz 没加 TAB 吧
$(@:_config=) 分为两部分
一是 $@ 取得的目标文件,即 smdk2410_config
二是 $(@:_config=) 中进行了替换,将 _config 替换为空,即删除