1、@ $
archclean:
@$(MAKEBOOT) clean
或者
checkbin:
@ /bin/ture
@ true
这里面
@$和@代表着什么意思啊?
$(MAKEBOOT) 是变量 MAKEBOOT 的值,
@表示在make时不输出make的信息(类似Windows下的echo off)。
2、$(@:_config=)
这里使用了Makefile中的替换引用规则,类似常看到的例子obj=$(srcfiles:%.c=%.o): 由.c得到对应的.o文件.
这里是一样的道理:
smdk2410_config : unconfig
但有一点不明白@代表目标吗?印象里好像是$@ 才代表目标,做了个测试 “
all:
所以我认为符号@在$()中和$@是一样的
2.1. 目标 :依赖
做了个测试证明可以:
在外面建立一个makecfg
在makefile里
all:
输入命令makeall
就会输出 i am here!
本段摘自:http://blog.sina.com.cn/s/blog_89fa41ef0100t6bj.html
:=不递归赋值
= 递归赋值
?=默认值
“:=” 的意思是,它右边赋得值如果是变量,只能使用在这条语句之前定义好的,而不能使用本条语句之后定义的变量;
于此对应的是“=”,当它的右边赋值是变量时,这个变量的定义在本条语句之前或之后都可以;
而“?=”是指,该符号左边的变量,如果在本条语句之前没有定义过,则执行本语句,如果已经定义,那么本语句什么都不做