La guía de estilo Makefile de Clark Grubb recomienda que:
- Todos los objetivos falsos deben declararse haciéndolos requisitos previos de .PHONY.
- agregue cada objetivo falso como prerrequisito de .PHONY inmediatamente antes de la declaración del objetivo, en lugar de enumerar todos los objetivos falsos en un solo lugar.
- Ningún objetivo de archivo debe ser un requisito previo de .PHONY.
- los objetivos falsos no deben ser requisitos previos de los objetivos de archivo.
Para su ejemplo, esto significaría:
.PHONY: all
all:
echo "Executing all ..."
.PHONY: of
of:
echo "Executing of ..."
.PHONY: my
my:
echo "Executing my ..."
.PHONY: rules
rules:
echo "Executing rules ..."
Se PHONY
permiten múltiples objetivos; vea también esta pregunta de desbordamiento de pila: "¿Es posible tener múltiples objetivos .PHONY en un archivo make de GNU?"
Además, aunque esto no se menciona directamente en su pregunta, se debe tener cuidado de no tener un PHONY
objetivo con el mismo nombre de una entrada real o archivos intermedios en su proyecto. Por ejemplo, si su proyecto hipotéticamente tenía un archivo de código fuente llamado rules
(sin sufijo), la inclusión de esa cadena en un PHONY
destino podría romper el make
comportamiento esperado .