【发布时间】:2011-06-11 08:35:39
【问题描述】:
Makefile deploy 配方需要设置环境变量 ENV 以正确执行自身,而其他配方则不关心,例如,
ENV =
.PHONY: deploy hello
deploy:
rsync . $(ENV).example.com:/var/www/myapp/
hello:
echo "I don't care about ENV, just saying hello!"
如何确保设置了这个 ENV 变量?有没有办法将此 makefile 变量声明为部署配方的先决条件?例如,
deploy: make-sure-ENV-variable-is-set
【问题讨论】:
-
“确保已设置此变量”是什么意思?你的意思是验证还是确保?如果之前没有设置,应该
make设置,还是给出警告,还是产生致命错误? -
这个变量必须由用户自己指定——因为他是唯一知道他的环境(开发、产品...)的人——例如通过调用
make ENV=dev但如果他忘记了ENV=dev,deploy配方将失败...
标签: makefile