获取包含在 Makefile 中的文件的路径
Get path to file that is included into a Makefile
我遇到以下情况:我希望几个独立的 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)
替换为依赖于 make
本身的内容,而不是包含的 Makefile?
我希望能够简单地将其写入 Makefiles:
include ../../generalStuff/generalRules.mk
MAKEFILE_LIST
变量(参见 link 中的示例)可用于查找此信息。请确保在另一个 include
隐藏它之前获得它。
我遇到以下情况:我希望几个独立的 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)
替换为依赖于 make
本身的内容,而不是包含的 Makefile?
我希望能够简单地将其写入 Makefiles:
include ../../generalStuff/generalRules.mk
MAKEFILE_LIST
变量(参见 link 中的示例)可用于查找此信息。请确保在另一个 include
隐藏它之前获得它。