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 の構文に属し、値をコマンドの環境へ渡します。

1 つのレシピ行での 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 の終了後に親ターミナルの環境を 変更するものではありません。

関連記事