EC1186

1 minute readReference

Synopsis

#pragma multi double-colon rules are not supported.

Description

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 needed. So #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.

Furthermore, #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.

Reasons

You applied #pragma multi to a double-colon rule.

Fixes

Drop #pragma multi from the double-colon rule. If, however, you have an idea of what it should mean in this case, and have considered the problems mentioned above, then contact CloudBees to make a feature request.