Makefile:模式规则中的可参数化Recepie命令

时间:2019-06-06 22:41:00

标签: makefile gnu-make

假设以下makefile文件

objects = $(wildcard *.in)
outputs := $(objects:.in=.txt)

%.txt: %.in
    some-command $@ $<

compile: $(outputs)

这按预期工作。

现在,我想添加另一个名为(例如)upgrade的目标,该目标应该执行与compile相同的操作,但是将附加选项传递给some-command(可能取决于环境变量,但是超出此问题的范围。)

到目前为止,我发现的唯一“解决方案”是递归调用相同的makefile并通过env变量传递其他选项。但这似乎是一个非常丑陋的hack。

我是在make上有可能吗(GNU很好,这不必是可移植的)还是我只是以错误的方式来做?

1 个答案:

答案 0 :(得分:1)

Target-specific variable value

<div class="intro concl background">
  <p>HELLO</p>
</div>

.background {
    background-color: yellow;
}
.intro {
    // intro specific stuff
}
.concl {
    // concl specific stuff
}