Makefile ifeq逻辑AND

Aru*_*ar 30 unix boolean-logic gnu makefile gnu-make

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

ifeq ($(TEST_FLAG),TRUE && ($(DEBUG_FLAG),FALSE))
true statement 
else 
false statement
endif
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法呢?

Has*_*kun 29

您可以使用ifeq值的串联,例如.

ifeq ($(TEST_FLAG)$(DEBUG_FLAG),TRUEFALSE)
   do something
endif
Run Code Online (Sandbox Code Playgroud)

也可以使用条件函数,它们更有可能在循环中有用(因为它ifeq可能不会在循环中做到你想要的,它将被测试一次).


Jac*_*lly 25

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

ifeq ($(TEST_FLAG),TRUE)
ifeq ($(DEBUG_FLAG),FALSE)
# Stuff
endif
endif
Run Code Online (Sandbox Code Playgroud)

  • "虚假陈述"(在"其他"部分)必须重复. (3认同)
  • 如果我想使用或者怎么办? (2认同)