2011-10-28 47 views
0

我想制定一个规则,将格式为1/2/112.jpg的文件转换为1/2/th/112_s.jpgMakefile中的非平凡图案替换

然而,patsubst太弱:

$(patsubst /%.jpg,/th/%_s.jpg,$(var)) 

不起作用,因为patsubst希望在字符串整个模式匹配。

这是可以做到的吗?

回答

1

(我只用GNU做,所以我从来没有刻意去了解哪些功能是特定于它。这种解决方案可能需要使用GNU make。)

把它拆开,更改和重新组装。

 
$(dir $(var))$(patsubst %,th/%_s,$(basename $(var))).jpg 
+0

'$(var)'包含一个文件名列表。 – Tordek

+1

$(foreach var,$(ORIGINALS),$(dir $(var))$(patsubst%.jpg,th /%_ s,$(notdir $(var)))jpg) 这是完整的解决方案。谢谢你的帮助 :)。 – Tordek