- 何謂 makefile ?
- make 命令雖然有很多內建的功能,但它也無法知道如何建立應用程式。故必須提供一個檔案,即 makefile,告訴 make 如何建立應用程式。
- makefile 與專案的原始碼檔案,通常放在同一個目錄中。
- 可以同時有很多不同的 makefile 管理專案的不同部分。
- make 命令和 makefile 的結合,不僅控制原始碼的編譯,也可以用來準備使用手冊文件、安裝應用程式到目的目錄中。
- make 使用 makefile 的好處:
- 簡化編譯時所需要下達的指令;
- 若在編譯完成之後,修改了某個原始碼檔案,則 make 僅會針對被修改了的檔案進行編譯,其他的 object file 不會被更動;
- 最後可以依照相依性來更新( update )執行檔。
- make 與 configure
- 當執行 make 時,make 會在當時的目錄下搜尋文字檔 makefile ( or Makefile ),其記錄了原始碼如何編譯的詳細資訊。
- make 會自動的判別原始碼是否經過變動,而自動更新執行檔。
- 偵測程式 configure
- 軟體開發者會寫一支偵測程式來偵測使用者的作業環境,以及該作業環境是否有軟體開發商所需要的其他功能;
- 偵測完畢後,會主動的建立 Makefile 的規則檔案。
- 偵測程式的檔名為 configure 或者是 config。
- makefile 規則
- makefile 是由很多相依性項目(dependencies)和法則(rules)所組成。
- 相依性項目,描述目標項目(target,要產生的檔案)和產生該檔案之相關的原始碼檔案。
- 法則是說明如何根據相依性檔案,來建立目標項目。
- make 命令利用 makefile,先決定依序建立哪些目標項目,再決定依序喚起哪些法則。