前提・実現したいこと
Makefileで外部プログラムから値を取得したいです。
Makefile
1VAL := `<command>`
或いは
Makefile
1VAL := $(shell <command>)
で外部プログラムから値を取得できる事は分かっています。但し、それぞれ問題があり良い方法が見つかりません。
発生している問題
Makefile
1VAL := `<command>`
では参照される度に実行がなされてしまいます。ランダム値の様な実行する度に違う値が返ってくるプログラムなので参照する度に違う値になってしまいます。実行は一回で参照を複数回しても同じ値を参照するようにしたいです。
Makefile
1VAL := $(shell <command>)
では実行が一回で値を取り込み、何回参照しても同じ値が返ってくるのですが、別の問題として環境変数を設定しないとプログラムが実行できないというのがあります。Makefile側で持っている変数をshの環境変数として設定できればうまく行くと思うのですが。exportでは設定されませんでした。
該当のソースコード
これだとechoの度にrandom.plが実行されて全て違う値になってしまう。
Makefile
1export DIR=$HOME/my_run_directory 2VAL := `random.pl` 3 4run : 5 echo $(VAL) 6 echo $(VAL) 7 echo $(VAL)
これが実行できればechoは全て同じ値になるが、random.plを実行する際に$DIRを環境変数として設定せねばならず、別のshellとだからなのかMakefileからexportでは渡す事が出来ない。
Makefile
1export DIR=$HOME/my_run_directory 2VAL := $(shell random.pl) 3 4run : 5 echo $(VAL) 6 echo $(VAL) 7 echo $(VAL)
なにか良い方法を知っている方はぜひ教えてください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/18 00:26 編集