0
假設我有一些圖書館,我需要爲先決條件的目標,而這些庫存儲在包含庫名稱的目錄:模式規則
.
|-- Makefile
|-- a
| |-- Makefile
| `-- lib-a
|-- b
| |-- Makefile
| `-- lib-a
`-- out
其中out
要求均爲a/lib-a
和b/lib-b
。這兩個庫都可以通過簡單地進入目錄並在那裏執行make lib-<X>
來構建。
我的想法Makefile
與模式規則,以避免重複是這樣的,如果兩個文件都在同一個目錄或不同的目錄中,但具有相同的名稱,即可。我需要使用%
只有一次:
all: out
out: a/lib-a b/lib-b
cat $^ > out
%/lib-%:
make -C $(dir [email protected])
然而,這並不工作,因爲%/lib-%
模式是非法的。
你可以把配方的罐裝配方,以避免重複的食譜內容,或者你可以使用'foreach','call'等來建立目標,以避免重複。 –