2009年12月1日 星期二

一些make的語法筆記

=內部變數=
$?: 代表已被更新的dependencies的值
$@: 代表targets的值
$<: 代表第一個dependencies的值
$*: 代表targets所指定的檔案,不包含副檔名
$^: 代表所有dependencies的值

使用了$$,讓'$'能傳到shell中
第一個$是為了讓第二個$可以escape掉特殊意義所使用的!

Make命本身可帶有四種參數:
標誌、巨集定義、描述檔案名和目標檔案名。

其標準形式為:
make [flags] [macro definitions] [targets]
Unix系統上flags選項及其含義為:
-f file 
指定file文件為描述文件
如果file參數為"-",那麼描述文件為stdin
如果沒有"-f"參數
預設值為當前目錄下名為makefile或者名為Makefile的文件


-i   忽略指令執行返回的出錯資訊
-s   沉默模式,在執行之前不輸出相應的指令行資訊
-r   禁止使用built-in規則 (隱含規則)
-n   非執行模式,輸出所有執行指令,但並不執行
-t   更新目標文件 (touch)
-q  根據目標文件是否已經更新返回零或非零的狀態資訊
-p   輸出所有巨集定義和目標文件描述
-d   Debug模式,輸出有關文件和檢測時間的詳細資料

Linux下make標誌位的常用選項與Unix系統中稍有不同,
下面我們只列出了不同部分:
-C dir   在讀取 makefile 之前改變到指定的目錄dir
-I dir   當包含其他 makefile文件時,利用該選項指定搜尋目錄
-h     help,顯示所有的make選項
-w     在處理 makefile 之前和之後,都顯示工作目錄(default選取)


[Reference]
忘記出處了...= =...原作者,對不起 Orz

沒有留言:

張貼留言