Makefile的条件执行
-
条件语句中使用到了三个关键字:”ifeq”、“else”、“endif”,其中:
“ifeq”表示条件语句的开始,并指定了一个比较条件(相等)。之后是用圆括号括包围的、使用逗号“,”分割的两个参数,和关键字“ifeq”用空格分开。参数中的变量引用在进行变量值比较时被展开。“ifeq”之后就是当条件满足make 需要执行的,条件不满足时忽略。
“else”之后就是当条件不满足时的执行部分。不是所有的条件语句都需要此部分。
“endif”表示一个条件语句的结束,任何一个条件表达式都必须以“endif”结束。 -
一个简单的不包含“else”分支的条件判断语句的语法格式为:
CONDITIONAL-DIRECTIVE
TEXT-IF-TRUE
endif
表达式中“TEXT-IF-TRUE”可以是若干任何文本行,当条件为真时它就将被make作为需要执行的一部分。当条件为假时,不作为需要执行的一部分。
ifeq
,判断参数是否相等;ifneq
,判断参数是否不相等;ifdef
,用来判断一个变量是否已经定义;ifdef
只是测试一个变量是否有值,不会对变量进行替换展开来判断变量的值是否为空。ifndef
,关键字“ifndef”实现的功能和“ifdef”相反;