У своєму GNUmakefile я хотів би мати правило, яке використовує тимчасовий каталог. Наприклад:
out.tar: TMP := $(shell mktemp -d)
echo hi $(TMP)/hi.txt
tar -C $(TMP) cf $@ .
rm -rf $(TMP)
Як написано, вищевказане правило створює тимчасовий каталог під час розбору правила . Це означає, що навіть я не роблю out.tar весь час, створюється багато тимчасових каталогів. Я хотів би уникати того, щоб мій / tmp був засмічений невикористаними тимчасовими каталогами.
Чи є спосіб зробити так, щоб змінна була визначена лише при запуску правила, на відміну від того, коли вона визначається?
Моя головна думка - скинути mktemp та tar в сценарій оболонки, але це здається дещо непривабливим.