主要有以下四种:
(1)
ifeq (条件表达式)
endif
(2)
ifeq (条件表达式)
else
endif
(3)
ifdef (条件表达式) #非空为真
else
endif
(4)
ifndef (条件表达式) #非空为真
else
endif
说明:
(1)条件表达式可以是比较变量的值,或是比较变量和常量的值。
(2)注意条件分支里面不要以tab键开始,否则会被认为是命令
(3)要注意条件表达式里面尽量不要是自动变量,因为条件变量的值是不确定的,有点类似于c语言里面if语句里面的表达式不能是变量一样。
(4)件语句只能用于控制 make 实际执行的 Makefile 文件部分,不能控制规则的 shell 命令执行的过程
综合如下:
使用方式:
ifeq (ARG1, ARG2)
ifeq 'ARG1' 'ARG2'
ifeq "ARG1" "ARG2"
ifeq "ARG1" 'ARG2'
ifeq 'ARG1' "ARG2"
示例:
ibs_for_gcc= -lgnu
normal_libs=
foo:$(objects)
ifeq($(CC),gcc) #判断$(CC)与gcc是否相等
$(CC) -o foo $(objects) $(libs_for_gcc)
else
$(CC) -o foo $(objects) $(noemal_libs)
endif