添加 Make 任务持续时间的环境变量

添加 Make 任务持续时间的环境变量

我使用 make 来处理应用程序的构建文件,并且这些构建过程使用节点模块。由于我在本地安装这些节点模块,因此我必须在$PATH哪里指定调用可执行文件,例如PATH=$(npm bin):$PATH.

我在我的 Makefile 中设置了一个变量,NPMEXEC := PATH=$(shell npm bin):$$PATH并在需要时将其添加到我的命令中。但是,对于某些较长的任务(例如在运行多个命令的测试期间),在任务的整个持续时间内进行 PATH 分配会很方便,类似于pushd/ popd。那可能吗?

答案1

“任务”不是常见的制造术语。我假设你的意思是规则。如果您使用 GNU make,您可以为特定规则设置变量,或者更准确地说,为具体目标

test-results: export PATH := $(shell npm bin):$$PATH
test-results: test-binary1 test-binary2 test-data2 reference-test-results
        test-binary1 >test-results
        test-binary2 test-data2 >>test-results
        diff test-results reference-test-results

请注意,赋值是在 make 语法中进行的,这与 shell 语法不同。并且注意,修改变量时,必须使用渴望(“扩展”)分配,而不是=会创建循环引用的惰性赋值。

答案2

我认为您正在 bash 中寻找export命令(或您选择的 shell 中的等效命令):http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_02.html

相关内容