GCC中没有Makefile.am的Makefile.in?

3
我正在阅读GCC的源代码,并有一些问题。显然,GCC是使用autotools构建的。但我找不到automake所需的Makefile.am文件。GCC的Makefile.in文件是手写的吗?如果是手写的,那么在哪里可以找到描述Makefile.in语法的文档?
一个类似的问题:项目中没有Makefile.am的Makefile.in

这是一个GNU工具,所以如果Makefile.in是从某个东西生成的,那么那个东西也必须可用。你可以访问ChangeLog,你可以看到对Makefile.in的更改显示为“change bla bla”,而不是像configure一样的“regenerate”。你可以得出结论。 - Marc Glisse
是的。但另一方面,Makefile.in真的很大而且难以阅读。我曾经怀疑这样的文件是否由某些私有维护脚本自动生成... - noinput
1个回答

3

Makefile.am是Autotools家族的一个后期添加,不是所有的项目都使用它。特别地,GCC并没有使用它。顶层的Makefile.in是通过使用autogenMakefile.tpl生成的(详见这里)。其他的Makefile.in是根据Autoconf规则手动编写的。


1
最顶层的目录使用Makefile.tpl模板文件。但是我在其他子目录中找不到类似的模板文件,例如libcpp,只有Makefile.in。这个文件是手写的吗? - noinput
1
是的,这些其他的 Makefile.in 是手动编辑的(根据 Autoconf 规则)。 - yugr
@noinput 这个回答有帮助吗? - yugr
是的。谢谢!我对GCC的一些内部机制不太确定。你的回答对我很有帮助。我认为GCC需要更多的文档供初学者研究和探索。 - noinput
是的,这是一个艰难的学习曲线(但LLVM也不容易)。 - yugr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接