进行目标替换

时间:2012-02-22 09:49:36

标签: sed makefile subshell

似乎子shell不会检索“$ @”的结果,所以没有什么可以做替换。

%_bust.css: %.css
    @echo $(echo $@ | sed s/_bust/$(BUSTER)/g)

3 个答案:

答案 0 :(得分:4)

$()替换为``。前者是GNU make变量扩展。

答案 1 :(得分:1)

你已经使它变得不必要地复杂化了。您不需要嵌套echo

%_bust.css: %.css
    @echo $@ | sed s/_bust/$(BUSTER)/g

答案 2 :(得分:0)

您还可以使用make的文本替换机制。

@echo $*$(BUSTER).css
@echo $(subst _bust,$(BUSTER),$@)

后者特定于GNU Make,在这种特殊情况下不太精确和优雅。