विभिन्न मशीनों पर चलने वाले प्रोग्राम के लिए मेकफ़ाइल - बैश, मेकफ़ाइल, एनएफएस, होस्ट
मेरे पास C ++ प्रोग्राम है जो कई पर चलेगामशीनें जो एक नेटवर्क फाइल सिस्टम का उपयोग करती हैं। मेरे प्रोग्राम का उपयोग करने वाले प्रत्येक C ++ पुस्तकालयों के लिए, मैंने ~ / program_files / machinename / Libraryname के तहत प्रत्येक मशीन के लिए एक संस्करण स्थापित किया है।
"मशीनिन" को बैश कमांड के माध्यम से प्राप्त किया जाता है"होस्ट नाम"। मैं जिन मशीनों का उपयोग कर रहा हूं, उन पर "hostname" कुछ आउटपुट करता है जैसे "io21.aaa.bbb.edu" और मैं पुस्तकालयों के पथ के लिए केवल "io21" को "machinename" के रूप में लेता हूं। बाश में, मैंने सीखा है कि
$ HOST =hostname # अब HOST का मूल्य "io21.aaa.bbb.edu" है
make के लिए डिफ़ॉल्ट /bin/sh जो समर्थन नहीं कर सकता है $(var%%string) आपके पास कौन सा संस्करण है, इसके आधार पर निर्माण। भी, मिश्रण make चर और bash वेरिएबल थोड़ा चुनौतीपूर्ण है।