Guia de estilo Makefile do Clark Grubb recomenda:
- All phony targets should be declared by making them prerequisites of .PHONY.
- add each phony target as a prerequisite of .PHONY immediately before the target declaration, rather than listing all the phony targets in a single place.
- No file targets should be prerequisites of .PHONY.
- phony targets should not be prerequisites of file targets.
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 ..."
Vários alvos PHONY
são permitidos; veja também esta pergunta do Stack Overflow: " É possível ter vários destinos .PHONY em um makefile 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
de destino com o mesmo nome de uma entrada real ou arquivos intermediários em seu projeto. Por exemplo, se o seu projeto tiver hipoteticamente um arquivo de código-fonte denominado rules
(sem sufixo), a inclusão dessa sequência em um PHONY
de destino poderá interromper o comportamento make
esperado.