Follow-up Comment #2, bug #61226 (project make): Hm. I'm not a fan of this solution. I really don't like having make do different things depending on the content of recipes, even empty vs. not empty.
Additionally, this is just a special case; it could be the case that we need to actually have some recipe invoked, but then the recipe decides that there is nothing to do for some reason and doesn't create the file. One simple example is that some makefiles use the shell no-op target ":" rather than an empty recipe, just to be more clear about what's happening; like this: hello.d: ; @: If we don't consider, for the moment, backward compatibility, would it be more correct and work properly to suggest that people should use -include in situations where they don't want an error if the included file is not actually rebuilt? hello.o: hello.d; touch $@ $< hello.d:; -include hello.d Of course even if this is the best answer it's not acceptable from a backward-compatibility standpoint to break this common usage, at least not immediately. I think perhaps at least some of the change in the previous fix might need to be reverted, although I'm not sure the entire thing needs to be. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?61226> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/