是否有可能在默认情况下禁止命令回显Makefile
?
我知道make
在--silent
模式下运行会这样做,因为它会为每个命令添加前缀@
.
我正在寻找一个我可以包含在 Makefile中的命令或节,省去了乱扔垃圾@
或让用户手动静音的麻烦.
如果你定义目标.SILENT:
,那么make将不会回显任何东西.通常最好保护定义,因此您可以轻松将其关闭:
ifndef VERBOSE .SILENT: endif
现在默认情况下,make将不会打印任何内容,但如果您运行make VERBOSE=1
,它将打印.
请注意,尽管手册中的声明声称.SILENT
已经过时 - 如果保护得当,它通常要比(更有用和更灵活)更好@
.
该.SILENT
目标不应该是第一个对你Makefile
,否则make
将默认使用它.
您可以--silent
在MAKEFLAGS
开头添加变量Makefile
:
MAKEFLAGS += --silent all: echo foobar .PHONY: all
你将拥有:
$ make foobar
根据GNU Make的手册,您可以使用特殊目标.SILENT
注意手册说的那个
.SILENT基本上是过时的,因为'@'更灵活.
但似乎按预期工作.以下代码使所有目标静默.
.SILENT: hoge: echo hoge
以下示例仅对all
目标进行静默
.SILENT: hoge hoge: echo hoge fuga: echo fuga