Makefile Использование условия ifeq внутри цикла foreach - PullRequest
4 голосов
/ 14 декабря 2011

У меня есть много переменных с именем allow_xxx, где xxx - это особенность.

Я хотел бы создать переменную внутри моего make-файла со всеми допустимыми значениями.

Это то, что я пытаюсьделать:

allow_feat1 := 1
allow_feat2 := 1
allow_feat3 := 1
list_features := feat1 feat2 feat3

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

Это не работает ... Есть идеи, как это сделать правильно?

Спасибо!

1 Ответ

8 голосов
/ 14 декабря 2011

Нет такой вещи как функция ifeq, это только условная директива.Используйте if и filter вместо:

allowed := $(foreach V, $(list_features), $(if $(filter 1,$(allow_$V)),$V))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...