1 | target ... : prerequisites ... |
target
可以是一个object file(目标文件),也可以是一个执行文件,还可以是一个标签(label)。对 于标签这种特性,在后续的“伪目标”章节中会有叙述。
prerequisites
生成该target所依赖的文件和/或target
command
该target要执行的命令(任意的shell命令)
$<
表示所有的依赖 目标集 , $@
表示目标集
每条命令的 开头必须以 Tab
键开头,除非,命令是紧跟在依赖规则后面的分号后的。
在Makefile的命令行前加一个减号 -
(在Tab键之后) ,标记为不管命令出不出错都认为是成功的
变量的赋值及使用
1 | objects = program.o foo.o utils.o |
条件判断
1 | <conditional-directive> |
其中 <conditional-directive>
表示条件关键字 ,包括ifeq
、ifneq
、ifdef
、ifndef
函数调用
1 | $(<function> <arguments>) |