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

标签 makefile gnu-make

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

可行的是:

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

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

然而,虽然这可行,但它依赖于包含的 Makefiles 来诚实地告诉通用文件它自己的路径。我想知道是否有办法避免设置 toolsPath变量。

是否可以替换 $(toolsPath)在包含的文件中包含依赖于 make 的内容本身,而不是包含的 Makefile?

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

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

最佳答案

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

关于makefile - 获取包含在 Makefile 中的文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52427047/

相关文章:

linux - 如何为指定的部署路径制作 mtd-utils 2.0

gcc - gnu-make 中的 -lrt 标志是什么?

c++ - Makefile 和 .Mak 文件 + CodeBlocks 和 VStudio

makefile - 了解 Makefile 语法和变量

makefile - 使 : how to force immediate expansion of a variable?

c++ - Makefile 似乎以错误的顺序编译文件

c - Azure DevOps 管道构建 Makefile

c - Makefile 构建

makefile - 取决于 makefile 规则中的子目录创建

c++ - 如何设置 Visual Studio 2010 项目来为 Slickedit 17 构建 64 位扩展 dll?