序
前言
第一部分 基本概念
第 1 章 如何撰寫一個簡單的 makefile
1.1 工作目標與必要條件
1.2 檢查依存關係
1.3 儘量減少重新建造的工作量
1.4 調用 make
1.5 Makefile 的基本語法
第 2 章 規則
2.1 自訂規則
2.2 變數
2.3 以 VPATH 和 vpath 來尋找檔案
2.4 樣式規則
2.5 內定規則
2.6 特殊工作目標
2.7 自動產生依存關係
2.8 管理程式庫
第 3 章 變數與巨集
3.1 變數的用途
3.2 變數的類型
3.3 巨集
3.4 何時展開變數
3.5 工作目標與樣式專屬變數
3.6 變數來自何處
3.7 條件指令與引入指令的處理
3.8 標準的 make 變數
第 4 章 函式
4.1 使用者自訂函式
4.2 內建函式
4.3 進階的使用者自訂函式
第 5 章 命令
5.1 剖析命令
5.2 使用哪個 shell
5.3 空命令
5.4 命令環境
5.5 對命令稿求值
5.6 命令列的長度限制
第二部分 進階與特別的議題
第 6 章 大型專案的管理
6.1 遞迴式建造
6.2 非遞迴建造
6.3 大型系統的元件
6.4 檔案系統的配置
6.5 自動建置與測試
第 7 章 具移植性的 makefile
7.1 移植性的若干議題
7.2 Cygwin
7.3 管理程式和檔案
7.4 使用不具移植性的工具
7.5 automake
第 8 章 C 與 C++
8.1 分開原始檔與二元檔
8.2 僅供讀取的原始檔樹
8.3 產生依存關係
8.4 支援多個二元檔樹
8.5 部分的原始檔樹
8.6 參照建置結果、程式庫以及安裝程式
第 9 章 Java
9.1 make 的替代方案
9.2 一個通用的 Java makefile
9.3 編譯 Java
9.4 管理 jar
9.5 參照樹與來自協力廠商的 jar 檔
9.6 Enterprise JavaBeans
第 10 章 改進 make 的效能
10.1 標竿測試
10.2 找出與處理瓶頸
10.3 並行式建造
10.4 分散式建造
第 11 章 makefile 實例
11.1 本書的 makefile
11.2 Linux 核心的 makefile
第 12 章 makefile 的除錯
12.1 make 的除錯功能
12.2 撰寫除錯的描述
12.3 常見的錯誤訊息
第三部分 附錄
附錄 A 執行 make
附錄 B 越過 make 的極限
索引