自動變數
在單個規則的上下文中,Make 自動定義了許多特殊變數。這些變數可以為 makefile 中的每個規則賦予不同的值,旨在使編寫規則更簡單。這些變數只能用於規則的配方部分。
| 變數 | 描述 | 
|---|---|
| $@ | 規則目標的檔名 | 
| $% | 目標成員的名稱,如果規則的目標是存檔 | 
| $< | 第一個先決條件的檔名 | 
| $^ | 所有先決條件的清單 | 
| $? | 列出比目標更新的所有先決條件 | 
| $* | 隱含或模式規則的詞幹 | 
以下示例使用自動變數生成通用規則。這指示如何使用相同的名稱從 .c 檔案構造 .o 檔案。由於我們不知道受影響檔案的具體名稱,因此我們使用 $@ 作為輸出檔名稱的佔位符,將 $^用作先決條件列表的佔位符(在本例中為輸入檔案列表)。
%.o: %.c
    cc -Wall $^ -c $@