makefile条件判断语句

条件判断语句

条件语句可以根据一个变量的值来控制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

ifneqifndef的判断条件和上面的例子对应的判断条件相反,用法类似,就不再单独举例子了。

需要注意的是,条件判断语句类似于C语言里面的宏,预处理阶段有效,执行阶段无效。

你可能感兴趣的:(makefile条件判断语句)