✅ 목표 (Goal)

Makefile와 sciprt 파일은 서로 다르다.

✅ make 파일은 스크립트 파일이 아니다!

make 파일은 소스코드도 아니고, 쉘 스크립트 파일도 아니다!

그래서 make 파일을 스크립트 파일이라고 부르지 않고, 기술 파일이라고 부른다.

기술 파일이라는 용어가 중요한 것이 아니고 make 파일이 스크립트 파일이 아니라는 것만 알고 있으면 된다.

따라서 쉘스크립트에서 사용할수 있는 변수, 대입, 연산이란 단어를 사용해서도 안되며 그러한 기능도 당연히 없다.

그러나 make 파일을 작성하다 보면 마치 변수가 대입되는것과 같은 기능(대표적으로 매크로)이 있어 이를“대입”이라고 표현하는데 정확하게는 “치환” 일뿐 (프로그래밍 언어나 쉘 스크립트에서와 같이) 대입되는 것이 아니다.

또한 분명 쉘 스크립트 파일이 아니라고 했음에도 불구하고 make 파일에서 쉘 스크립트를 쓸수 있기는 하다. 위에서 우리가 작성한 echo 역시 쉘 스크립트이다.

이 점을 강조하는 이유는 make 파일 작성시 쉘 스크립트처럼 작성하다보면 안되는 경우가 많은데 “대체 왜 안되는지?” 모르기 때문이다.

다시한번 말하자면 make 파일은 스크립트 파일이 아니다.