if-else 구문에서 Makefile 구문 오류가 발생했습니다.

if-else 구문에서 Makefile 구문 오류가 발생했습니다.

안녕하세요, 저는 이 문제로 오랫동안 고민해 왔습니다. 나는 이 메이크파일이 "ok"를 출력할 것으로 기대합니다. 하지만 다음을 호출할 때 구문 오류가 발생합니다 make.

ifeq(0, 0)

/bin/sh: 1: 구문 오류: 예상치 못한 단어(")" 필요)

make: *** [기본값] 오류 2

암호:

CHK = 0

default:
    ifeq ($(CHK), 0)
        echo "ok"
    else
        echo "not ok"
    endif

답변1

이는 셸 명령어가 아닌 Makefile 명령어이므로 앞에 탭 문자를 붙여서는 안 됩니다.

CHK = 0

default:
ifeq ($(CHK), 0)
    echo "ok"
else
    echo "not ok"
endif

그렇지 않으면 Make는 이를 자체적으로 처리하는 대신 쉘에 전달합니다.

관련 정보