$(@_config=)什么意思?

1.  $(@:_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 

但有一点不明白@代表目标吗?印象里好像是$@ 才代表目标,做了个测试 “

all:

   @echo $@   输出是all

   @echo @    输出是@

   @echo $(@) 输出是all

所以我认为符号@在$()中和$@是一样的

2. 目标 :依赖

        命令

  命令是否可以直接是一个文件名?

做了个测试证明可以:

在外面建立一个makecfg  里面输入 echo i am here !

在makefile 里

all:

    @(路径/makecfg)

 

输入命令make all

就会输出 i am here !

 

其中unconfig是:

 

 

posted @ 2013-07-27 09:46  dolinux  阅读(978)  评论(0编辑  收藏  举报