我想检查 GNU make 文件的
if
循环中的多个条件。这是一个例子:
ifeq ($(TEST_FLAG),TRUE && ($(DEBUG_FLAG),FALSE))
true statement
else
false statement
endif
正确的做法是什么?
虽然 Hasturkun 的解决方案可行,但我认为写这个的惯用方法是:
ifeq ($(TEST_FLAG),TRUE)
ifeq ($(DEBUG_FLAG),FALSE)
# Stuff
endif
endif
您可以将
ifeq
与您的值串联使用,例如。
ifeq ($(TEST_FLAG)$(DEBUG_FLAG),TRUEFALSE)
do something
endif
也可以使用条件函数,这在循环中更有可能有用(因为
ifeq
可能不会在循环中执行您期望的操作,它将仅测试一次)。
您可以将 false 语句放在两个 endif 后面:
ifeq ($(TEST_FLAG),TRUE)
ifeq ($(DEBUG_FLAG),FALSE)
true statement
endif
endif
false statement