Normally, when executing the set of rules associated with a target,
make prints each rule before it is executed. This behaviour,
while having been in place for a long time, and being even mandated by
the POSIX standard, starkly violates the “silence is golden” UNIX
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.
In fact, while such verbosity of
make can theoretically be
useful to track bugs and understand reasons of failures right away, it
can also hide warning and error messages from
tools, drowning them in a flood of uninteresting and seldom useful
messages, and thus allowing them to go easily undetected.
This problem can be very annoying, 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.