Makefile ifeq逻辑AND

时间:2011-06-23 08:46:39

标签: unix makefile gnu-make gnu boolean-logic

我想在GNU make文件的if循环中检查多个条件。这是一个例子:

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

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:28)

您可以将ifeq与值结合使用,例如

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

也可以使用条件函数,它们更有可能在循环中有用(因为ifeq可能不会在循环中执行您所期望的操作,它将被测试一次)。

答案 1 :(得分:24)

虽然Hasturkun的解决方案可行,但我认为写这个的惯用方法是:

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