【发布时间】:2013-12-12 01:02:46
【问题描述】:
我正在处理一个相当复杂的 makefile 系统,我希望能够将参数传递给配方,或者在解析时解析配方中的变量,而不是在执行时解析。下面是一个简单的例子来说明正在发生的事情。
生成文件
all : dep_chain
MYVAR := hello
include depchain.mk
MYVAR := world
include depchain.mk
dep_chain : $(DEPCHAIN)
depchain.mk
$(MYVAR) : $(DEPCHAIN)
@echo $(MYVAR)
DEPCHAIN := $(MYVAR)
我想打印一下
hello
world
而不是
world
world
换句话说,在配方@echo $(MYVAR) 中,我希望$(MYVAR) 在解析时解决。或者也许有人知道另一种将变量值传递给配方的方法,该变量值稍后可能会发生变化。
编辑:
MadScientist 解决的解决方法是将 depchain.mk 更改如下。
depchain.mk
$(MYVAR) : MYVAR := $(MYVAR)
$(MYVAR) : $(DEPCHAIN)
@echo $(MYVAR)
DEPCHAIN:= $(MYVAR)
【问题讨论】: