4

有时由于 SCM 没有严格记住文件的时间戳,生成的 Makefile 会认为它需要重新运行“autoreconf -i”或等效于从 Makefile.am 重新生成 Makefile.in,从 configure.ac 配置等..

我该如何防止这种情况?

我想阻止它,因为它会导致这些问题:

  • 创建 dist 存档(git archive --format=tar ...)时,时间戳将不正确,最终用户会遇到问题。不酷。
  • 在慢速系统上,这会使编译花费更长的时间,因为它不再是 configure、make、make install,而是 configure、autoreconf -i、configure、make make install。

我知道我可以在制作 dist tarball 之前“触摸”生成的文件,但在我看来,这只能解决 tarball 的问题,而不是开发人员的问题。解决应该可以关闭的错误功能也是一个丑陋的黑客。此外,它会破坏 git 存档,因为无论如何时间戳并不总是正确的。

其他 SCM 也有这个,所以问题不在于 (IMO) 与 git。

4

1 回答 1

8

您需要查看维护者模式- 这应该会阻止 autoreconf 步骤,这将解决最终用户的问题。

添加

AM_MAINTAINER_MODE

到您的 configure.ac / configure.in 文件,然后(除非您指定--enable-maintainer-mode)当您配置时,您的 Makefile 将不包含重新配置规则。

于 2009-06-01T09:12:42.777 回答