Makefile规则定义中的分号

时间:2012-09-07 17:34:18

标签: makefile

我在Makefile中看到许多规则如下:

$(PATH)/foo.inc:;
include $(PATH)/foo.inc

$(PATH)/bar.inc:;
include $(PATH)/bar.inc

规则定义末尾的分号是无操作还是具有特定含义?

1 个答案:

答案 0 :(得分:16)

具有target-prerequisite的行上的分号是为此规则执行的第一个命令行,至少在GNU make中。

从手册第5章开始:

  

规则的命令由要执行的shell命令行组成   逐一。每个命令行必须以制表符开头,除了   第一个命令行可以附加到目标和先决条件   两行之间用分号排列。

在你的情况下,因为在分号之后没有命令,所以它最终成为无操作。