私のGNUmakefileで、一時ディレクトリーを使用するルールが欲しいのですが。例えば:
out.tar: TMP := $(shell mktemp -d)
echo hi $(TMP)/hi.txt
tar -C $(TMP) cf $@ .
rm -rf $(TMP)
前述のとおり、上記のルールは、ルールが解析されるときに一時ディレクトリを作成します。つまり、常にout.tarを作成しなくても、多くの一時ディレクトリが作成されます。/ tmpが未使用の一時ディレクトリで散らかされるのを避けたいのですが。
変数が定義されるたびにではなく、ルールが実行されたときにのみ変数が定義されるようにする方法はありますか?
私の主な考えは、mktempとtarをシェルスクリプトにダンプすることですが、それは少し見苦しいようです。