Am Samstag, 20. Januar 2007 20:49 schrieb Paul Smith: > No, both are correct. > > In the non-parallel case, make examines the first target and its > prerequisites and sees that it needs to be rebuilt, so it runs the rule. > The rule updates the first target and also updates the other targets. > > Next make looks at the second target and its prerequisites and sees that > it does NOT need to be rebuilt (because it is newer than all the > prerequisites, since it was just updated). So it's not rebuilt. Etc. > > In the parallel case, make does exactly the same thing EXCEPT that > instead of waiting for the first command to complete it immediately > checks the second target and, since the first command is not done yet > and hasn't updated it, make sees that it's still out of date so it runs > that rule again to update it.
So the left hand doesn't know what the right hand does? I consider this a bad
thing.
> In the parallel case you can't tell exactly what will happen: it depends
> on your system; how busy it is, what order the various jobs are
> scheduled by the OS, how long the command takes to execute, etc. It
> could work perfectly, or it could be run twice, or more times (if there
> are more than two targets).
That's even worse.
Thank you very much for this explanation.
Bye...
Dirk
pgpb908DkGCP9.pgp
Description: PGP signature
_______________________________________________ Bug-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-make
