我有很多变量叫做 allow_xxx其中xxx是一个特征。
我想在makefile中创建一个包含所有允许值的变量。
这是我尝试做的事情:
allow_feat1 := 1
allow_feat2 := 1
allow_feat3 := 1
list_features := feat1 feat2 feat3
allowed := $(foreach V, $(list_features), $(ifeq ($(allow_$V),1),$V))
这不起作用...... 知道如何正确地做到这一点?
谢谢!
答案 0 :(得分:8)
没有ifeq
函数这样的东西,它只是一个条件指令。请改用if
和filter
:
allowed := $(foreach V, $(list_features), $(if $(filter 1,$(allow_$V)),$V))
答案 1 :(得分:0)
如果您想减少或创建迭代次数的范围,您可以这样做
MAX_RANGE := 4
vector_0_10 := 0 1 2 3 4 5 6 7 8 9 10
vector_reduced := $(wordlist 1,$(MAX_RANGE),$(vector_0_10))
$(info $$vector_reduced is printed as [$(vector_reduced)])
//will print 0 1 2 3
FLAGS += $(foreach V, $(vector_reduced), -sdf min:$(ANOTHERVAR).test.text[$(V)].more_text:$(var2)/moretext )
$(info $$FLAGS is printed as [$(FLAGS )])`