🏷️Makefile 작성 규칙
- Makefile을 작성할 때 지켜야 할 몇가지 규칙이 있다.
target1 : dependency1 dependency2
행을 타겟절, command
행을 명령절이라고 한다.
📌1. 명령의 시작은 반드시 TAB
으로 시작해야 한다.
target : dependency1 dependency2
<TAB> command1
<TAB> command2
- 매우 중요한 규칙이다.
TAB
으로 시작하지 않으면, make는 명령절이 아닌 타겟절로 해석해버려 오류가 발생한다.
📌2. 비어 있는 행은 무시된다.
target : dependency1 dependency2
command1
command2
- 타겟절과 명령절 사이에 비어있는 행이 존재한다.
📌3. #
은 셸 스크립트처럼 주석이다.
📌4. 행이 길어지면 \
를 사용해서 이어나갈 수 있다.
target : dependency1 dependency2\
dependency3
command1
command2
- 종속 항목이 많아서
\
로 이어나갔다.
- 셸 스크립트와 마찬가지로
\
를 만나면 \
는 공백으로 치환되고, 밑에 행이 \
가 있던 행의 바로 뒤에 붙게된다.
📌5. ;
을 사용하면 타겟절과 명령절을 한 행에 쓸 수 있다.
target : dependency1 dependency2; command1
command2
📌6. 종속 항목이 없는 타켓도 가능하다.
target :
command1
command2
- 자주 사용되는 규칙이다.
- 종속 항목이 없기 때문에, 명령절이 바로 수행된다.
- 명령절이 모두 수행된 후, 타겟이 실제 파일로 존재하지 않아도 룰을 해석하는 순간 만큼은 만들어 진 것으로 간주한다.
📌7. 명령 부분에 어떤 명령어가 오든 상관 없다.
target : dependency1 dependency2
cp -f file1 file2
- 꼭 컴파일과 관련된 명령어가 오지 않아도 된다.
cp
명령어 같은 평범한 명령어가 와도 된다.