Hello, to pass down *all* environment variables given on cmdline to sub-makes, I used to write
| export ${MAKEOVERRIDES} Unfortunately, this seems to be broken beginning with make 4.0 when '-e' is specified: --- /tmp/x.mk --- FOO = bar export ${MAKEOVERRIDES} a: ${MAKE} -f ${firstword ${MAKEFILE_LIST}} b b: @echo TEST1 '>${a-b}<' @echo TEST2 '>${a_b}<' ---- ## working make $ make -v GNU Make 3.82 ## working 'make' without '-e' $ env -i PATH=/usr/bin:/bin make -f /tmp/x.mk -s \ a-b='ok ab $(FOO) a-b=XXX' \ a_b='ok ab ${FOO} a_b=XXX' TEST1 >ok ab bar a-b=XXX< TEST2 >ok ab bar a_b=XXX< ## working 'make' with '-e' $ env -i PATH=/usr/bin:/bin make -f /tmp/x.mk -s -e \ a-b='ok ab $(FOO) a-b=XXX' \ a_b='ok ab ${FOO} a_b=XXX' TEST1 >ok ab bar a-b=XXX< TEST2 >ok ab bar a_b=XXX< ---- ## broken make $ ./make -v GNU Make 4.1 ## broken 'make' without '-e'; result ok $ env -i PATH=/usr/bin:/bin ./make -f /tmp/x.mk -s \ a-b='ok ab $(FOO) a-b=XXX' \ a_b='ok ab ${FOO} a_b=XXX' TEST1 >ok ab bar a-b=XXX< TEST2 >ok ab bar a_b=XXX< ## broken 'make' with '-e'; result bad $ env -i PATH=/usr/bin:/bin ./make -f /tmp/x.mk -s -e \ a-b='ok ab $(FOO) a-b=XXX' \ a_b='ok ab ${FOO} a_b=XXX' TEST1 >XXX=< TEST2 >XXX=< ---- Enrico _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make