make ejecuta el descargador; el descargador decide cómo usar un proxy. Para GNU make, exporta las variables en el ámbito del Makefile cuando cada receta relevante deba recibirlas:

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

La línea de la receta empieza con un tabulador. Las directivas export pertenecen a la sintaxis de make y pasan los valores al entorno de los comandos.

Un export de shell en una línea de receta normalmente desaparece antes de la línea siguiente, porque GNU make invoca un shell distinto para cada línea. Para un solo comando, usa mejor una asignación de shell directamente con ese comando:

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

Usa los nombres de variables y el protocolo de proxy documentados del descargador. Si la compilación puede usar un punto de conexión HTTP público, elige un candidato de la lista de proxies HTTP para esos valores de entorno. Un ejecutable que ignora estas variables necesita su propia opción de proxy. Es mejor proporcionar las credenciales mediante el entorno de compilación que guardarlas en el Makefile.

Estos exports afectan a los comandos hijos. No cambian el entorno del terminal padre cuando make termina.

Artículos relacionados