前言

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