Makefile在foreach循环中使用ifeq条件

我有很多叫做allow_xxx的variables,其中xxx是一个特性。

我想在我的生成文件中创build一个variables,允许所有的值。

这是我试图做的:

allow_feat1 := 1 allow_feat2 := 1 allow_feat3 := 1 list_features := feat1 feat2 feat3 allowed := $(foreach V, $(list_features), $(ifeq ($(allow_$V),1),$V)) 

这不工作…任何想法如何正确地做到这一点?

谢谢 !

ifeq函数没有这样的东西,它只是一个条件指令。 使用iffilter来代替:

 allowed := $(foreach V, $(list_features), $(if $(filter 1,$(allow_$V)),$V))