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
.