Makefile - 创建make时是否使用.PHONY运行命令?

时间:2017-08-10 06:13:36

标签: makefile

我知道我们可以在all, clean, install中设置makefile等命令,并使用.PHONY告诉make they're not associated with files

但我想知道 - 在创建make和makefile时 - 这种用法(运行这样的命令)与为此目的而设计的.PHONY结合使用了吗?或者可能稍后添加.PHONY以轻松扩展make以支持这些命令?

我还阅读this但除了常规的已知用法之外,其他任何内容都没有。

谢谢!

1 个答案:

答案 0 :(得分:1)

我不知道GNU make的历史。

使用.PHONY正是您所怀疑的:拥有目标(因此可以是目标,或命令,如果您愿意)不是文件,并且即使偶然的文件也是如此存在相同的名称。这是一个单一且明确定义的目的。

在某些情况下,您希望强制重新构建目标文件,即使它是最新的,并且您可以为此目的将其声明为.PHONY的先决条件,但它通常是表明你的makefile不是它应该的样子。

另一个常见的情况是将几个目标(真实或虚假)分组为一个其他虚假目标的先决条件。

但在这两种情况下,我们可以说最终的假目标是一种命令。在第一种情况下,它是一个强制构建文件的命令。在第二种情况下,它是一系列行动的别名。