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语言里面的宏,预处理阶段有效,执行阶段无效。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容