Proxy-variabelen exporteren naar GNU Make-recepten
Exporteer een proxy-omgeving voor de receptopdrachten van GNU make en voorkom dat een shell-export tussen afzonderlijke receptregels verloren gaat.
make start de downloader; de downloader kiest hoe een proxy wordt gebruikt. Voor GNU make exporteer je de variabelen op Makefile-niveau wanneer elk relevant recept ze moet ontvangen:
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
De receptregel begint met een tab. De export-instructies horen bij de syntaxis van make en geven de waarden door aan de omgeving van de opdrachten.
Een shell-export op één receptregel verdwijnt normaal vóór de volgende regel, omdat GNU make voor elke regel een aparte shell start. Gebruik voor één opdracht in plaats daarvan een shell-toewijzing direct bij die opdracht:
fetch:
http_proxy=http://proxy.example:8080 https_proxy=http://proxy.example:8080 curl --fail https://downloads.example/package.tar.gz
Gebruik de gedocumenteerde variabelenamen en het proxyprotocol van de downloader. Als de build een openbaar HTTP-eindpunt kan gebruiken, kies dan een kandidaat uit de HTTP-proxylijst voor die omgevingswaarden. Een uitvoerbaar bestand dat deze variabelen negeert, heeft zijn eigen proxyoptie nodig. Inloggegevens kun je beter via de buildomgeving leveren dan in de Makefile zetten.
Deze exports beïnvloeden onderliggende opdrachten. Ze veranderen de omgeving van de bovenliggende terminal niet nadat make stopt.