Follow-up Comment #4, bug #60595 (project make):

Thanks for the description.  Here's a much simpler repro case:


all: ; @echo RESTARTS=$(MAKE_RESTARTS)

m1.d: ; touch $@

m2.d: m1.d ; test -f $< || touch $@

include m2.d m1.d


If you run this makefile with:


rm -f m?.d && make


it will correctly restart make and print RESTARTS=1.

If you change the last line to reverse the order of include:


include m1.d m2.d


then it will not restart make and print RESTARTS=.

As a note when we do fix this problem the above makefile will fail on the
"include" line after the restart because the rule that says it built m2.d
actually didn't.  I assume in your real makefile you've accounted for this and
something does build the target makefile (or maybe you include it with
"-include").

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?60595>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply via email to