Makefile-如何检查变量是否为非空且是否为两个值之一
我试图检查我的Makefile-如何检查变量是否为非空且是否为两个值之一,makefile,gnu-make,Makefile,Gnu Make,我试图检查我的环境变量是否为空,是否为开发或生产 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
环境
变量是否为空,是否为开发
或生产
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))
Mymake test
失败,出现以下错误
# make test
development
false
make: *** [test] Error 1
这将是一种常见的解决方案: Makefile
ENVIRONMENT ?= development
ifeq ($(filter $(ENVIRONMENT),development production),)
$(error invalid `ENVIRONMENT` value)
endif
.PHONY: test
test:
@echo "$(ENVIRONMENT)"
请参见这将是一种常见的解决方案: Makefile
ENVIRONMENT ?= development
ifeq ($(filter $(ENVIRONMENT),development production),)
$(error invalid `ENVIRONMENT` value)
endif
.PHONY: test
test:
@echo "$(ENVIRONMENT)"
看