Follow-up Comment #2, bug #17881 (project make): Actually, make _does_ guarantee that rules will be processed in left-to-right order. If you never use parallelism, you can be sure your rules will always run in that order.
If you do use parallelism, though, obviously more than one of these rules will run at the same time. Even though make still starts them in left-to-right order in the makefile, it's up to your operating system to schedule the programs. In this case it's almost certain that commands to build the second target will start before the commands to build the first have completed. I'm sure you're aware of this. However, saying the order is "insignificant" is not exactly correct. Saying that it is unreliable during parallel builds is better. As for Howard's suggestion, that suggestion has been made before and I think it's a good one. However, it's not completely trivial to implement. For one thing, we can't afford to change the values of variables such as $<, or even $^ in some cases, so make would have to keep a separate list of "prereqs to run" vs. "prereqs used in automatic variables". _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?17881> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make