包含的makefile是否可以确定它自己的相对路径?
即,给出:
# Makefile
include path/to/included/sub.mk
是path/to/included/
通过和变量或函数?
答案 0 :(得分:3)
查看MAKEFILE_LIST及其使用示例:
包含make解析的每个makefile的名称,按其解析顺序排列。在make开始解析makefile之前附加名称。因此,如果makefile执行的第一件事是检查此变量中的最后一个单词,它将是当前makefile的名称。但是,一旦当前的makefile使用了include,最后一个单词将是刚刚包含的makefile。
你想要这样的东西:
path := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
此处使用即时:=
分配非常重要,因为需要MAKEFILE_LIST
的当前值。