I would like to check multiple conditions in an if
loop of GNU make file. Here's an example:
ifeq ($(TEST_FLAG),TRUE && ($(DEBUG_FLAG),FALSE)) true statement else false statement endif
What's the right way to do it?
The ifeq directive begins the conditional, and specifies the condition. It contains two arguments, separated by a comma and surrounded by parentheses. Variable substitution is performed on both arguments and then they are compared.
?= indicates to set the KDIR variable only if it's not set/doesn't have a value. For example: KDIR ?= "foo" KDIR ?= "bar" test: echo $(KDIR)
You can use ifeq
with a concatenation of your values, eg.
ifeq ($(TEST_FLAG)$(DEBUG_FLAG),TRUEFALSE) do something endif
It's also possible to use the Conditional functions, which are more likely to be useful in a loop (as ifeq
will probably not do what you expect in a loop, it will be tested exactly once).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With