一連の変数を評価する 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" が含まれます。
シェル関数を使用する場合、コマンド ライン/make 変数は環境変数として Tcl シェルに渡されません。
tcl シェル内から env(MY_ENV_VAR) を逆参照すると、存在しません。シェル コマンドを使用しない場合、out ファイルが作成される前に foreach/eval 行が実行されますが、変数は Tcl シェルで表示されます。
これを行うためのより優雅な方法があると確信しています。