我有一段评估一组变量的 tcl 代码。然后需要将这些变量的值作为参数传递给配方中的下一行
enter code here
MY_ENV_VAR?=45
foo:ARG1?=test
foo:OUTFILE:=./testFile
foo:
$(shell ./evalVars.tcl -arg1 $(ARG1) -outFile $(OUTFILE))
$(foreach var,$(shell cat $(OUTFILE)),$(eval $(var)))
runcmd -value $(myvar)
out 文件将包含一系列 make 变量赋值 "myvar:=400"
在使用 shell 函数时,任何命令行/make 变量都不会作为环境变量传递给 tcl shell。
如果我从 tcl shell 中取消引用 env(MY_ENV_VAR) 它不存在。如果我不使用 shell 命令,则在创建 out 文件之前执行 foreach/eval 行,但变量在 tcl shell 中是可见的。
我确信有一种更优雅的方式来做到这一点。