条件判断语句
条件语句可以根据一个变量的值来控制make执行或者忽略makefile的特定部分。条件语句可以是两个不同变量、或者变量和常量值的比较。
注意:条件语句只能用于控制make实际执行的makefile文件部分,它不能控制规则的shell命令执行过程。
条件判断语句的关键字如下
关键字 | 功能 |
---|---|
ifeq |
判断两个参数是否相同,相同为true ,不相同为false
|
ifneq |
判断两个参数是否不相同,不相同为true ,相同为false
|
ifdef |
判断变量是否赋值,如果赋值为true ,没赋值为false
|
ifndef |
判断变量是否赋值,如果没赋值为true ,赋值为false
|
举个例子来说明条件判断语句的用法
madpenguin := boy
richard := boy
var :=
test :
ifeq ($(madpenguin),$(richard))
@echo "madpenguin == richard"
else
@echo "madpenguin != richard"
endif
ifdef var
@echo "var is defined"
else
@echo "var is not defined"
endif
.PHONY : test
运行的结果如下
madpenguin == richard
var is not defined
ifneq
和ifndef
的判断条件和上面的例子对应的判断条件相反,用法类似,就不再单独举例子了。
需要注意的是,条件判断语句类似于C语言里面的宏,预处理阶段有效,执行阶段无效。