Next: , Previous: Command Syntax, Up: Commands

5.2 Command Echoing

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.