将自动变量的值复制到makefile中的另一个变量

时间:2015-07-17 10:59:36

标签: makefile

我希望rule变量在归因行中包含$@的值,而不是参考。例如:

rule=$@

all:
    @echo "Running Rule: $(rule)"

rule1: all
    @echo "Do something here"

rule2: all
    @echo "Do another thing here"

我的预期结果是:

  

运行规则:rule2

     

在这做另一件事

运行make rule2

。但我得到的结果是:

  

运行规则:全部

     

在这做另一件事

是否可以进行此归因?

[编辑]

换句话说,我需要的是获取父目标名称,即用户在终端控制台中键入的make命令的参数。

1 个答案:

答案 0 :(得分:1)

没有。 $@始终设置为当前目标,永远不会设置为父目标(为什么会这样做?)

您可以选择的最佳选择(鉴于我们对您真正想做的事情的描述有限)是使用target-specific variables

all:
        @echo "Running Rule: $(rule)"

rule1: rule = rule1
rule1: all
        @echo "Do something here"

rule2: rule = rule2
rule2: all
        @echo "Do another thing here"