make chạy trình tải xuống; trình tải xuống quyết định cách dùng proxy. Với GNU make, hãy xuất các biến ở phạm vi Makefile khi mọi công thức liên quan cần nhận chúng:

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

Dòng công thức bắt đầu bằng một tab. Các chỉ thị export thuộc cú pháp của make và truyền giá trị vào môi trường của lệnh.

Một shell export trên một dòng công thức thường biến mất trước dòng tiếp theo, vì GNU make gọi một shell riêng cho mỗi dòng. Với một lệnh duy nhất, hãy dùng phép gán shell trực tiếp cùng lệnh đó thay thế:

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

Dùng tên biến và giao thức proxy đã được ghi trong tài liệu của trình tải xuống. Nếu bản dựng có thể dùng điểm cuối HTTP công khai, hãy chọn một ứng viên từ danh sách proxy HTTP cho các giá trị môi trường đó. Một tệp thực thi bỏ qua các biến này cần tùy chọn proxy riêng. Nên cung cấp thông tin đăng nhập qua môi trường dựng hơn là ghi vào Makefile.

Các export này ảnh hưởng đến lệnh con. Chúng không thay đổi môi trường của terminal cha sau khi make thoát.

Bài viết liên quan