1. 왜 사용하는가?
- 동일한 이름의 파일간의 충돌을 피하기 위해
- 퍼포먼스를 향상시키기 위해
(-_-?) 뒤에서 자세히 알아보도록 하자.
2. 무엇인가?
1. 기본적인 형태
- makefile의 기본적인 형태는 아래와 같다.
(target) : dependencies
recipe
2. 안쓰면 안되는 이유를 알려주마.
clean :
rm *.o temp
- 첫번째 이유
- rm이라는 명령어는 파일을 삭제하는 명령어이다.
- 그렇다면 clean이라는 target은 만들어지지 않겠지..
- 그렇다면 make clean을 사용하는 순간 항상 rm 명령어는 실행되게 되겠지...
- 왜냐면 clean이라는 타겟이 없으니까 Incremental build에 따라 이미 존재한다면 바뀐 부분만 바꾸면 되는데 영원히 없을 예정이니 항상 실행됨.(있으나 없으나)
- 두번째 이유
- 만약 우연하게도 나는 makefile과 동일한 위치에 clean이라는 파일을 만들었다.
- dependencies가 없기때문에 clean이라는 친구는 항상최신인것으로 간주 될 것이다.
- 그럼 실행될까? NOPE
3. 그래서 쓴다. Phony
4. 참고 자료