Make之条件判断语句

Makefile条件判断即使make能像编程语言一样,使用条件判断类似if这种语句来选择执行的分支

  • 语法规则如下
    1
    2
    3
    <conditional-directive>
    <text-if-true>
    endif

或者

1
2
3
4
5
<conditional-directive>
<text-if-true>
else
<text-if-false>
endif

此处的conditional-directive代表了条件判断语句,下面的text-if-true代表条件成立情况下要执行的分支。
条件判断语句有四种,分别是:ifeq,ifneq,ifdef,ifndef

  • ifeq:有两个参数,值相等条件为真
  • ifneq:值不相等条件为假
  • ifdef:如果变量定义且不为空条件为真
  • ifndef:如果变量未定义或者为空则为真
    很好理解的东西,下边看一个具体的示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    flag=True
    ifeq ($(flag),True)
    var=flag is True
    else
    var=flag is False
    endif

    tar:
    @echo $(var)

结果:

1
flag is True