अपने GNUmakefile में, मैं एक नियम रखना चाहूंगा जो एक अस्थायी निर्देशिका का उपयोग करता है। उदाहरण के लिए:
out.tar: TMP := $(shell mktemp -d)
echo hi $(TMP)/hi.txt
tar -C $(TMP) cf $@ .
rm -rf $(TMP)
जैसा कि लिखा गया है, उपरोक्त नियम उस समय अस्थायी निर्देशिका बनाता है, जब नियम पार्स किया जाता है । इसका मतलब है कि, यहां तक कि मैं हर समय नहीं बनाता हूं। कई अस्थायी निर्देशिकाएं बनाई जाती हैं। मैं अपने अप्रयुक्त अस्थायी निर्देशिकाओं से अटे पड़े होने से बचना चाहूंगा।
क्या नियम को निकाल दिए जाने के बाद चर को परिभाषित करने का एक तरीका है, जब भी इसे परिभाषित किया जाता है?
मेरा मुख्य विचार है कि मैकटप को डंप करना और एक शेल स्क्रिप्ट में टार करना है लेकिन यह कुछ भद्दा लगता है।