如果未设置环境变量,我希望makefile崩溃。这是我到目前为止所拥有的:
ifneq ($(shell echo $${VIRTUAL_ENV:+True}),True)
$(error Looks like no virtualenv is active)
endif
它有效!
我想知道是否还有一种更优雅的方法可以做到这一点,也许直接用make而不是调用$(shell ...)
。
感谢您的帮助!
答案 0 :(得分:3)
您可以使用origin
函数...
ifeq ($(origin VIRTUAL_ENV),undefined)
$(error Looks like no virtualenv is active)
endif
答案 1 :(得分:0)
这可能是最简单的选择,但没有像使用origin
那样微调。
ifndef VIRTUAL_ENV
$(error Looks like no virtualenv is active)
endif
这里的一个警告是,您无法区分VIRTUAL_ENV
是在Makefile中还是在环境中定义。
正如@KurtisRader在comment中指出的那样,这是可能的,因为环境var被隐式“导入”到make的命名空间https://www.gnu.org/software/make/manual/html_node/Environment.html中。