如何使用automake启用安静构建?

时间:2013-07-02 09:10:59

标签: automake

想象一下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内核的构建输出):

quiet_cmd_cc = CC     $@
      cmd_cc = $(autoconf-command-for-c-o)

.c.o:
    $(call cmd,cc)

cmd是一个执行cmd_$1并根据变量打印quiet_cmd_$1cmd_$1的函数。

我在互联网上寻找这个,但大多数网站都谈到了autoconf的基础知识。这里似乎没有任何与此相关的问题。

这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

Per chirlu's comment,automake可以选择生成安静的输出版本。

This page有必要的说明。简而言之,请将以下内容放入configure.ac

AM_SILENT_RULES([yes])

要禁用它,请执行以下操作:

make V=0

配置后,或:

./configure --enable-silent-rules

配置。

答案 1 :(得分:0)

您始终可以将输出通过管道传递到/ dev / null:

./configure 2>&1 >/dev/null
make 2>&1 >/dev/null