Trong GNUmakefile của tôi, tôi muốn có một quy tắc sử dụng một thư mục tạm thời. Ví dụ:
out.tar: TMP := $(shell mktemp -d)
echo hi $(TMP)/hi.txt
tar -C $(TMP) cf $@ .
rm -rf $(TMP)
Như đã viết, quy tắc trên tạo thư mục tạm thời tại thời điểm quy tắc được phân tích cú pháp . Điều này có nghĩa là, ngay cả khi tôi không thực hiện. Mọi lúc, nhiều thư mục tạm thời được tạo. Tôi muốn tránh / tmp của tôi bị vấy bẩn với các thư mục tạm thời không sử dụng.
Có cách nào để biến biến chỉ được xác định khi quy tắc được kích hoạt, trái ngược với bất cứ khi nào nó được xác định không?
Suy nghĩ chính của tôi là đổ mktemp và tar vào một kịch bản shell nhưng điều đó có vẻ hơi khó coi.