- Makefile必须要以[Tab]键开始。并且和Shell一样一条条执行。
- 规则包括依赖关系和生产目标的方法。
- 规则的顺序非常重要,第一条规则中的目标会被定为终极目标。如果第一条规则中有多个目标,那么第一个目标会成为终极目标。
- 支持shell中的通配符“*”,“?”和“[...]”。
- 指明查找路径使用“VPATH”。例:VPATH = src:../headers(冒号是分隔符),先在当前目录找, 然后在src目录和上一级目录的headers目录中找。
- .PHONY用来指定一个目标是伪目标,类似于标签,避免和文件名重名。
例子:
aout bout:text.g
generate text.g -$(subst output,,$@)>$@
等价于:
outa:text.g
generate text.g -a > aout
outb:text.g
generate text.g -b > bout
-$(subst output,,$@)>$@ 第一个$表示执行一个Makefile函数,函数名为subst,output为函数参数,这个函数的作用是截取字符串。$@表示目标集合,本例中的集合包括aout bout。
未完待续...