Certain names have special meanings if they appear as targets.
.PHONY
.PHONY
are considered to
be phony targets. When it is time to consider such a target,
make
will run its commands unconditionally, regardless of
whether a file with that name exists or what its last-modification
time is. See section Phony Targets.
.SUFFIXES
.SUFFIXES
are the list
of suffixes to be used in checking for suffix rules.
See section Old-Fashioned Suffix Rules.
.DEFAULT
.DEFAULT
are used for any target for
which no rules are found (either explicit rules or implicit rules).
See section Defining Last-Resort Default Rules. If .DEFAULT
commands are specified, every
file mentioned as a dependency, but not as a target in a rule, will have
these commands executed on its behalf. See section Implicit Rule Search Algorithm.
.PRECIOUS
.PRECIOUS
depends on are given the following
special treatment: if make
is killed or interrupted during the
execution of their commands, the target is not deleted.
See section Interrupting or Killing make
.
Also, if the target is an intermediate file, it will not be deleted
after it is no longer needed, as is normally done.
See section Chains of Implicit Rules.
You can also list the target pattern of an implicit rule (such as
`%.o') as a dependency file of the special target .PRECIOUS
to preserve intermediate files created by rules whose target patterns
match that file's name.
.IGNORE
.IGNORE
, then make
will
ignore errors in execution of the commands run for those particular
files. The commands for .IGNORE
are not meaningful.
If mentioned as a target with no dependencies, .IGNORE
says to
ignore errors in execution of commands for all files. This usage of
`.IGNORE' is supported only for historical compatibility. Since
this affects every command in the makefile, it is not very useful; we
recommend you use the more selective ways to ignore errors in specific
commands. See section Errors in Commands.
.SILENT
.SILENT
, then make
will
not the print commands to remake those particular files before executing
them. The commands for .SILENT
are not meaningful.
If mentioned as a target with no dependencies, .SILENT
says not
to print any commands before executing them. This usage of
`.SILENT' is supported only for historical compatibility. We
recommend you use the more selective ways to silence specific commands.
See section Command Echoing. If you want to silence all commands
for a particular run of make
, use the `-s' or
`--silent' option (see section Summary of Options).
.EXPORT_ALL_VARIABLES
make
to
export all variables to child processes by default.
See section Communicating Variables to a Sub-make
.
Any defined implicit rule suffix also counts as a special target if it appears as a target, and so does the concatenation of two suffixes, such as `.c.o'. These targets are suffix rules, an obsolete way of defining implicit rules (but a way still widely used). In principle, any target name could be special in this way if you break it in two and add both pieces to the suffix list. In practice, suffixes normally begin with `.', so these special target names also begin with `.'. See section Old-Fashioned Suffix Rules.