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