.PHONY
關於 .PHONY,google 到的結果都是說這是個假目標(fake target)。目前看到解釋最淺顯易懂的是這個網誌:.PHONY: clean
clean:
make -C $(KERN_VER_DIR)/ M=`pwd` clean
rm *.o
在上例中,在沒有使用 .PHONY 來指定 clean 為假目標的話,若目錄中同時存在了一個名為 clean 的檔案,則 clean 這個目標就會被 makefile 認為是要建立 clean 這個檔案。但是 clean 這個目標底下並沒有任何的 dependencies,所以,clean 項目將永遠被視為 up-to-date,永遠不會被執行。
因為利用了 .PHONY 來指定 clean 為假目標,所以 make 不會去檢查目錄中是否存在了一個名為 clean 的檔案。如此也可以提昇 make 的執行效率。
Makefile 預設的假工作目標:
all install clean disclean TAGS info check