Sub-make不会扩展目标特定变量

时间:2016-10-17 17:09:41

标签: makefile

给出以下示例makefile:

export MY_COMMENT  := 'Hello world'

t1: MY_COMMENT += 'very much!'
t1:
    @echo $(MY_COMMENT)

t2: MY_COMMENT += 'and I love you all'
t2:
    @$(MAKE) -e --no-print-directory t1

如果在命令行中输入make t2,则预期输出为:

Hello world and I love you all very much!

相反,我得到:

Hello world and I love you all

为了让t1的目标特定变量也被导出或附加到变量MY_COMMENT,我缺少什么?

我也意识到我可以让t2依赖t1来解决这个直接问题,但在回答时,假设我不能t2依赖t1而我需要再次致电make

1 个答案:

答案 0 :(得分:0)

解决方案是对每个目标特定变量使用override。所以我最终得到了:

export MY_COMMENT  := 'Hello world'

t1: override MY_COMMENT += 'very much!'
t1:
    @echo $(MY_COMMENT)

t2: override MY_COMMENT += 'and I love you all'
t2:
    @$(MAKE) -e --no-print-directory t1

现在这给出了正确的结果