0%

Makefile中条件判断

使用条件判断可以让make根据运行时的不同情况选择不同的执行分支。

一、介绍

      使用条件判断可以让make根据运行时的不同情况选择不同的执行分支,条件表达式可以是比较变量的值,或是比较变量和常量的值。

  1. 语法
1
2
3
4
5
ifxxx (arg1,arg2)
#do true
else #可省略
#do false #可省略
endif
  1. 条件常用格式

    • ifxxx (arg1,arg2)
    • ifxxx “arg1” “arg2”
    • ifxxx ‘arg1’ ‘arg2’
    • ifxxx “arg1” ‘arg2’
    • ifxxx ‘arg1’ “arg2”
  2. 分类

判断 作用
ifeq 判断参数是否相等,相等为true,否则为false
ifneq 判断参数是否不相等,不相等为true,否则为false
ifdef 判断参数是否有值,有值为true,否则为false
ifndef 判断参数是否没有值,没有值为true,否则为false

二、使用

  1. 定义makefile文件
1
2
3
4
5
6
7
8
9
10
11
.PHONY : test

var1 := 123
var2 := $(var1)

test:
ifeq ($(var1),$(var2))
@echo success
else
@echo fail
endif
  1. 执行makemake test,正常会输出success

  2. 注意:

    • ifxxx 后面有个空格
    • ifxxx:当ifxxx没有缩进时make会正确识别它们,将其作为分支选择的标识;当ifxxx有缩进时,make将它们当做普通的shell script
      • 意思就是ifxxx前不用加tab

三、参考

  1. 参考一