make uruchamia downloader; downloader decyduje, jak używać proxy. W GNU make wyeksportuj zmienne na poziomie Makefile, gdy każda istotna recepta ma je otrzymać:

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

Wiersz recepty zaczyna się od tabulatora. Dyrektywy export należą do składni make i przekazują wartości do środowiska poleceń.

shell export w jednym wierszu recepty zwykle znika przed następnym wierszem, ponieważ GNU make uruchamia osobny shell dla każdego wiersza. Dla jednego polecenia użyj zamiast tego przypisania shell bezpośrednio przy tym poleceniu:

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

Używaj udokumentowanych nazw zmiennych i protokołu proxy danego downloadera. Jeśli kompilacja może korzystać z publicznego punktu końcowego HTTP, wybierz kandydata z listy proxy HTTP dla tych wartości środowiska. Plik wykonywalny, który ignoruje te zmienne, potrzebuje własnej opcji proxy. Poświadczenia lepiej dostarczać przez środowisko kompilacji niż zapisywać w Makefile.

Te eksporty wpływają na polecenia podrzędne. Nie zmieniają środowiska nadrzędnego terminala po zakończeniu make.

Powiązane artykuły