Посібник зі стилю Makefile Кларка Грубба рекомендує:
- Усі фальшиві цілі повинні бути оголошені, зробивши їх передумовами .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
Дозволено декілька цілей; див. також запитання щодо переповнення стека: "Чи можливо мати кілька цілей .PHONY у файлі gnu makefile?"
Крім того, хоча це не вказано безпосередньо у вашому запитанні, слід бути обережним, щоб PHONY
у вашому проекті не було цілі з тим самим іменем фактичних вхідних або проміжних файлів. Наприклад, якщо ваш проект гіпотетично мав файл вихідного коду з назвою rules
(без суфіксу), включення цього рядка в PHONY
ціль може порушити очікувану make
поведінку.