Makefile ifeq логическое И - PullRequest
29 голосов
/ 23 июня 2011

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

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

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

Ответы [ 2 ]

27 голосов
/ 23 июня 2011

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

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

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

25 голосов
/ 25 июня 2011

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

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