Next: Execution, Previous: Command Syntax, Up: Commands
Normally make
prints each command line before it is executed.
We call this echoing because it gives the appearance that you
are typing the commands yourself.
When a line starts with `@', the echoing of that line is suppressed.
The `@' is discarded before the command is passed to the shell.
Typically you would use this for a command whose only effect is to print
something, such as an echo
command to indicate progress through
the makefile:
@echo About to make distribution files
If however one is tracing or in the midst of debugging it is useful to not be silent. So tracing and debugging take precedence over “silence”.
When make
is given the flag `-n' or `--just-print'
it only echoes commands, it won't execute them. See Summary of Options. In this case and only this case, even the
commands starting with `@' are printed. This flag is useful for
finding out which commands make
thinks are necessary without
actually doing them.
The `-s' or `--silent' flag to make
prevents all
echoing (unless tracing is in effect which has precedence). Using the
`--silent' flag as if all commands started with `@'. A
rule in the makefile for the special target .SILENT
without
prerequisites has the same effect (see Special Built-in Target Names). .SILENT
is essentially obsolete since
`@' is more flexible.