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