使用 autotools 作为构建系统,我们是否应该通过分发发布 Makefile.in
(由 automake 生成)?运行 make dist
会将 Makefile.in
放入存档中,那么我应该将 Makefile.in
推送到我的 git 存储库吗?
最佳答案
对此没有明确的答案,只有强烈的意见。
传统观点——我认为我有理由这样调用它,因为它是发明 Autoconf 和 Automake 的操作观点——是您应该 checkin 生成的文件。这样做的理由是双重的。
首先,它减少了开发的依赖性:您可以 checkout 一个项目并运行 configure
,而无需安装 autoconf
和 friend 。这在 Linux 出现之前的糟糕旧时代尤为重要,那时工具不是默认安装的,而且包管理器只是一个梦想。
其次,因为大多数源更改不涉及配置更改,这减少了不同开发人员可能安装不同版本工具的可能错误来源。
checkin 方法本质上依赖于 AM_MAINTAINER_MODE
的使用。事实上,这就是发明这种模式的原因。
最终出现了一种不同的观点,即不应 checkin 此类文件。我认为这样做的理由也是双重的。
首先,它更干净。我敢肯定,人们可以找到许多劝告,说只有可编辑的文件才应该提交给源代码管理。而且,这是有道理的——可以派生派生文件;在源代码管理中,它们只是杂乱无章。
其次,生成的文件在源代码树中过时的情况并不少见。发生这种情况是因为开发人员忘记启用维护者模式。仅 checkin 源文件不仅可以避免这种情况,还可以让其他开发人员从中捕获任何可能的错误。
这种方法几乎需要避免 AM_MAINTAINER_MODE
。
综上所述,没有正确答案。根据我的观察,有些人更喜欢上述论点之一;但这两种方法都不是真正的定论,因为这两种方法在很长一段时间内都适用于多个严肃的项目。
关于makefile - 我应该将 Makefile.in 推送到 git 存储库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29762902/