Aru*_*ar 30 unix boolean-logic gnu makefile gnu-make
我想在if
GNU 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)