我一直在使用 GNU Autotools,我观察到可以使用不同的方法包含另一个 makefile,我不知道,我没有发现结果或 Automake 管理包含的方式可能存在的差异,如果有的话。
我见过的不同方式是使用include $(path_to_file)
and -include $(path_to file)
,连字符在包含文件时有什么不同吗?
前置连字符使包含可选。
如果包含的文件(例如Make.include
)不存在,而您正在使用include Make.include
,则构建将失败。但是,如果您正在使用-include Make.include
构建将成功(但当然该文件不会被包含在内)。
我使用它来允许用户修改构建,而无需接触真正的 Makefile(如果您想调整构建以匹配您的系统,并且您正在使用 VCS 跟踪对父 Makefile 的更改,这很酷:这样跟踪Makefile 不会变得“脏”)。
但是,这并不特定于自动工具,因为它make
通常适用。
使用 autotool 时,请注意automake
不会通过包含的文件跟踪任何漂亮的东西。