더미 타겟과 특수 타겟

MySprtlty·2022년 7월 11일
0

make utility

목록 보기
7/12
post-thumbnail

🏷️더미 타겟

  • 일반적으로 타겟은 생성될 파일이지만, 더미 타겟(dummy target)은 생성되지 않는 개념적인 타겟이다.
  • 더미 타겟은 재귀적으로 make를 사용할 때 사용하거나 매번 수행해야 될 룰을 정의할 때 사용한다.
    • 🖇️cf) 재귀적인 make는 추후에 설명한다.
  • 다음과 같이 clean 타겟을 정의해두면, make clean명령으로 간단하게 오브젝트 파일들을 지울 수 있다.
clean:
	rm -rf *.o

🏷️특수 타겟

  • Makefile 전체에 형향을 미칠 수 있는 make기능을 정의할 때 사용하는 타겟을 특수 타겟이라고 한다.

  • 특수 타겟의 종류는 다음과 같다.

    특수 타겟설명
    .DEFAULTmake가 요청된 타겟을 빌드할 룰을 Makefile이나 확장자 규칙에서 찾지 못하면, .DEFAULT타겟에 기술된 명령어를 수행
    .IGNORE명령어들이 반환하는 오류 코드를 무시한다. (모든 명령어 앞에 -를 붙인 것과 동일하다.)
    .PRECIOUS.PRECIOUS타겟에 기술된 파일들은 빌드 오류가 발생해도 지우지 않는다.
    .SILENT실행되는 명령어들을 화면에 출력하지 않는다. (모든 명령어 앞에 @를 붙인 것과 동일하다.)
    .SUFFIXES.SUFFIXES타겟에 정의된 확장자들은 확장자 규칙과 연관될 수 있다.
    .EXPORT_ALL_VARIABLESMakefile내에 모든 매크로를 하위 Makefile에 전달한다.
    .PHONY디렉토리에 타겟과 같은 이름의 파일이 존재할 경우에 충돌이 하는 것을 방지한다
  • 🖇️cf. 확장자 규칙은 추후에 설명한다.

📌.PHONY

  • 🔍ex)
.PHONY: test1 test2

test1:
	@echo test1
  • test1파일이 있는 현재 디렉토리에서 make test1 명령을 실행할 때, .PHONY타겟에 지정하지 않은 경우 오류가 발생한다.
  • voca🗽) phoney: 가짜

0개의 댓글