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

Tho*_*mas 4 git autotools

有时由于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.

Dou*_*der 8

你需要研究维护者模式 - 这应该阻止autoreconf步骤,这将解决最终用户的问题.

AM_MAINTAINER_MODE
Run Code Online (Sandbox Code Playgroud)

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