Perhaps someone can give a hint why exported variables stopped working
when I upgraded from Debian Jessie, where make is 4.0, to Debian
Stretch, where make is 4.1.

I have in main directory Makefile and Makefile.defs and Makefile's in
sub-directors.

In Makefile.defs there is, for example:

-------------------------------
INSTALL-TOUCH = touch
export INSTALL-TOUCH
-------------------------------

In main Makefile I have:

-------------------------------
all: core
include Makefile.defs

core:
        @echo "INSTALL-TOUCH is $(INSTALL-TOUCH)"
        $(MAKE) -C core all;
        ...
-------------------------------        

and in core Makefile:

-------------------------------
all: ../Makefile.defs core

.PHONY: core
core:
        @echo "INSTALL-TOUCH in core is $(INSTALL-TOUCH)"
-------------------------------

Now when I give command

make all

in main directory, 4.0 make produces to terminal:

INSTALL-TOUCH is touch
INSTALL-TOUCH in core is touch

whereas 4.1 make produces:

INSTALL-TOUCH is touch
INSTALL-TOUCH in core is

That is, in 4.1 variable INSTALL-TOUCH is not exported to core Makefile.

Any pointers why that is the case, i.e., what has changed from make 4.0
to make 4.1 that could explain the difference?

-- Juha



_______________________________________________
Help-make mailing list
Help-make@gnu.org
https://lists.gnu.org/mailman/listinfo/help-make

Reply via email to