Как использовать множественное условие в выражении "ifeq"

Я хотел бы проверить несколько условий в цикле if файла make файла GNU. Вот пример:

ifeq ($(TEST_FLAG),TRUE && ($(DEBUG_FLAG),FALSE))
true statement 
else 
false statement
endif

Какой правильный способ сделать это?

Ответ 1

Вы можете использовать ifeq с конкатенацией ваших значений, например.

ifeq ($(TEST_FLAG)$(DEBUG_FLAG),TRUEFALSE)
   do something
endif

Также возможно использовать условные функции, которые, скорее всего, будут полезны в цикле (поскольку ifeq, вероятно, не сделает то, что вы ожидаете в цикле, он будет протестирован ровно один раз).

Ответ 2

Хотя решение Hasturkun будет работать, я думаю, что идиоматический способ написать это:

ifeq ($(TEST_FLAG),TRUE)
ifeq ($(DEBUG_FLAG),FALSE)
# Stuff
endif
endif