假設我有在Makefile一以下規則:如何從依賴列表中的特定依賴的目標
%.foo: %.bar %.spam %.bot
<tab> echo "hello1" > $<
怎麼能我也附和「hello2」進第二個依賴項(但不是.bot文件),即.spam文件?由於
假設我有在Makefile一以下規則:如何從依賴列表中的特定依賴的目標
%.foo: %.bar %.spam %.bot
<tab> echo "hello1" > $<
怎麼能我也附和「hello2」進第二個依賴項(但不是.bot文件),即.spam文件?由於
%.foo: %.bar %.spam %.bot
echo "hello1" > $<
echo hello2 > $(word 2,$^)
(注意>
改寫,至少在我所知道的炮彈,這使得整個演習很沒有意義的。要追加,使用>>
。)
什麼你問是對立的make的正常運行:一條規則應該修改冒號左側上的文件,而不是右側上的文件。你在這裏沒有給出很多背景,所以很難給你更具體的建議。
至於具體的問題你問,你可以使用這樣的事情:
%.foo: %.bar %.spam %.bot
echo "hello1" > $<
echo "hello2" > $*.spam
它使用$*
自動變量,它被定義爲匹配%
字符的文件名的一部分在模式規則。
是的。我將Makefile用於其他目的,而不是用於編譯。我發現了Beta的建議,但我更喜歡你的方式。它很整潔。謝謝 – RNAer 2011-04-08 15:30:52
或者,使用'$(word 2,$ ^)'。來自:http://stackoverflow.com/questions/11424204 – 2014-08-12 22:38:37