模式規則中的目錄
如果目標模式不包含斜槓,make 將在匹配之前從其嘗試構建的目標中刪除目錄部分。然後該目錄將放在詞幹前面。當使用 stem 來構建目標名稱和先決條件時,將從中刪除目錄部分,替換 stem 替換%
,最後將目錄放在字串前面。例如:
foo%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
將匹配 lib/foobar.o
,用:
- 幹(
$*
):lib/bar
- 目標名稱(
$@
):lib/foobar.o
- 先決條件(
$<
,$^
):lib/foobar.c
在此示例中,lib/foo%.o
規則優先於 foo%.o
規則,因為它匹配較短的詞幹。