मैं जीएनयू बनाने का उपयोग कर रहा हूं, और एक ऐसी परियोजना में तीसरी पार्टी लाइब्रेरी समेत एक बिल्ड सिस्टम है जो CFLAGS
को कॉल करने पर पर्यावरण में परिभाषित किया गया है। मुझे अन्य कारणों से मेरे पर्यावरण में CFLAGS
परिभाषित करना पसंद है। लाइब्रेरी की निर्माण एक और makefile से लागू किया जा रहा है, ताकि मैं उदाहरण के लिए: कहते हैं कि .:क्या मेकफ़ाइल में एक पर्यावरण चर को "अनसेट" करना संभव है?
3rdparty: $(MAKE) -f Makefile.3rdparty
लेकिन मुझे यकीन है कि CFLAGS
सेट नहीं होने पर होना चाहते हैं जब मैं आह्वान 3 पार्टी Makefile पर बनाते हैं। निकटतम बात मैं पा सकते हैं कहने के लिए है:
CFLAGS:=
लेकिन यह अभी भी वातावरण में CFLAGS
सेट छोड़ देता है यह सिर्फ एक खाली स्ट्रिंग है। इसके अलावा कह की तरह कुछ घृणित करने से:
3rdparty: bash -c "unset CFLAGS; $(MAKE) -f Makefile.3rdparty"
वहाँ एक आसान तरीका करने के लिए "सेट नहीं" मेरी प्राथमिक makefile के भीतर से CFLAGS
चर रहा है, इतना है कि यह सब में मौजूद नहीं है पर्यावरण जब तीसरे पक्ष पुस्तकालय का आह्वान किया जाता है?
यह करता है! मुझे "अप्रत्याशित" कीवर्ड के बारे में पता नहीं था, अब मैं करता हूं। धन्यवाद! –
@JayWalker, अगर आप संतुष्ट हैं तो कृपया इस उत्तर को स्वीकार किए गए एक के रूप में चिह्नित करें। –