2011-04-06 82 views
3

假設我有在Makefile一以下規則:如何從依賴列表中的特定依賴的目標

%.foo: %.bar %.spam %.bot
<tab> echo "hello1" > $<

怎麼能我也附和「hello2」進第二個依賴項(但不是.bot文件),即.spam文件?由於

+1

或者,使用'$(word 2,$ ^)'。來自:http://stackoverflow.com/questions/11424204 – 2014-08-12 22:38:37

回答

6
%.foo: %.bar %.spam %.bot 
    echo "hello1" > $<  
    echo hello2 > $(word 2,$^) 

(注意>改寫,至少在我所知道的炮彈,這使得整個演習很沒有意義的。要追加,使用>>。)

1

什麼你問是對立的make的正常運行:一條規則應該修改冒號左側上的文件,而不是右側上的文件。你在這裏沒有給出很多背景,所以很難給你更具體的建議。

至於具體的問題你問,你可以使用這樣的事情:

%.foo: %.bar %.spam %.bot 
    echo "hello1" > $< 
    echo "hello2" > $*.spam 

它使用$*自動變量,它被定義爲匹配%字符的文件名的一部分在模式規則。

+0

是的。我將Makefile用於其他目的,而不是用於編譯。我發現了Beta的建議,但我更喜歡你的方式。它很整潔。謝謝 – RNAer 2011-04-08 15:30:52

相關問題