1
從GNU製作手冊:GNU Make:如何將SHELL變量導出爲子版本?
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被導出,爲什麼不是貝殼?