3

在几个项目中,我看到了没有 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是automake生成的。另外,由于 Makefile.am 是用户编写的文件,我不会想到它会从代码存储库中省略。在 bash 源代码树中,Makefile.in 太大而无法手写,而且 dtach 中的 Makefile.in 看起来也已生成。这两个项目中的 Makefile.in 是如何生成的?

4

2 回答 2

5

和autotools 可以彼此独立使用libtoolautomake或根本不使用),这取决于您需要autoconf做什么。因此,不需要使用automake来生成Makefile.in.

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

# Makefile.in 由来自 Makefile.am 的 automake 1.11.1 生成。

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

于 2012-06-22T19:55:10.340 回答
2

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

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

于 2012-06-28T14:23:49.727 回答