在项目中没有Makefile.am的Makefile.in

时间:2012-06-22 18:10:13

标签: c build makefile build-automation autotools

在几个项目中,我看过没有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是如何在这两个项目中生成的?

2 个答案:

答案 0 :(得分:4)

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

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

  

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

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

答案 1 :(得分:1)

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

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

相关问题