Follow-up Comment #4, bug #65533 (group make): I cloned the nwchem git repository and my suspicions were correct.
I see many, many instances of recursive variable assignment using $(shell ...) syntax, such as: src/nwc_columbus/sifs/GNUmakefile 38:ALLF = $(filter-out ./sifs_stubs.F, $(shell find . -name '*.F')) (this is just one example there are 300+ spread across the makefiles). At the same time I see that various makefiles are forcing all variable assignments to be exported; for example: src/peigs/src/c/Makefile.proto:.EXPORT_ALL_VARIABLES: There are also instances of .EXPORT_ALL_VARIABLES in some Makefiles, but these are probably not a problem because the Makefiles appear to be for BSD make (GNUmakefile is used for GNU Make). So, there appear to be about 5 makefiles that have this setting. But, when the Makefile.proto above is included in another makefile, that sets that parameter for every make instance that includes it. The simplest solution here is to go through and remove all those .EXPORT_ALL_VARIABLES: settings. This is just a very bad idea. If there are specific variables that need to be exported then those, and only those, should be exported. Unfortunately there is not any simple solution right now, except either fix the makefiles or else limit your version of GNU Make to 4.3 or earlier before this change was made. I have been thinking about how to mitigate this issue and I just don't have any good ideas. There doesn't seem to be any good heuristic we can use to avoid the behavior without also introducing bizarre and unexplainable edge cases. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?65533> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/