Makefile ifeq 和 ifneq 条件指令学习
在Makefile中,你可以使用ifeq
和ifneq
条件指令来测试变量的值。
下面是对这两个指令的简单介绍:
ifeq:这个指令用于测试两个值是否相等:
- 如果相等,它就会执行接下来的部分,直到对应的
endif
; - 如果不相等,它就会跳过这一部分。
ifeq ($(CC),gcc)
CFLAGS = -Wall
else
CFLAGS =
endif
在这个例子中,如果变量CC
的值是gcc
,那么变量CFLAGS
就会被设置为-Wall
;否则CFLAGS
将为空。
ifneq:这个指令和ifeq
指令正好相反,它用于测试两个值是否不相等:
- 如果不相等,它就会执行接下来的部分,直到对应的
endif
; - 如果相等,它就会跳过这一部分。
ifneq ($(CC),gcc)
CFLAGS =
else
CFLAGS = -Wall
endif
在这个例子中,如果变量CC
的值不是gcc
,那么变量CFLAGS
将为空;否则CFLAGS
就会被设置为-Wall
。
注意,ifeq
和ifneq
指令的参数可以是变量,也可以是字符串。如果是字符串,你需要用引号将它们括起来,例如ifeq ("$(CC)","gcc")
。