如何防止自动工具自动重新生成配置脚本?

时间:2009-06-01 08:56:03

标签: git autotools

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

如何防止这种情况?

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

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

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

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

1 个答案:

答案 0 :(得分:8)

你需要调查maintainer mode - 这应该会阻止autoreconf步骤,这将解决最终用户的问题。

添加

AM_MAINTAINER_MODE

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