获取包含在Makefile中的文件的路径

时间:2018-09-20 14:06:37

标签: makefile gnu-make

我有以下情况:我希望几个独立的Makefile包含一个包含所有规则的文件(通过include ...指令)。到目前为止,一切都很好。但是,该中心规则文件确实需要使用其旁边的其他文件(shell脚本等)。要命名其他文件,它需要知道自己相对于make调用的路径。

这是可行的:

# in the Makefiles
toolsPath := ../../generalStuff
include $(toolsPath)/generalRules.mk

# in the generalRules.mk
foo: ./$(toolsPath)/script
    ./$(toolsPath)/script foo

尽管,尽管这行得通,但它依靠包括Makefile的文件诚实地告诉普通文件自己的路径。而且我想知道是否存在避免设置toolsPath变量的方法。

是否可以使用依赖于$(toolsPath)本身而不是包含Makefile的文件替换包含文件中的make

我希望能够将其简单地写入Makefile:

include ../../generalStuff/generalRules.mk

1 个答案:

答案 0 :(得分:1)

MAKEFILE_LIST变量(请参阅链接中的示例)可用于查找此信息。只要确保在另一个include隐藏它之前获得它即可。