O guia de estilo Makefile de Clark Grubb recomenda que:
- Todos os alvos falsos devem ser declarados, tornando-os pré-requisitos de .PHONY.
- adicione cada alvo falso como um pré-requisito de .PHONY imediatamente antes da declaração de destino, em vez de listar todos os destinos falsos em um único local.
- Nenhum destino de arquivo deve ser um pré-requisito para .PHONY.
- alvos falsos não devem ser pré-requisitos dos alvos de arquivos.
Para o seu exemplo, isso significaria:
.PHONY: all
all:
echo "Executing all ..."
.PHONY: of
of:
echo "Executing of ..."
.PHONY: my
my:
echo "Executing my ..."
.PHONY: rules
rules:
echo "Executing rules ..."
Múltiplos PHONY
alvos são permitidos; veja também a pergunta Stack Overflow: "É possível ter vários destinos .PHONY em um arquivo de criação do gnu?"
Além disso, embora isso não seja mencionado diretamente na sua pergunta, deve-se tomar cuidado para não ter um PHONY
destino com o mesmo nome de uma entrada real ou arquivos intermediários no seu projeto. Por exemplo, se o seu projeto hipoteticamente tivesse um arquivo de código-fonte chamado rules
(sem sufixo), a inclusão dessa string em um PHONY
destino poderia interromper o make
comportamento esperado .