基本規則
1.若想生成目标,檢查規則中的依賴條件是否存在,如不存在,則尋找是否有規則用來生成該依賴檔案。
2.檢查規則中的目标是否需要更新,必須先檢查它的所有依賴,依賴中有人一個被更新,則目标必須更新
-
分析各個目标和依賴之間的關系
(目标的時間必須晚于依賴的時間)
-
根據依賴關系自底向上執行指令
(預設第一個目标就是終極目标,但是ALL:可以指定終極目标比如ALL:a.out)
- 根據又該時間比目标新,确定更新
- 如果目标不依賴任何條件,則執行對應指令,以示更新
目标:依賴條件
指令
makefile命名必須是makefile或Makefile
多個檔案的時候,有時候隻更改一個檔案,其他檔案沒有動,還是要重新make
兩個重要函數
注意第二個:是替換,這些都是字元串,而不是把.c編譯成.o
小技巧:make的指令中加個-n可以顯示指令但不執行
小技巧:rm前面加個-變成-rm,這樣在不小心删除了一個.o檔案之後,make clean全部删除也不會因為缺失了剛剛删除的.o檔案而報錯
三個變量
補充
防止産生歧義,使用靜态模式規則
.PHONY防止clean重名
eg:
.PHONY:clean ALL