Hi Paul, On 1/28/22 23:49, Paul Smith wrote: > On Fri, 2022-01-28 at 01:09 +0100, Alejandro Colomar (man-pages) wrote: >> I'd like make to warn about this. It took me a while to debug >> a Makefile bug, which I thought was not happening, since make should >> have warned me. Isn't this supposed to trigger the warning? > > In previous versions of GNU make, the value of MAKEFLAGS set inside a > makefile is only re-parsed once before all makefiles are read (from the > environment) and again after all makefiles are read. > > So, changes to this variable within the makefile don't take effect > until after all makefiles are parsed. In your situation the variable > in question is part of a prerequisite list and that's expanded while > parsing the makefile, so the option is not set yet and you don't get > warnings. Undefined variables used in a recipe WOULD be warned about > since recipes are expanded after all makefiles are parsed. > > To make this option do what you want you must pass it in either via the > command line: > > $ make --warn-undefined-variables > > or the environment: > > $ MAKEFLAGS=--warn-undefined-variables make > > or: > > $ GNUMAKEFLAG=--warn-undefined-variables make > > In the next release of GNU make, this has been changed; from the NEWS > file: > > * If the MAKEFLAGS variable is modified in a makefile, it will be re-parsed > immediately rather than after all makefiles have been read. Note that > although all options are parsed immediately, some special effects won't > appear until after all makefiles are read.
Sounds like good news :) I'll be waiting for that release! Cheers, Alex -- Alejandro Colomar Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/ http://www.alejandro-colomar.es/