我知道我们可以在all, clean, install
中设置makefile
等命令,并使用.PHONY
告诉make they're not associated with files。
但我想知道 - 在创建make和makefile时 - 这种用法(运行这样的命令)与为此目的而设计的.PHONY
结合使用了吗?或者可能稍后添加.PHONY
以轻松扩展make以支持这些命令?
我还阅读this但除了常规的已知用法之外,其他任何内容都没有。
谢谢!
答案 0 :(得分:1)
我不知道GNU make的历史。
使用.PHONY
正是您所怀疑的:拥有目标(因此可以是目标,或命令,如果您愿意)不是文件,并且即使偶然的文件也是如此存在相同的名称。这是一个单一且明确定义的目的。
在某些情况下,您希望强制重新构建目标文件,即使它是最新的,并且您可以为此目的将其声明为.PHONY
的先决条件,但它通常是表明你的makefile不是它应该的样子。
另一个常见的情况是将几个目标(真实或虚假)分组为一个其他虚假目标的先决条件。
但在这两种情况下,我们可以说最终的假目标是一种命令。在第一种情况下,它是一个强制构建文件的命令。在第二种情况下,它是一系列行动的别名。