Skip to content

Make:SpecialBuiltInTargetNames

Make에서 특수 내장 타겟 이름(Special Built-in Target Names)은 어떤 이름들은 그들이 타겟으로 나타날 때 특수한 의미를 갖는다.

List of Special Built-in Target Names

.PHONY
특수 타겟 .PHONY의 종속물들은 포니 타겟들로 생각된다. 그런 타겟을 생각할 때 make는 그 이름의 파일이 존재하는지 아니면 그것의 최종-변경 시간이 무엇인지 생각하지 않고서 그것의 명령들을 무조건 실행할 것이다.
.SUFFIXES
특수 타겟 .SUFFIXES의 종속물들은 확장자 규칙(suffix rule)을 검사하는 데 사용되는 확장자들의 리스트이다. (See section Old-Fashioned Suffix Rules1).
.DEFAULT
.DEFAULT로 지정된 명령들이 어떤 규칙도 찾을 수 없는 임의의 타겟들에 대해서 사용된다(명시적 규칙이나 묵시적 규칙들). (See section Defining Last-Resort Default Rules2). .DEFAULT 명령들이 지정되면 종속물로 업급된 모든 파일들, 그러나 어떤 규칙의 타겟이 아닌 파일들은 이런 명령들을 실행할 것이다. (See section Implicit Rule Search Algorithm3).
.PRECIOUS
.PRECIOUS가 의존하는 타겟들은 다음과 같은 특별한 취급을 받는다. make가 명령 실행 중에 죽거나 인터럽트를 받으면, 그 타겟은 삭제되지 않는다. (See section Interrupting or Killing make4). 또한, 그 타겟이 중간 파일이라면, 더이상 필요하지 않을 때, 일반적인 경우처럼, 삭제되지 않을 것이다. (See section Chains of Implicit Rules5). 여러분은 또한 묵시적 규칙의 타겟 패턴('%.o'와 같은)을 특별한 타겟 .PRECIOUS의 종속 파일로 지정해서 그 파일의 이름과 매치하는 타겟 패턴 매치의 규칙에 의해서 생성된 중간 파일들을 보존할 수 있다.
.INTERMEDIATE
.INTERMEDIATE가 의존하는 타겟들은 중간 파일들로 취급된다. (See section Chains of Implicit Rules6). 종속물이 없는 .INTERMEDIATE는 makefile에서 언급된 모든 타겟들을 중간 파일들로 마킹한다.
.SECONDARY
.SECONDARY가 의존하는 타겟들은 중간 파일들로 취급된다. 단 그들은 자동으로 삭제되지 않는다. (See section Chains of Implicit Rules7). 종속물이 없는 .SECONDARY는 makefile에서 언급된 모든 타겟을 secondary로 마킹한다.
.IGNORE
.IGNORE에 대해서 종속물들을 지정하면 make는 그런 특수한 파일들에 대해서 실행한 명령들의 실행에서 발생한 에러들을 무시한다. .IGNORE에 대한 명령들은 의미가 없다. 종속물이 없이 타겟으로써 언급되면 .IGNORE는 모든 파일들에 대한 명령들의 실행에서 발생하는 에러들을 무시하라고 말하는 것이다. 이런 .IGNORE의 사용은 역사적인 호환성만을 위해서 지원된다. 이것이 makefile에 있는 모든 명령에 영향을 미치기 때문에 이것은 아주 유용한 것이 아니다. 우리는 여러분이 특정한 명령들에서 에러들을 무시하는 선택적인 방법을 좀 더 사용하기를 권한다. (See section Errors in Commands8).
.SILENT
.SILENT에 대한 종속물들을 지정한다면 make는 이런 특정 파일들을 다시 만드는 명령들을 실행하기 전에 이들을 디스플레이하지 않을 것이다. .SILENT에 대한 명령들은 의미가 없다. 종속물이 없는 타겟으로써 언급된다면 .SILENT는 그것들을 실행하기 전에 모든 명령들을 디스플레이하지 않도록 말하는 것이다. 이런 .SILENT의 사용법은 역사적 호환성만을 위해서 지원되는 것이다. 특정 명령들이 침묵하게 하도록 하기 위해서 좀 더 선택적인 방법을 사용하기를 권장한다. (See section Command Echoing9). make의 특정한 실행에 대해서 모든 명령들을 잠잠하게 하기를 원한다면 -s--silent옵션을 사용하라 (See section Summary of Options10).
.EXPORT_ALL_VARIABLES
타겟으로써 언급됨으로써 이것은 make가 모든 변수들을, 디폴트로 차일드 프로세스들에게 익스포트하도록 한다. (See section Communicating Variables to a Sub-make11).

See also

References


  1. Viper.pe.kr-make-ko.7z의 viper.pe.kr/make-ko/make-ko_10.html#SEC102 항목 참조 

  2. Viper.pe.kr-make-ko.7z의 viper.pe.kr/make-ko/make-ko_10.html#SEC101 항목 참조 

  3. Viper.pe.kr-make-ko.7z의 viper.pe.kr/make-ko/make-ko_10.html#SEC103 항목 참조 

  4. Viper.pe.kr-make-ko.7z의 viper.pe.kr/make-ko/make-ko_5.html#SEC48 항목 참조 

  5. Viper.pe.kr-make-ko.7z의 viper.pe.kr/make-ko/make-ko_10.html#SEC93 항목 참조 

  6. Viper.pe.kr-make-ko.7z의 viper.pe.kr/make-ko/make-ko_10.html#SEC93 항목 참조 

  7. Viper.pe.kr-make-ko.7z의 viper.pe.kr/make-ko/make-ko_10.html#SEC93 항목 참조 

  8. Viper.pe.kr-make-ko.7z의 viper.pe.kr/make-ko/make-ko_5.html#SEC47 항목 참조 

  9. Viper.pe.kr-make-ko.7z의 viper.pe.kr/make-ko/make-ko_5.html#SEC44 항목 참조 

  10. Viper.pe.kr-make-ko.7z의 viper.pe.kr/make-ko/make-ko_9.html#SEC88 항목 참조 

  11. Viper.pe.kr-make-ko.7z의 viper.pe.kr/make-ko/make-ko_5.html#SEC51 항목 참조