2012-06-28 100 views
1

我有一個makefile以下隱含規則:化妝:在隱含規則取代前提名字

a1 b1: %: %.o 

在調用,這將尋找的先決條件a1.ob1.o。相反,我想用a.ob.o替換這些先決條件。我玩過subst$(shell),但沒有運氣。是否有可能做到這一點?

回答

2

對於有限的情況下:

a1 b1: %1: %.o 

或者:

a1 : a.o 
b1 : b.o 
a1 b1: 
    <the recipe> 
+0

它的工作,太棒了! – Thanos

+0

Maxim,你能否解釋一下'a1 b1:%1:%o'構造多一點還是給出一個鏈接來閱讀它?我可以猜測它是如何工作的,但是我之前沒有看到有兩個冒號的規則,並且想知道細節。 –

+0

這是一個[靜態模式規則](http://www.gnu.org/software/make/manual/make.html#Static-Pattern)。基本上,該模式僅適用於目標,如'targets:pattern:prerequisites'。 –