Currently, a meaning is not assigned to
#pragma multi for
double-colon rules; that combination is reserved for a possible future
version of CloudBees Build Acceleration.
Multiple double-colon rules may share the same target; all of the
commands run. Typically they are used for targets such as “clean”, and
imply an extensible collection of actions to be taken when their target
is requested. By contrast, the point of
#pragma multi is to run the
commands in question only once, even if more than one of its targets is
#pragma multi tends to reduce the number of commands run,
whereas double-colon rules are used to run more and more commands, often
with the collection growing as more makefile inclusions are performed.
Thus, the goals of the two features are at least superficially at odds.
#pragma multi requires agreement on target sets and
prerequisite lists, and that could be quite difficult to coordinate in
an extensible collection of rules such as a family of double-colon rules
with overlapping targets.