在Makefile中导出变量

时间:2014-09-09 04:30:39

标签: makefile

在我的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}}。

如何编写以使其按预期工作?

1 个答案:

答案 0 :(得分:1)

PWD为您提供当前工作目录,而不是当前包含的文件所在的目录。即使将文件包含在完全不同的目录中,您的工作目录也保持不变。

由于你已经已经硬编码相对路径(请参阅include声明),我认为由于其他原因继续这样做是没有问题的。首先,构建目录中的makefile:

export REL_DIR=..
include $(REL_DIR)/Makefile.mk

然后,在你附带的makefile中:

export VZW_BASE_DIR=$(PWD)/$(REL_DIR)

这限制了您必须对一个位置进行的更改范围,REL_DIR的设置。然后它使用该变量来引用包含的文件设置基本目录。