如何在Makefile本身中指定--no-print-directory

时间:2011-11-06 15:40:01

标签: makefile gnu-make

我想在没有通过递归make调用打开-w标志的情况下运行我的makefile。 执行此操作的标志是make命令行上的--no-print-directory。

是否可以在makefile中指定该标志?

我打算让这个标志依赖于VERBOSE模式,也许类似于

$(if $(VERBOSE),,MAKEFLAGS += no-print-directory))

谢谢, 丹

2 个答案:

答案 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中的每个命令之前@