2012-02-28 53 views
3

我編寫了一個腳本,它接收以.cfg結尾的兩個文件並輸出以.cmp結尾的文件。我想將它包含在我的Makefile中,因爲幾個源代碼文件依賴於這個.cmp文件。使用Makefile中的必備條件列表中的目標目錄路徑

在我的Makefile中,我想這樣做:

%.cmp: %.cfg $(dir %)/default.cfg 
    ./compare.pl $^ [email protected] 

有兩個依賴產生.cmp文件。首先是一個具有相同名稱的.cfg文件,其次是一個.cfg文件,它是總是命名爲default。 .cfg文件和輸出.cmp文件將位於同一目錄中。

是否有辦法抓取目標的目錄路徑並將其與prereqs一起使用?

回答

3

我猜Secondary Expansion可能是你在找什麼:

.SECONDEXPANSION: 
%.cmp: %.cfg $$(dir %)default.cfg 
    ./compare.pl $^ [email protected] 

還要注意$$(dir %)後沒有斜槓,dir功能始終添加一個到所得到的值。

+0

忘記二次展開,謝謝! – Ryan 2012-02-28 19:59:02

+0

@瑞恩,不客氣! – 2012-02-28 20:32:37