【发布时间】:2017-12-06 13:08:41
【问题描述】:
我有一个包含两个这样的 make 文件:
$ cat /src/Makefile
include ../rules.mk
Test:
echo $(DIST_ROOT)
include src.base.mk
Test2:
echo $(DIST_ROOT)
. PHONY: Test Test2
$ cat /rules.mk
DIST_ROOT = $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
$ cat /src/src.base.mk
srcdir = $(DIST_ROOT)/src
问题是两者的输出都是/src,但它应该是/。
这是怎么发生的,我该如何解决?
【问题讨论】:
-
在
Test2食谱中你真的回应$(DIST_ROOT)吗?不是$(srcdir)吗?当你写/src时,不是/src/src.base.mk吗?而且(看起来很明显,但您没有指定这一点)您是否从/src调用make?还有你的Phony,不是.PHONY吗? -
@RenaudPacalet 是的,抱歉。我在我的智能手机上提示了这个。但第二个配方确实是“echo $(DIST_ROOT)”。
-
无法重现。
make Test输出/src和make Test2也输出/src。这一点也不奇怪。 -
抱歉,回答迟了。但这正是输出应该是/而不是/src的问题。
标签: makefile multiple-makefiles