คู่มือสไตล์ Makefileของ Clark Grubb แนะนำว่า:
- เป้าหมายปลอมทั้งหมดควรได้รับการประกาศโดยทำให้เป็นสิ่งที่จำเป็นต้องมีสำหรับ. 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
อนุญาตเป้าหมายหลายเป้าหมาย ดูเพิ่มเติมได้ที่คำถาม Stack Overflow: "เป็นไปได้หรือไม่ที่จะมีเป้าหมาย. PHONY หลายรายการในไฟล์ gnu makefile"
นอกจากนี้แม้ว่าจะไม่ได้กล่าวถึงโดยตรงในคำถามของคุณคุณจะต้องระมัดระวังไม่ให้มีPHONY
เป้าหมายที่มีชื่อเดียวกันของไฟล์อินพุตจริงหรือไฟล์สื่อกลางในโครงการของคุณ ตัวอย่างเช่นหากโครงการของคุณมีชื่อไฟล์ซอร์สrules
(โดยไม่มีคำต่อท้าย) สมมุติว่าการรวมสตริงนั้นในPHONY
เป้าหมายอาจทำให้make
เกิดพฤติกรรมที่คาดหวังได้