Makefile用來調用各類命令作自動化構建工具很是方便。最近在寫給Flask項目寫Makefile時,須要設置環境變量,卻遇到一些小問題。工具
若是是在全局設置環境變量時很容易:code
export FLASK_ENV=dev export FLASK_DEBUG=1 dev: @echo $(FLASK_ENV) @echo $(FLASK_DEBUG)
運行make dev
時則返回:get
$ make dev dev 1
可是若是須要在不一樣target下設置不一樣環境變量的話,這樣就會有問題了。具體應該這樣設置:自動化
dev:export FLASK_ENV=dev dev:export FLASK_DEBUG=1 dev: @echo $(FLASK_ENV) @echo $(FLASK_DEBUG) prod:export FLASK_ENV=prod prod:export FLASK_DEBUG=0 prod: @echo $(FLASK_ENV) @echo $(FLASK_DEBUG)
這樣再執行make dev
和make prod
時,不一樣的target下的環境變量就不會干擾了:構建工具
$ make dev dev 1 $ make prod prod 0