我想在没有通过递归make调用打开-w标志的情况下运行我的makefile。 执行此操作的标志是make命令行上的--no-print-directory。
是否可以在makefile中指定该标志?
我打算让这个标志依赖于VERBOSE模式,也许类似于
$(if $(VERBOSE),,MAKEFLAGS += no-print-directory))
谢谢, 丹
答案 0 :(得分:7)
是的,只需将--no-print-directory
添加到MAKEFLAGS
即可,但您必须使用conditional directives,而不是conditional functions:
ifndef VERBOSE
MAKEFLAGS += --no-print-directory
endif
答案 1 :(得分:0)
您可以在调用makefile中包含.SILENT:
特殊目标。例如,这是你的顶级makefile:
all:
$(MAKE) -f sub.mk foo
.SILENT:
和submake makefile,sub.mk:
foo:
@echo done
请注意.SILENT
is considered obsolete,所以它可能不会永远存在,并且还要注意在makefile中包含它也具有抑制命令回声的效果,就像你放了在makefile中的每个命令之前@
。