तक सीमित एक दायरे वाले वेरिएबल्स मैं अपने वर्तमान प्रोजेक्ट में एक गैर-रिकर्सिव मेक बिल्ड सिस्टम को लागू करने का प्रयास करता हूं। मैं किस प्रकार संघर्ष करता हूं वैरिएबल स्कॉप्स है। लक्ष्य विशिष्ट चर मेरी आवश्यकताओं को पूरा नहीं करते हैं क्योंकि अक्सर चर लक्ष्य को परिभाषित करते हैं और पूर्वापेक्षाएँ नहीं। क्या मैं जरूरत है:जीएनयू मेक। एक मेकफ़ाइल
Makefile1:
SOMEVAR := original_value
include Makefile2
$(warning $(SOMEVAR))
Makefile2:
#some magic here to do what I want and make me happy
SOMEVAR := included_value
#and maybe here
और उत्पादन मैं चाहता है 'original_value'।
क्या इसे वास्तविक बनाने के लिए कोई रणनीतियां हैं?
संपादित करें: =
वह समाधान बहुत अच्छा लगता है। इसके साथ गलत क्या है? और 'सोमवार' क्या है, इसका उपयोग किस लिए किया जाता है? – Beta
जो चीज़ मुझे इस समाधान में पसंद नहीं है वह यह है कि यह बहुत कमजोर है। यदि कुछ गरीब व्यक्ति जो मेरी जगह ले लेंगे, उन्हें विचार और स्थान कहीं और शामिल नहीं किया जाएगा, तो उन्हें –
बहुत सारी आश्चर्य मिलेगी यदि मेकफ़ाइल 2 को एक से अधिक बार शामिल किया गया है, और यह एक नुस्खा को परिभाषित करता है जो '$ (SOMEVAR)' , तो यह बहुत ही टूट जाएगा --- व्यंजनों के अंदर चर का मूल्यांकन किया जाता है जब व्यंजनों को निष्पादित किया जाता है, जिसका अर्थ है कि वे सभी '$ (SOMEVAR)' अंतिम मूल्य देखेंगे, न कि नुस्खा परिभाषित होने पर उसके मूल्य का मूल्य। –