C语言 项目中没有 Makefile.am Makefile.in



在几个项目中,我看到了没有 Makefile.am Makefile.in。 例如 bash http://git.savannah.gnu.org/cgit/bash.git/tree/和 dtach http://dtach.cvs.sourceforge.net/viewvc/dtach/dtach/

我一直认为 Makefile.in 是由自动制作的。此外,由于 Makefile.am 是一个用户编写的文件,我不会想到它会从代码存储库中省略。在 bash 源代码树中,Makefile.in 太大而无法手写,dtach 中的 Makefile.in 看起来也很生成。在这两个项目中,Makefile.in 是如何产生的?

libtoolautomake自动工具可以彼此独立使用(或根本不使用),具体取决于您需要autoconf做什么。因此,不需要使用 automake 来生成Makefile.in

automake工具还明显地输出它已被使用:

# Makefile.in 由 Automake 1.11.1 从 Makefile.am 生成。

因此,您看到的Makefile.in很可能是"手动"编辑的。

Makefile.in 看起来像一个常规的 Makefile,但通常它希望由配置脚本完成(例如,用户在不同目录中的库的位置)。

Automake 使用 Makefile.am 来构建这样的 Makefile.in。如果制作您正在使用的包的开发人员已经有一个 Makefile,并且为它编写一个 Makefile.am 太费力了,他们只是将其转换为 Makefile.in。

最新更新