Built-in Functions

make 에서 제공하는 스크립트 기능은 프로그래밍 언어가 아니고 프로젝트를 빌드 하는데 주로 사용되는 파일명, 경로명 처리, 리스트 프로세싱 builtin 함수들을 활용하는 정도입니다. 산술연산을 할 수 있는 연산자라든지 데이터 타입 같은 것은 없고 단순 텍스트 프로세싱입니다. 따라서 if 문에서 참, 거짓을 판단할 때도 단순히 값이 empty 인지 아닌지로만 구분합니다. builtin 함수 외에 필요한 기능이 있으면 shell 함수나 != 연산자를 이용해 외부 명령을 실행하면 됩니다.

참, 거짓

변수값이 empty 가 되어 if 문에서 거짓이 되는 경우는 다음과 같은 경우입니다.

AA :=

$(info $(if $(AA) ,yes,no))
결과 : no

그 외에 공백문자를 직접 값으로 정의하여 사용하거나 "" 스트링은 모두 non-empty 가되어 참이 됩니다.

AA := $(empty) $(empty)
AA != echo " "
AA := ""
AA := "

$(info $(if $(AA),yes,no))
결과 : yes
-------------------------------------

foo = $2

$(info $(if $(call foo,1, ,3),yes,no))
결과 : yes

$(info $(if $(call foo,1,,3),yes,no))
결과 : no