## .PHONY
* `.PHONY` 用于指定一個假想的工作目標,如`.PHONY:clean`中clean并不是一個實際存在的文件,并且會一直被設為未更新的,即每次執行的時候不會去查看其依賴是否更新,而是直接執行,如:
```makefile
.PHONY:install
install:foo
install -m 644 foo /usr/bin
.PHONY:clean
clean:
rm *.o a.out
```
* 好處:
1. 避免和同名文件沖突,如文件中包含clean這個文件,那么clean因為沒有依賴,一直都是最新的,執行`make clean`時什么都不會做
2. 改善make的性能,跳過隱含規則的搜索