Di GNUmakefile saya, saya ingin memiliki aturan yang menggunakan direktori sementara. Sebagai contoh:
out.tar: TMP := $(shell mktemp -d)
echo hi $(TMP)/hi.txt
tar -C $(TMP) cf $@ .
rm -rf $(TMP)
Seperti yang tertulis, aturan di atas membuat direktori sementara pada saat aturan diuraikan . Ini berarti bahwa, bahkan saya tidak melihat. Sepanjang waktu, banyak direktori sementara dibuat. Saya ingin menghindari / tmp saya dikotori dengan direktori sementara yang tidak digunakan.
Apakah ada cara untuk menyebabkan variabel hanya didefinisikan ketika aturan dipecat, berbeda dengan setiap kali didefinisikan?
Pikiran utama saya adalah untuk membuang mktemp dan tar ke dalam skrip shell tetapi sepertinya agak tidak enak dipandang.