888
Double-Colon Rules
When a target appears in multiple rules, all the rules must be the same type:
all ordinary, or all double-colon. If they are double-colon, each of them is
independent of the others. Each double-colon rule’s commands are executed if the
target is older than any dependencies of that rule. This can result in
executing none, any, or all of the double-colon rules.
Double-colon rules with the same target are in fact completely separate from
one another. Each double-colon rule is processed individually, just as rules
with different targets are processed.
The double-colon rules for a target are executed in the order they appear in
the makefile. However, the cases where double-colon rules really make sense are
those where the order of executing the commands would not matter.
Double-colon rules are somewhat obscure and not often very useful; they
provide a mechanism for cases in which the method used to update a target differs
depending on which dependency files caused the update, and such cases are rare.
Each double-colon rule should specify commands; if it does not, an implicit
rule will be used if one applies. See