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