next up previous
Next: 2. 上路之前 Up: 輕輕鬆鬆產生 Makefile Previous: 輕輕鬆鬆產生 Makefile

1. 簡介

Makefile 基本上就是『目標』(target), 『關連』(dependencies) 和『動作』三者所組成的一連串規則。而 make 就會根據 Makefile 的規則來決定如何編譯 (compile) 和連結 (link) 程式。實際上,make 可做的不只是編譯和連結程式,例如 FreeBSD 的 port collection 中,Makefile 還可以做到自動下載原始程式套件,解壓縮 (extract) ,修補 (patch),設定,然後編譯,安裝至系統中。

Makefile 基本構造雖然簡單,但是妥善運用這些規則就也可以變出許多不同的花招。卻也因此,許多剛開始學習寫 Makefile 時會感到沒有規範可循,每個人寫出來的 Makefile 長得都不太一樣,不知道從何下手,而且常常會受限於自己的開發環境,只要環境變數不同或路徑改一下,可能 Makefile 就得跟著修改。雖然有 GNU Makefile Conventions (GNU Makefile 慣例) 訂出一些使用 GNU 程式設計時撰寫 Makefile 的一些標準和規範,但是內容很長又很複雜, 並且經常做些調整,為了減輕程式設計師維護 Makefile 的負擔,因此有了 Automake。

程式設計師只需寫一些預先定義好的巨集 (macro),交給 Automake 處理後會產生一個可供 Autoconf 使用的 Makefile.in 檔。再配合利用 Autoconf 產生的自動設定檔 configure 即可產生一份符合 GNU Makefile 慣例的 Makeifle 了。


next up previous
Next: 2. 上路之前 Up: 輕輕鬆鬆產生 Makefile Previous: 輕輕鬆鬆產生 Makefile
Ming-Yen Hsu
2000-08-15