Eksportowanie zmiennych proxy do recept GNU Make
Wyeksportuj środowisko proxy dla poleceń recept GNU make i uniknij utraty shell export między osobnymi wierszami recepty.
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.