Осторожно, это, вероятно, не будет работать должным образом: поскольку каждая команда Makefile выполняется в своем собственном подоболочке, источник myscript
будет изменять только локальную среду, а не всю среду Makefile.1004 *
debug: setup
@echo "*** debug"
export | grep ENVVAR || echo "ENVVAR not found" #(a)
setup:
@echo "*** setup"
export ENVVAR=OK; export | grep ENVVAR || echo "ENVVAR not found" #(b)
export | grep ENVVAR || echo "ENVVAR not found" #(c)
вывод:
$ make debug
*** setup
export ENVVAR=OK; export | grep ENVVAR || echo "ENVVAR not found" #(b)
export ENVVAR='OK'
export | grep ENVVAR || echo "ENVVAR not found" #(c)
ENVVAR not found
*** debug
export | grep ENVVAR || echo "ENVVAR not found" #(a)
ENVVAR not found
Как видите, ENVVAR находится только в команде (b), но команды (a) и (b) выполняются в новом, чистомокружающая среда.