W moim pliku GNUmakefile chciałbym mieć regułę, która korzysta z katalogu tymczasowego. Na przykład:
out.tar: TMP := $(shell mktemp -d)
echo hi $(TMP)/hi.txt
tar -C $(TMP) cf $@ .
rm -rf $(TMP)
Jak napisano, powyższa reguła tworzy katalog tymczasowy w momencie analizowania reguły . Oznacza to, że nawet ja nie rozumiem. Cały czas powstaje wiele katalogów tymczasowych. Chciałbym uniknąć zapełnienia mojego / tmp nieużywanymi katalogami tymczasowymi.
Czy istnieje sposób, aby zmienna była definiowana tylko podczas uruchamiania reguły, a nie w przypadku jej definiowania?
Moją główną myślą jest zrzucenie mktemp i tar do skryptu powłoki, ale wydaje się to trochę nieestetyczne.