我有以下情况:我想要几个独立的 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/