如何从Makefile中的相对路径获取任何目录的绝对路径

时间:2019-04-05 10:43:41

标签: linux makefile

我正在处理某个目录“ DirA”中存在的Makefile。我需要另一个路径“ DirB”的绝对路径。我如何在Makefile中获取它。

下面的内容适用于bash脚本,如何在Makefile中获取相同的内容。

SRCDIR = ./../../somepath/DirB 
ABS_PATH=$(realpath $(DirB))

我也尝试使用$ {CURDIR}:

ABS_PATH = "${CURDIR}/../../somepath/DirB"

但是,这又是一条相对路径。

1 个答案:

答案 0 :(得分:5)

以下代码适用于从任何目录调用的Makefile:

mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
current_dir := $(notdir $(patsubst %/,%,$(dir $(mkfile_path))))

其他

ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))

这是它的工作方式:

$ cd /home/user/

$ make -f test/Makefile 
/home/user/test

$ cd test; make Makefile 
/home/user/test