يشغّل 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.

مقالات ذات صلة