Phony Target

taeskim·2021년 5월 28일
0

Makefile

목록 보기
1/1
post-thumbnail

1. 왜 사용하는가?

  1. 동일한 이름의 파일간의 충돌을 피하기 위해
  2. 퍼포먼스를 향상시키기 위해

(-_-?) 뒤에서 자세히 알아보도록 하자.

2. 무엇인가?

1. 기본적인 형태

  • makefile의 기본적인 형태는 아래와 같다.
(target) : dependencies
	recipe

2. 안쓰면 안되는 이유를 알려주마.

  • 아래와 같이 작성했다고 가정해 보자.
clean : 
	rm *.o temp
  1. 첫번째 이유
  • rm이라는 명령어는 파일을 삭제하는 명령어이다.
  • 그렇다면 clean이라는 target은 만들어지지 않겠지..
  • 그렇다면 make clean을 사용하는 순간 항상 rm 명령어는 실행되게 되겠지...
  • 왜냐면 clean이라는 타겟이 없으니까 Incremental build에 따라 이미 존재한다면 바뀐 부분만 바꾸면 되는데 영원히 없을 예정이니 항상 실행됨.(있으나 없으나)
  1. 두번째 이유
  • 만약 우연하게도 나는 makefile과 동일한 위치에 clean이라는 파일을 만들었다.
  • dependencies가 없기때문에 clean이라는 친구는 항상최신인것으로 간주 될 것이다.
  • 그럼 실행될까? NOPE

3. 그래서 쓴다. Phony

4. 참고 자료

profile
Humble and Honest

0개의 댓글