【问题标题】:Makefile.in without Makefile.am in GCC?GCC 中没有 Makefile.am 的 Makefile.in?
【发布时间】:2017-06-06 03:28:48
【问题描述】:

我正在阅读 GCC 的源代码并且有一些问题。很明显,GCC 是使用自动工具构建的。但我找不到 automake 所需的 Makefile.am 文件。 GCC 的 Makefile.in 文件是手写的吗?如果它们是手写的,我在哪里可以找到描述 Makefile.in 语法的文档?

类似问题:Makefile.in without Makefile.am in projects

【问题讨论】:

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

标签: gcc makefile


【解决方案1】:

Makefile.am 是后来添加到 Autotools 系列的,并非所有项目都使用它。 GCC 尤其不使用它。顶级Makefile.in 是使用autogenMakefile.tpl 生成的(有关详细信息,请参阅here)。其他Makefile.in的都是根据Autoconf rules手写的。

【讨论】:

  • 最顶层目录使用 Makefile.tpl 模板文件。但是我在其他子目录中找不到类似的模板文件,例如libcpp,只有Makefile.in。该文件是“手工”编写的吗?
  • 是的,这些其他Makefile.ins 是手工编辑的(根据Autoconf rules)。
  • @noinput 这个答案有帮助吗?
  • 是的。谢谢!我不确定 GCC 的一些内部结构。你的回答对我有帮助。我认为 GCC 需要更多文档供初学者破解和研究。
  • 是的,这是一个粗略的学习曲线(但 LLVM 也不容易)。
猜你喜欢
  • 2012-06-25
  • 2013-12-23
  • 1970-01-01
  • 2011-04-16
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多