make rulează descărcătorul; descărcătorul decide cum se folosește un proxy. Pentru GNU make, exportați variabilele la nivelul Makefile când fiecare rețetă relevantă trebuie să le primească:

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

Linia rețetei începe cu un tab. Directivele export aparțin sintaxei make și transmit valorile în mediul comenzilor.

Un shell export pe o linie de rețetă dispare de obicei înainte de linia următoare, deoarece GNU make lansează un shell separat pentru fiecare linie. Pentru o singură comandă, folosiți în schimb o atribuire shell direct la acea comandă:

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

Folosiți numele de variabile și protocolul proxy documentate ale descărcătorului. Dacă buildul poate folosi un endpoint HTTP public, alegeți un candidat din lista de proxy HTTP pentru acele valori de mediu. Un executabil care ignoră aceste variabile are nevoie de propria opțiune de proxy. Acreditările e mai bine să fie furnizate prin mediul de build decât scrise în Makefile.

Aceste exporturi afectează comenzile copil. Ele nu schimbă mediul terminalului părinte după ce make se încheie.

Articole similare