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