C और C ++ की दुनिया से आने वाले, अधिकांश बिल्ड सिस्टम में एक install
लक्ष्य होता है, विशेष रूप से मेकफाइल्स (जहां यह उदाहरण के लिए GNU द्वारा अनुशंसित है ) या CMake । यह लक्ष्य ऑपरेटिंग सिस्टम (उदाहरण के लिए, C:\Program Files\
विंडोज में) में रनटाइम फाइल्स (एक्जीक्यूटिव, लाइब्रेरी, ...) को कॉपी करता है ।
यह वास्तव में हैकिंग लगता है, क्योंकि मेरे लिए यह प्रोग्राम स्थापित करने के लिए बिल्ड सिस्टम की जिम्मेदारी नहीं है (जो वास्तव में ऑपरेटिंग सिस्टम / पैकेज मैनेजर की जिम्मेदारी है)। इसका अर्थ यह भी है कि बिल्ड सिस्टम या बिल्ड स्क्रिप्ट को पर्यावरण के चर, रजिस्ट्री चर, सहानुभूति, अनुमति, आदि के साथ स्थापित कार्यक्रमों के संगठन को जानना चाहिए ।
सबसे अच्छा में निर्माण प्रणाली एक होना चाहिए release
कि इच्छा उत्पादन एक स्थापना योग्य प्रोग्राम (उदाहरण के लिए लक्ष्य .deb
या .msi
), और फिर कृपया ऑपरेटिंग सिस्टम है कि कार्यक्रम को स्थापित करने के लिए कहें। यह उपयोगकर्ता को टाइप करने के बिना अनइंस्टॉल करने की भी अनुमति देगा make uninstall
।
तो, मेरा सवाल है: निर्माण प्रणाली आमतौर पर install
लक्ष्य रखने की सलाह क्यों देती है ?
make install
आम तौर पर "कोर ओएस / पैकेज मैनेजमेंट सिस्टम" द्वारा नियंत्रित नहीं की जाने वाली निर्देशिका के तहत /usr/local
(या यहां तक कि /opt
) स्थापित करता है । कोई विचार नहीं है कि क्या विंडोज में कुछ समान सम्मेलन हैं।
make install
जब हम क्रॉस-कंपाइलिंग के बारे में बात करते हैं, तो कोई मतलब नहीं है
DESTDIR
।