Makefile。依赖,使更多的依赖
考虑这个makefile:Makefile。依赖,使更多的依赖,makefile,Makefile,考虑这个makefile: srcs = 1.src %.compiled: create_srcs $(srcs) @echo $@ depends on: $^ create_srcs: $(eval srcs = $(srcs) 2.src) @echo srcs: $(srcs) %.src: @echo src: $@ 如果执行,则输出: c:\>make file.compiled srcs: 1.src 2.src src: 1.src
srcs = 1.src
%.compiled: create_srcs $(srcs)
@echo $@ depends on: $^
create_srcs:
$(eval srcs = $(srcs) 2.src)
@echo srcs: $(srcs)
%.src:
@echo src: $@
如果执行,则输出:
c:\>make file.compiled
srcs: 1.src 2.src
src: 1.src
file.compiled depends on create_srcs 1.src
如何使%.编译的也依赖于2.src
另外,如果有必要,在我的real makefile中,将一些可能包含源代码的zip解包,并将“srcs”变量定义为srcs=$(shell find…
)<代码>%.编译后的
不是最终目标,尽管创建_srcs
是第一个目标。代码>$(eval srcs=…)是无用的,因为它是配方的一部分,在运行时,生成文件已经被完全解析。@MichaelLivshin我确实意识到了这一点,但你的评论把我推向了正确的方向:)。似乎我需要递归make在这里重新分析文件…虽然这是一个非常老的问题,但不知怎么的它又回来了。如果还有兴趣:你能描述一下在另一个目标中引入2.src
ad hoc的逻辑吗?这个新目标是在配方执行过程中动态出现的,还是在make
开始时就知道2.src
最终会成为目标?