Clark Grubb의 Makefile 스타일 가이드는 다음을 권장합니다.
- 모든 가짜 대상은 .PHONY의 전제 조건으로 만들어 선언해야합니다.
- 모든 가짜 대상을 한곳에 나열하지 않고 대상 선언 바로 직전에 각 가짜 대상을 .PHONY의 전제 조건으로 추가하십시오.
- .PHONY의 전제 조건은 파일 대상이 아니어야합니다.
- 가짜 대상은 파일 대상의 전제 조건이되어서는 안됩니다.
예를 들어, 이것은 다음을 의미합니다.
.PHONY: all
all:
echo "Executing all ..."
.PHONY: of
of:
echo "Executing of ..."
.PHONY: my
my:
echo "Executing my ..."
.PHONY: rules
rules:
echo "Executing rules ..."
여러 PHONY
대상이 허용됩니다. 이 스택 오버플로 질문 : "gnu makefile에 여러 개의 .PHONY 대상을 가질 수 있습니까?"도 참조하십시오.
또한 귀하의 질문에 직접 언급되지는 않지만 PHONY
프로젝트에서 실제 입력 또는 중간 파일의 이름이 같은 대상 이 없도록주의해야합니다 . 예를 들어, 프로젝트에 소스 코드 파일 rules
(접미사가없는) 이 가상으로 있는 경우 PHONY
대상 에 해당 문자열을 포함 시키면 예상 된 make
동작 이 중단 될 수 있습니다.