Pinapatakbo ng make ang downloader; ang downloader ang pumipili kung paano gagamitin ang isang proxy. Para sa GNU make, i-export ang mga variable sa antas ng Makefile kapag dapat matanggap ng bawat kaugnay na recipe ang mga ito:

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

Nagsisimula sa tab ang linya ng recipe. Ang mga direktibang export ay bahagi ng sintaks ng make at nagpapasa ng mga halaga sa kapaligiran ng mga command.

Ang shell export sa isang linya ng recipe ay karaniwang nawawala bago ang susunod na linya, dahil naglulunsad ang GNU make ng hiwalay na shell para sa bawat linya. Para sa isang command, gumamit na lang ng shell assignment nang direkta kasama ng command na iyon:

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

Gamitin ang mga dokumentadong pangalan ng variable at protocol ng proxy ng downloader. Kung ang build ay makakagamit ng pampublikong HTTP endpoint, pumili ng kandidato mula sa listahan ng HTTP proxy para sa mga halagang iyon ng kapaligiran. Ang isang executable na hindi pinapansin ang mga variable na ito ay kailangan ng sarili nitong opsyon sa proxy. Mas mabuting ibigay ang mga kredensyal sa pamamagitan ng build environment kaysa isulat sa Makefile.

Ang mga export na ito ay nakakaapekto sa mga child command. Hindi nila binabago ang kapaligiran ng parent terminal pagkatapos lumabas ng make.

Kaugnay na mga artikulo