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