使用条件判断,可让make工具根据运行时的不一样状况选择不一样的执行分支。条件表达式能够是比较变量的值、比较变量及常量。工具
语法以下:测试
<conditional-directive> <text-if-true> endif 或者 <conditional-directive> <text-if-true> else <text-if-flase> endif
其中,<conditional-directive>表示条件关键字。条件关键字有4个,下面分别介绍:spa
ifeq关键字表示若是相等则执行,格式以下:code
ifeq (<arg1>, <arg2>) ifeq '<arg1>' '<arg2>' ifeq "<arg1>" "<arg2>"
该关键字比较arg1和arg2的值是否相等,若是相同,则表达式为真。it
ifneq关键字表示若是不相等则执行,格式如上。io
ifdef关键字表示若是值非空则执行,格式以下:class
ifdef <variable-name>
ifdef关键字判断<variable-name>的值。若是非空则表达式为真,ifdef只是测试一个变量是否有值,并不会把变量扩展到当前位置。变量
ifndef关键字表示若是值为空则执行,其格式以下:扩展
ifndef <variable-name>
下面演示条件表达式:file
var1 = #这里是一个空值 var2 = hello all : ifdef $var1 #判断var1是否认义 echo "var1 is defined" else echo "var1 is undefined" endif ifeq ($(var1) , $(var2)) #判断var1和var2的值 echo "they are equal" else echo "they are not equal" endif .PHONY : all
执行结果: