在我的makefile中导出变量时遇到问题。我在Makefile.mk
目录中有/home/user/sarwan/DMAgent
。
我有以下声明:
export VZW_BASE_DIR=$(PWD)
然后我在/home/user/sarwan/DMAgent/agent
目录中有另一个makefile,其中包含:
include ../Makefile.mk
export VZW_BASE_DIR
问题是,我希望VZW_BASE_DIR
为/home/user/sarwan/DMAgent
,而是将其视为/home/user/sarwan/DMAgent/agent
{{1}}。
如何编写以使其按预期工作?
答案 0 :(得分:1)
PWD
为您提供当前工作目录,而不是当前包含的文件所在的目录。即使将文件包含在完全不同的目录中,您的工作目录也保持不变。
由于你已经已经硬编码相对路径(请参阅include
声明),我认为由于其他原因继续这样做是没有问题的。首先,构建目录中的makefile:
export REL_DIR=..
include $(REL_DIR)/Makefile.mk
然后,在你附带的makefile中:
export VZW_BASE_DIR=$(PWD)/$(REL_DIR)
这限制了您必须对一个位置进行的更改范围,REL_DIR
的设置。然后它使用该变量来引用包含的文件和设置基本目录。