【发布时间】:2010-07-12 08:15:38
【问题描述】:
来自 GNU Make 手册:
make 变量 SHELL 的值 不出口。相反,价值 来自调用的 SHELL 变量 环境被传递给子make。 您可以强制 make 导出其值 使用导出为 SHELL 指令,如下所述。
我一定是做错了什么,或者没有正确阅读手册,因为这个简单的例子不起作用:
# ./Makefile
export SHELL := /bin/bash
export VALUE := exported_variable
$(info root makefile SHELL=$(SHELL))
call_sub_make:
$(MAKE) --directory=subdir
还有子目录/Makefile:
$(info subdir makefile SHELL=$(SHELL))
$(info subdir makefile VALUE=$(VALUE))
do_nothing:
输出:
$ env | grep SHELL
SHELL=/bin/bash
$ make --version
GNU Make 3.81
$ make
root makefile SHELL=/bin/bash
make --directory=subdir
subdir makefile SHELL=/bin/sh
subdir makefile VALUE=exported_variable
make[1]: Entering directory `/home/drtwox/C/make/export_shell/subdir'
make[1]: Nothing to be done for `do_nothing'.
make[1]: Leaving directory `/home/drtwox/C/make/export_shell/subdir'
VALUE 已导出,为什么不是 SHELL?
【问题讨论】: