默认情况下是否可以从Makefile内部抑制命令回显?

我知道以make模式运行--silent会做到这一点,每个命令都以@前缀。

我正在寻找一个命令或节,我可以在Makefile的中包含,从而省去了用@乱扔一切或让用户手动使一切静音的麻烦。

最佳答案

如果定义目标.SILENT:,那么make将不会回显任何内容。通常最好保护定义,因此您可以轻松地将其关闭:

ifndef VERBOSE
.SILENT:
endif

现在默认情况下,make将不打印任何内容,但是如果您运行make VERBOSE=1,它将进行打印。

请注意,尽管手册中的声明声称.SILENT已过时-如果得到适当保护,它通常比@好得多(更有用,更灵活)。
.SILENT目标不应是Makefile上的第一个,否则make将默认使用它。

07-24 22:24