【发布时间】:2011-03-04 06:36:26
【问题描述】:
我想在 GNUmake 文件运行期间将当前目录放入 make 变量中。
执行此操作的语法是什么?像这样?
DIR := $(PWD)
【问题讨论】:
我想在 GNUmake 文件运行期间将当前目录放入 make 变量中。
执行此操作的语法是什么?像这样?
DIR := $(PWD)
【问题讨论】:
嗯,不,$PWD 有时在您的环境中定义,因此由 make 继承,但通常不是。你需要$CURDIR。
DIR := ${CURDIR}
【讨论】:
PWD 不会在递归调用 make -C 时得到更新。
$$PWD 相比在任何地方都不适用于我(上下文:我们的 makefile 正在执行 docker run -v $$PWD:/opt ... 并且 docker 正在抱怨非描述性 Mount denied: The source path "C:/Users/.../somedir;C" doesn't exist and is not known to Docker)
如果您有一个 makefile 包括另一个目录中的另一个,PWD 和 CURDIR 不会为子 makefile 更新。如果第二个 makefile 需要知道它在哪里,下面会告诉你。
$(dir $(realpath $(lastword $(MAKEFILE_LIST))))
【讨论】: