make가 다운로더를 실행하며, 다운로더가 프록시 사용 방식을 정합니다. GNU make에서는 관련된 모든 레시피가 변수를 받아야 할 때 Makefile 범위에서 변수를 내보냅니다:

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

레시피 줄은 탭으로 시작합니다. export 지시자는 make의 문법에 속하며 값을 명령의 환경으로 전달합니다.

한 레시피 줄의 shell export는 보통 다음 줄 전에 사라집니다. GNU make가 줄마다 별도의 shell을 호출하기 때문입니다. 명령 하나에는 대신 그 명령에 직접 shell 대입을 붙이세요:

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

다운로더에 문서화된 변수 이름과 프록시 프로토콜을 사용하세요. 빌드가 공개 HTTP 엔드포인트를 쓸 수 있다면 그 환경 값에는 HTTP 프록시 목록에서 후보를 고르세요. 이 변수를 무시하는 실행 파일은 자체 프록시 옵션이 필요합니다. 자격 증명은 Makefile에 적기보다 빌드 환경으로 제공하는 편이 좋습니다.

이 내보내기는 자식 명령에 영향을 줍니다. make가 끝난 뒤 상위 터미널의 환경을 바꾸지 않습니다.

관련 글