मैं लिनक्स और विंडोज़ पर निर्माण के लिए एक ही मेकफ़ाइल रखना चाहता हूं। मैं डिफ़ॉल्ट जीएनयू का उपयोग लिनक्स पर और mingw32- (जीएनयू) विंडोज पर बनाते हैं।मेकफ़ाइल जो विंडोज और यूनिक्स जैसी प्रणालियों के बीच भेद करता है
मैं मेकफ़ाइल को यह पता लगाने के लिए चाहता हूं कि यह विंडोज या लिनक्स पर चल रहा है या नहीं।
clean:
del $(DESTDIR_TARGET)
लेकिन लिनक्स पर:
clean:
rm $(DESTDIR_TARGET)
इसके अलावा, मैं विंडोज (\
) और लिनक्स पर अलग निर्देशिका विभाजक उपयोग करना चाहते हैं
उदाहरण के लिए विंडोज पर make clean
आदेश की तरह दिखता है (/
)।
यह Makefile में विंडोज ऑपरेटिंग सिस्टम का पता लगाने के लिए संभव है?
पुनश्च: मैं विंडोज पर लिनक्स का अनुकरण नहीं करना चाहते (cygwin आदि)
समान सवाल ही नहीं है: OS detecting makefile, लेकिन मैं इस सवाल का जवाब यहाँ नहीं मिला।
विंडोज दोनों स्लैश "/" और "\" बराबर हैं संभाल करने में सक्षम है। – Ency
यदि यह एक पर्याप्त परियोजना के लिए है, तो मुझे आश्चर्य है कि क्या ऑटोटूल कुछ पोर्टेबिलिटी सामानों को संभालने के लिए लायक होगा? – Cascabel
@ जेफ्रोमी: ऑटोोटूल एक मूल यूनिक्स टूलसेट (sh, m4, sed, rm, ...) मानते हैं। @tomp: उन्हें विंडोज़ (MSYS या GnuWin से) पर भी स्थापित कर सकते हैं और अधिक चुनौतीपूर्ण पोर्टेबिलिटी मुद्दों पर अपने प्रयासों को खर्च कर सकते हैं। – ephemient