make डाउनलोडर चलाता है; डाउनलोडर तय करता है कि प्रॉक्सी कैसे इस्तेमाल होगा। GNU make के लिए, जब हर संबंधित रेसिपी को वे मिलने चाहिए, तब वेरिएबल Makefile स्तर पर एक्सपोर्ट करें:

export http_proxy := http://proxy.example:8080
export https_proxy := http://proxy.example:8080

fetch:
	curl --fail --output package.tar.gz https://downloads.example/package.tar.gz

रेसिपी पंक्ति टैब से शुरू होती है। export निर्देश make के सिंटैक्स का हिस्सा हैं और मानों को कमांड के परिवेश में भेजते हैं।

एक रेसिपी पंक्ति पर किया गया shell export आम तौर पर अगली पंक्ति से पहले गायब हो जाता है, क्योंकि GNU make हर पंक्ति के लिए अलग shell चलाता है। एक कमांड के लिए, इसके बजाय shell असाइनमेंट सीधे उस कमांड के साथ इस्तेमाल करें:

fetch:
	http_proxy=http://proxy.example:8080 https_proxy=http://proxy.example:8080 curl --fail https://downloads.example/package.tar.gz

डाउनलोडर के प्रलेखित वेरिएबल नाम और प्रॉक्सी प्रोटोकॉल इस्तेमाल करें। अगर बिल्ड सार्वजनिक HTTP एंडपॉइंट इस्तेमाल कर सकता है, तो उन परिवेश मानों के लिए HTTP प्रॉक्सी सूची से उम्मीदवार चुनें। जो एक्ज़ीक्यूटेबल इन वेरिएबल को अनदेखा करता है उसे अपना प्रॉक्सी विकल्प चाहिए। क्रेडेंशियल Makefile में लिखने के बजाय बिल्ड परिवेश से देना बेहतर है।

ये एक्सपोर्ट चाइल्ड कमांड पर असर डालते हैं। make खत्म होने के बाद ये मूल टर्मिनल का परिवेश नहीं बदलते।

संबंधित लेख