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/


  • [bug #61226] ... Dmitry Goncharov
    • [bug #61... Dmitry Goncharov
      • [bug... Dmitry Goncharov
        • ... Paul D. Smith
          • ... Dmitry Goncharov
            • ... Paul D. Smith
              • ... Dmitry Goncharov
                • ... Dmitry Goncharov
                • ... Dmitry Goncharov
                • ... Paul D. Smith
                • ... Dmitry Goncharov
                • ... Britton Kerin
                • ... Dmitry Goncharov via Bug reports and discussion for GNU make
                • ... Britton Kerin

Reply via email to