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.

Схожі статті