🏷️조건문
- make에도 조건문이 존재한다.
else if
(혹은 elif
)는 없다.
📌Equal
ifeq
와 ifneq
는 커널 Makefile에서 많이 사용되므로 꼭 알아두자.
ifeq ~ else ~ endif
ifeq ~ else ~ endif
문의 기본적인 구조는 위와 같다.
all :
ifeq (값1,값2)
수행문
else
수행문
endif
ifeq
와 ( )
사이는 공백문자가 있어야 한다.
else
는 생략이 가능하여 다음과 같이 사용할 수 있다.
all :
ifeq (값1,값2)
수행문
endif
all :
ifeq ($(CC),gcc)
@echo "C Compiler는 gcc"
else
@echo "C Compiler는 cc"
endif
- 내부 매크로 CC는 cc로 정의되어 있기에
C Compiler는 cc
가 출력된다.
- NUL문자와 비교할 때는
ifeq (값,)
같이 사용하면 된다.
ifneq ~ else ~ endif
- if not equal의 구조인데, 크게 다른 것은 없다.
all :
ifneq (값1,값2)
수행문
else
수행문
endif
📌Define
ifdef ~ else ~ endif
ifdef ~ else ~ endif
의 기본 구조는 다음과 같다.
all :
ifdef 매크로
수행문
else
수행문
endif
all :
ifdef AS
@echo "As is defined."
else
@echo "As isn't defined."
endif
- 매크로
AS
는 내부 매크로이므로, 당연히 정의되어 있다.
ifndef ~ else ~ endif
all :
ifndef 매크로
수행문
else
수행문
endif