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 Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make