make 是 Unix 和其他作業系統上最持久的工具之一。自 1970 年代問世以來,make 至今仍舊是大多數程式開發專案的核心工具;它甚至被用來建造 Linux 核心。閱讀本書,讀者將可以瞭解,儘管出現了許多新興的競爭者,何以 make 仍舊是開發專案中建造軟體的首選工具。
簡單就是 make 欲達成的目標:在你變更原始碼檔案之後,想要重建你的程式或其他輸出檔案之際,make 會檢查時間戳記,找出遭到變更的檔案並進行必要的重建動作,因此不會浪費時間去重建其他檔案。但為了達到簡單這個目標,make 提供了許多選項讓你得以操作多個目錄、為不同的平台建造不同版本的程式,以及自訂建造方法。
本書第3版的重點擺在 GNU make,這個版本的 make 稱的上是工業的標準。本書將會探索 GNU make 所提供的強大擴充。GNU make 之所以廣受歡迎,是因為它是一個自由軟體,並且幾乎可以在每個平台上使用,包括微軟視窗(這個版本是 Cygwin 專案的一部分)。
Robert Mecklenburg 是本書第 3 版的作者,他對多種平台和語言使用 make 已經有數十年的經驗。在本書中,他會很熱心的告訴你,如何提升建造工作的效率、降低維護工作的困難度、避免錯誤,以及讓你徹底瞭解 make 在做什麼。他還在論述 C++ 和 Java 的章節中為採用這些語言的專案提供經過優化的 makefile 設定項目。他甚至還會討論到用來製作本書的 makefile。
目錄
序
前言
第一部分 基本概念
第 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 的極限
索引
序
前言
第一部分 基本概念
第 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 工作目標與樣式專屬變數
...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。