想象一下以下由autoconf生成的目标和命令:
.c.lo:
$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
我正在Makefile.am中寻找一种操作该命令的方法,因为它知道该命令是由autoconf生成的,但我不知道它是什么。从理论上讲,类似这样:
if BUILD_QUIETLY
Q=@
endif
.c.lo:
$(Q)$(autoconf-command-for-c-lo)
或者类似这样的东西(这类似于Linux内核的build输出):
quiet_cmd_cc = CC $@
cmd_cc = $(autoconf-command-for-c-o)
.c.o:
$(call cmd,cc)
cmd
是执行cmd_$1
并根据变量打印quiet_cmd_$1
或cmd_$1
的功能。
我在互联网上寻找的,但是大多数网站都谈论autoconf的基础。这里似乎也没有与此相关的任何问题。
这甚至有可能吗?
每chirlu's comment,automake可以选择生成安静的输出版本。
This page具有必要的说明。简而言之,将以下内容放入configure.ac
:
AM_SILENT_RULES([yes])
要禁用它,请执行以下操作:
make V=0
配置后,或:
./configure --enable-silent-rules
根据配置。
您总是可以将输出通过管道传递到/ dev / null:
./configure 2>&1 >/dev/null
make 2>&1 >/dev/null