make executa o transferidor; o transferidor decide como usar um proxy. No GNU make, exporte as variáveis no escopo do Makefile quando cada receita relevante deve recebê-las:

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

A linha da receita começa com uma tabulação. As diretivas export pertencem à sintaxe do make e passam os valores para o ambiente dos comandos.

Um export de shell em uma linha de receita normalmente desaparece antes da linha seguinte, porque o GNU make chama um shell separado para cada linha. Para um único comando, use uma atribuição de shell diretamente com esse comando:

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

Use os nomes de variáveis e o protocolo de proxy documentados do transferidor. Se a compilação puder usar um endpoint HTTP público, escolha um candidato da lista de proxies HTTP para esses valores de ambiente. Um executável que ignora essas variáveis precisa da própria opção de proxy. É melhor fornecer credenciais pelo ambiente de compilação do que gravá-las no Makefile.

Esses exports afetam os comandos filhos. Eles não alteram o ambiente do terminal pai depois que o make termina.

Artigos relacionados