21.1 Make is verbose by default

Normally, when executing the set of rules associated with a target, make prints each rule before it is executed. This behavior, despite having been in place since the beginning of make, and being mandated by the POSIX standard, starkly violates the “silence is golden” UNIX principle5:

When a program has nothing interesting or surprising to say, it should say nothing. Well-behaved Unix programs do their jobs unobtrusively, with a minimum of fuss and bother. Silence is golden.

The traditional verbosity of make is understandable, as it is useful, often necessary, in order to understand reasons of failures. However, it can also hide warning and error messages from make-invoked tools, drowning them in uninteresting and seldom useful messages, and thus allowing them to easily go undetected.

This can be quite problematic, especially for developers, who usually know quite well what’s going on behind the scenes, and for whom the verbose output from make ends up being mostly noise that hampers the easy detection of potentially important warning messages.

So Automake provides some support for silencing make.


Footnotes

(5)

See also http://catb.org/~esr/writings/taoup/html/ch11s09.html.