bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #62469] Make honors MAKEFLAGS=<value> definition on the command lin


From: Dmitry Goncharov
Subject: [bug #62469] Make honors MAKEFLAGS=<value> definition on the command line.
Date: Wed, 25 May 2022 22:08:38 -0400 (EDT)

Follow-up Comment #2, bug #62469 (project make):

> I'm confident a lot of makefiles do do this, and although it's not a good
idea I don't know that we want to break them.

i agree, that we don't want to break existing makefiles. i also think, that a
build system which relies on a MAKEFLAGS=<value> cli definition is already
broken.


> Also, unfortunately the POSIX spec is not very clear on this point but as
far as I can tell it's not _disallowed_ there which means that it might be a
violation of POSIX.

posix description of makeflags is quite complicated, but as far as i can
decipher it, this piece instructs make to ignore MAKEFLAGS=<value> cli
definition.

"Before the makefile(s) are read, all of the make utility command line macro
definitions (except the MAKEFLAGS macro or the SHELL macro) shall be added to
the environment of make.".

i tested 5 implementations of make.

These are the questions
q1. Does MAKEFLAGS=<value> makefile defn affect topmake behavior?
q2. Does MAKEFLAGS=<value> makefile defn affect submake behavior?
q3. Does MAKEFLAGS=<value> cli defn affect topmake behavior?
q4. Does MAKEFLAGS=<value> cli defn affect submake behavior?

Here are the answers

++++
               q1     q2      q3     q4
sun make       no     yes     no     no
svr4 make      no     yes     no     no
aix make       no     yes     no     no
bmake          no     no      no     no
gmake          yes    yes     yes    yes
----


bmake does not honor MAKEFLAGS=<value> defn in the makefile. Instead, bmake
honors .MAKEFLAGS: special target.


> I'll need to think about the best way forward.

i think we can either
1. Keep the current behavior intact and possibly add a warning to the manual
that cli MAKEFLAGS=<value> defn wipes out cli flags.
or
2. Ignore cli MAKEFLAGS=<value> defn. This is what the attached patch does.

i think, we should not legalize MAKEFLAGS=<value> cli definition and should
not add code to allow MAKEFLAGS=<value> cli definition to be merged with cli
flags.



    _______________________________________________________

Reply to this item at:

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

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]