help-make
[Top][All Lists]
Advanced

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

Re: exported variables stopped working when migrating make from 4.0 to 4


From: Juha Heinanen
Subject: Re: exported variables stopped working when migrating make from 4.0 to 4.1
Date: Fri, 14 Apr 2017 11:17:03 +0300

Paul Smith writes:

> I can't explain this nor reproduce it.  On my system no matter what
> version of GNU make I test with, all the way back to 3.77, I get the
> same, expected behavior: the variable is not exported.

Paul,

Thank you very much for your reply.  As you told, cause of the problem
was - chars in names of exported variables.  Once I replaced them with 
chars, my Makefiles started working again in Debian Stretch with
make 4.1.

> It should never be the case that the variable is exported, because
> "INSTALL-TOUCH" is not a valid shell variable (which consist of "_" and
> alphanumeric characters only and cannot start with a number).  GNU make
> does not export variables that are not valid shell variables.
> 
> I can't explain why it seems to work for you in Jessie.  It doesn't work
> for me in GNU make 4.0 (built on my system from original source).

I re-tested on pure Debian Jessie and variable names with - chars are
exported.  Below is the complete.

-- Juha

-----------------------------------------------------------------------

test$ more Makefile core/Makefile 
::::::::::::::
Makefile
::::::::::::::
export INSTALL-TOUCH=touch

all: core

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

.PHONY: core
core:
        @echo "INSTALL-TOUCH in core is $(INSTALL-TOUCH)"
test$ make all
INSTALL-TOUCH is touch
make -C core all;
make[1]: Entering directory 'test/core'
INSTALL-TOUCH in core is touch
make[1]: Leaving directory 'test/core'
test$ 



reply via email to

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