Update of bug #56778 (project make):

                  Status:                    None => Not A Bug              
             Open/Closed:                    Open => Closed                 

    _______________________________________________________

Follow-up Comment #1:

Questions like this about how make works are best asked on the mailing lists,
such as bug-make@gnu.org or help-m...@gnu.org, rather than being reported as
bugs in the bug tracker.

This is expected behavior.  The details of why this happens are described in
https://www.gnu.org/software/make/manual/html_node/MAKE-Variable.html and look
up this error in the section
https://www.gnu.org/software/make/manual/html_node/Error-Messages.html

Basically in Makefile4 you have a rule like this:


all:
        $(my_rule)


the string $(my_rule) doesn't have an immediate reference to the $(MAKE)
variable so as far as make is concerned, this recipe does not invoke a
recursive make instance.

To tell make that it _does_ perform a recursive make instance, and thus avoid
the warning, you need to use the special + character.  You can either prefix
the variable reference in the recipe, like this:


all:
        +$(my_rule)


Or include it inside the define like this:


define my_rule
  +$(MAKE) -f $(lastword $(MAKEFILE_LIST)) SUB-MAKE=1 hello
endef


(note the TAB is not needed here because you already have a TAB before the
recipe where the $(my_rule) variable appears... you can include it or not it
doesn't matter).

    _______________________________________________________

Reply to this item at:

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

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


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to