通常规则的语法格式如下:
TARGETS : PREREQUISITES
COMMAND
...
或者是这样:
TARGETS : PREREQUISITES ; COMMAND
COMMAND
...
规则中“ TARGETS”可以是空格分开的多个文件名,也可以是一个标签(如执行清空的“clean”)。
“TARGETS”的文件名可以使用通配符。通常规则只有一个目标文件,偶尔会在一个规则中需要多个目标。
规则的命令部分有两种书写方式:
a. 命令可以和目标:依赖描述放在同一行。命令在依赖文件列表后并使用分号和依赖文件列表分开。
b. 命令在目标:依赖的描述的下一行,作为独立的命令行。当作为独立的命令行时,此行必须以Tab字符开始。
备注:在 Makefile 中,在第一个规则之后出现的所有以[Tab]字符开始的行都会被当作命令来处理。
一个规则告诉“make”两件事:
1. 目标在什么情况下已经过期;
2. 在需要重建目标的时候,怎么样去重建这个目标。
目标是否过期是由规则的依赖文件所决定的。当目标文件不存在或者目标文件的最后修改时间比依赖文件中的任
何一个都晚,则目标就会被创建或者重建。也就是说执行规则命令行的前提条件是:
(1)目标文件不存在;
(2)存在一个依赖的最后修改时间比目标的最后修改时间晚。
规则的中心思想就是: 目标文件的内容是由依赖文件文件决定,依赖文件的任何一处改动,将导致目前已经存在的目标文件的内容过期。 规则的命令为重建目标提供了方法。这些命令运行在系统 shell 之上。
makefile规则语法
最新推荐文章于 2022-02-03 19:53:08 发布