Makefile中条件判断ifeq、ifneq、ifdef、ifndef的含义

一、ifeq

1、举例
根据 $(CC) 取值不同,执行不同的处理逻辑

libs_for_gcc = -lgnu 
normal_libs = 

foo: $(objects) 
ifeq ($(CC),gcc) 
      $(CC) -o foo $(objects) $(libs_for_gcc) 
else 
      $(CC) -o foo $(objects) $(normal_libs) 
endif 
  • ifeq:表示条件语句的开始,并指定一个条件表达式。表达式包含两个参数,以逗号分隔,表达式以圆括号括起,表示判断表达式与某个值是否相等
  • else:表示条件表达式为假的情况
  • endif:表示一个条件语句的结束,任何一个条件表达式都应该以endif结束

2、条件表达式的语法

// 表示条件关键字,如“ifeq”
; 
   ; 
else 
   ; 
endif 

二、ifneq(与 ifeq 相反)

举例:
比较参数“arg1”和“arg2”的值是否相同。如果不同,则为

ifneq (;, ;)  

三、ifdef

举例:
如果变量 variable-name; 的值 非空,表达式为。否则,表达式为假。当然,variable-name; 同样可以是一个函数的返回值。注意,ifdef只是测试一个变量是否有值,其并不会把变量扩展到当前位置

ifdef ;  

四、ifndef(与 ifdef 相反)

举例:

ifndef ; 

你可能感兴趣的:(GO,makefile)