Follow-up Comment #2, bug #58734 (project make): > either the program is run twice
This can only happen if parallel mode is enabled, and is the correct behavior assuming you've written your rule like this: one two: three ; touch one two This means the same thing as: one: three ; touch one two two: three ; touch one two (this interpretation is required by the POSIX standard). If parallelism is enabled make may see that two is out of date before one finishes updating it, and so it will run the rule twice. In serial mode this should never happen (I've never seen it happen): if you see it please give an example. > or a depending rule that needs the created file incorrectly complains that the file does not exist. I've never seen this happen either: please provide an example. The only possible reason this could happen would be due to directory caching but I don't think so. If you want to declare a rule that builds multiple outputs, and you have GNU make 4.3 or above, you can use the new "&:" separator to tell make that one invocation will build both targets: one two &: three ; touch one two _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?58734> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/