975
Static Pattern Rules versus Implicit Rules
An implicit rule can apply to any target that matches its pattern, but it does apply only when the target has no commands otherwise specified, and only when
the dependencies can be found. If more than one implicit rule appears
applicable, only one applies; the choice depends on the order of rules.
By contrast, a static pattern rule applies to the precise list of targets that
you specify in the rule. It cannot apply to any other target and it invariably
does apply to each of the targets specified. If two conflicting rules apply,
and both have commands, that’s an error. The static pattern rule can be better
than an implicit rule for the following reasons.
You may wish to override the usual implicit rule for a few files whose names
cannot be categorized syntactically but can be given in an explicit list.
If you cannot be sure of the precise contents of the directories you are
using, you may not be sure which other irrelevant files might lead make to use the
wrong implicit rule. The choice might depend on the order in which the implicit
rule search is done. With static pattern rules, there is no uncertainty: each
rule applies to precisely the targets specified.