5.16 下午 閱讀813 單詞
Makefile之執行過程
1. 依次讀取變量“MAKEFILES”定義的makefile文件列表
2. 讀取工作目錄下的makefile文件(根據命名的查找順序“GNUmakefile”,“makefile”,“Makefile”,首先找到那個就讀取那個)
3. 依次讀取工作目錄makefile文件中使用指示符“include”包含的文件
4. 查找重建所有已讀取的makefile文件的規則(如果存在一個目標是當前讀取的某一個makefile文件,則執行此規則重建此makefile文件,完成以後從第一步開始重新執行)
5. 初始化變量值並展開那些需要立即展開的變量和函數並根據預設條件確定執行分支
6. 根據“終極目標”以及其他目標的依賴關系建立依賴關系鏈表
7. 執行除“終極目標”以外的所有的目標的規則(規則中如果依賴文件中任一個文件的時間戳比目標文件新,則使用規則所定義的命令重建目標文件)
8. 執行“終極目標”所在的規則
Makefile之模式規則
模式規則其實也是普通規則,但它使用了如%這樣的通配符。如下面的例子:
%.o : %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
此規則描述了一個.o文件如何由對應的.c文件創建。規則的命令行中使用了自動化變量“$<”和[email protected]
Makefile之隱式規則
如果發現某變量在shell和makefile中未找不到其定義,那麽恭喜你,你極大可能遇到隱式規則了。當然隱式規則中的變量只是隱式規則的一部分。
5.16 下午 閱讀813 單詞