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