I think I've found a bug in make 3.79.1. The make documentation
suggests that rule execution order may differ when run with --jobs=n
where n>1, but it doesn't say that rule evaluation should differ.
Consider the makefile
d: c
@echo d
c:: b
@touch c; echo b
c:: a
@touch c; echo a
The evaluation of the c:: rules can and does differ depending on the
number of jobs. I've seen this behavior on a few different
platforms: Linux and BeOS, both PPC and X86.
$ make d
b
a
d
$ rm c; make -j 2 d
b
d
So it appears that evaluation of the c:: a rule doesn't occur until
after the c:: b rule has executed.
Interestingly, if the intermediate target c is specified, the two
cases execute identically.
$ make c
b
a
$ m c; make -j 2 c
b
a
In this case, both rules appear to have been evaluated before either executes.
Regards,
-- Scott Lindsey <[EMAIL PROTECTED]>
--
Scott Lindsey <[EMAIL PROTECTED]>
_______________________________________________
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make