%% [EMAIL PROTECTED] writes: rm> I've run into a functional difference between the standard unix rm> make and GNUmake (3.80) involving how the :: rules are processed.
By "standard unix make" you seem to mean SystemV make. Note that the only official Standard-with-a-capital-S (recognized by the FSF and GNU project) for make is the POSIX standard. The POSIX standard doesn't address this issue (it doesn't address parallelism at all). SystemV make is, at best, a de facto standard, and there are plenty of other (incompatible) versions of make out there. In fact, GNU make is not intended to be a drop-in replacement for SystemV make and there are _several_ points at which the behavior of the two versions diverge. rm> In the standard unix make (Solaris), the :: targets ( i.e., all::) rm> are process in the order they are found in the Makefile serially, rm> regardless of whether parallelism is used (i.e., -jN, where N is > rm> 1). rm> In GNUmake (3.80), the when -j1 is used, the "::" targets are rm> executed serially. When -jN is used the "::" targets are executed rm> in parallel. GNU make's behavior here is exactly in keeping with the definition of double-colon rules in the GNU make manual, which states: > 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 prerequisites of that rule. If there are no prerequisites for that > rule, its commands are always executed (even if the target already > exists). 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. If you think a different set of behavior is desirable, the best thing is probably to file an enhancement request on the Savannah (https://savannah.gnu.org/) project page for GNU make and someone will look at it. Cheers! -- ------------------------------------------------------------------------------- Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at: http://www.gnu.org http://make.paulandlesley.org "Please remain calm...I may be mad, but I am a professional." --Mad Scientist _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make