My Makefile has a line which reads:
export INTEGER_VAR ?= $(if $(BOOL_VAR),2,5)
Then INTEGER_VAR
is used to make some decisions in the following lines.
When I do make BOOL_VAR=false
the INTEGER_VAR
takes the value of 2
Can anyone help me figure out why?
I am using GNU Make version 4.2.1
CodePudding user response:
Because $(if
just checks for empty/non-empty. It has no concept of types or things like true
or false
. So with BOOL_VAR=false
the tested thing $(BOOL_VAR)
is not an empty string and so is logically true.