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
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, 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.