URL:
<https://savannah.gnu.org/bugs/?55719>
Summary: Variables containing hyphens are not exported
Project: make
Submitted by: masahiroy
Submitted on: Sat 16 Feb 2019 09:29:01 AM UTC
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: None
Operating System: Any
Fixed Release: None
Triage Status: None
_______________________________________________________
Details:
Shell cannot cope with variable names consisting of characters
other than letters, numbers, and underscores.
Make allows more characters in variable names,
such as a hyphen.
The variables are exported to sub-make
by using the 'export' directive.
For example, 'export foo-bar'
will export the variable 'foo-bar' to sub-make.
However, it does not work under some circumstances.
I attached two test-cases.
Makefile1 exports 'foo-bar' to sub-make.
If you run Makefile2 on Ubuntu, where /bin/sh is a
symlink to dash, 'foo-bar' is not exported to sub-make.
$ make -f Makefile1
make sub_make=1
foo-bar: 1
foo_bar: 2
$ make -f Makefile2
make sub_make=~
foo-bar:
foo_bar: 2
I think this difference comes from
the reluctance of spawning a sub-shell.
In Makefile1, Make will directly execute
'$(MAKE) sub_make=1' without spawning a sub-shell.
In Makefile2, Make will execute
'$(MAKE) sub_make=~' in a sub-shell since '~' is a shell special character.
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Sat 16 Feb 2019 09:29:01 AM UTC Name: Makefile1 Size: 213B By:
masahiroy
<http://savannah.gnu.org/bugs/download.php?file_id=46276>
-------------------------------------------------------
Date: Sat 16 Feb 2019 09:29:01 AM UTC Name: Makefile2 Size: 213B By:
masahiroy
<http://savannah.gnu.org/bugs/download.php?file_id=46277>
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?55719>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
_______________________________________________
Bug-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-make