2017-05-31 770 views
0

我在检查我的ENVIRONMENT变量是否为空,并且是developmentproductionMakefile - 如何检查变量是否为空并且是两个值之一

ENVIRONMENT ?= development 

define ENV_CHECK 
     $(if $(or $(call seq,$(1),development),$(call seq,$(1),production)),true,false) 
endef 

.PHONY: test 
test: 
     @echo "$(ENVIRONMENT)" 
     $(call ENV_CHECK,$(ENVIRONMENT)) 

make test失败,下面的错误

# make test 
development 
false 
make: *** [test] Error 1 

回答

2

这将是一个老生常谈的某种解决方案:

的Makefile

ENVIRONMENT ?= development 
ifeq ($(filter $(ENVIRONMENT),development production),) 
$(error invalid `ENVIRONMENT` value) 
endif 

.PHONY: test 
test: 
    @echo "$(ENVIRONMENT)" 

8.2 Functions for String Substitution and Analysis

相关问题