(1).make 命令在執行的時候按順序查找名爲(GNUmakefile),(makefile)和(Makefile)的文件進行編譯。在 Makefile 中注釋以(#)開始。

(2).在編寫 Makefile 常用的目標名:
如用 make clean,
目標(clean)一般用於清除編譯過程中的中間文件;
目標(install)常用於把最終的二進位文件、所支援的庫文件和 shell 描述檔以及相關的文檔移到文件系統中與它對應的位置,同時設置文件的許可權和所有者;
目標(uninstall)用於刪除(install)目標安裝的文件;
目標(dist)常常用於刪除編譯工作目錄中舊的二進位文件和目錄文件並創建歸檔文件;
目標(tags)用來更新或創建程式的標記表;
目標(depend)用來設置 makefile 文件中各目標所需要的依賴文件類表;
目標(installtest)和(installcheck)一般用於驗證(install)目標的安裝過程。

(3).Makefile 文件中除了普通的目標文件外,還有(虛擬目標),其特點是冒號後面爲空白,沒有依賴文件,他不會自動執行。
實際上我們可以採用(.PHONY)來矇騙 MAKE 命令,讓其把它當成普通目標來看待。

(4).Makefile 中可以使用變數,一般變數大寫,在引用變數時,採用小括弧擴起變數名前加($)符號來用。

(5).Make 變數包括(環境變數)(自動變數)和(預定義變數)。Make 的(自動變數)全部用$開頭,這些變數的意義如下:
$@ makefile 中規則的目標所對應的檔案名。
$< makefile 中規則的目標所對應的第一個依賴檔案名。
$^ makefile 中規則的目標所對應的所有依賴文件的列表,以空格分割。
$? makefile中規則的目標所對應的所有依賴文件中新於目標的文件列表,以空格分割。
$(@D) 如果目標在子目錄中就指目標文件的目錄部分。
$(@F) 如果目標在子目錄中就指目標文件的檔案名部分。

MAKE 支援的(預定義變數)含義:
AR 歸檔維護程式名,預設值爲 ar。
AS 組合語言程式名,預設值爲 as。
CC C 語言編譯程序,預設值爲 cc。
CPP C 語言預處理程式,預設值爲 cpp。
RM 刪除文件程式,預設值爲 rm –f。
ARFLAGS 傳遞給歸檔維護程式的標誌值,預設值爲:rv。
ASFLAGS 傳遞給組合語言程式的標誌值,無預設值。
CFLAGS 傳遞給 c 語言編譯器的標誌值,無預設值。
CPPFLAGS 傳遞給 c 語言預處理程式的標誌值,無預設值。
LDFLAGS 傳遞給連接程式的標誌值,無預設值。
arrow
arrow
    全站熱搜

    BB 發表在 痞客邦 留言(0) 人氣()