如何将 autoconf 构建复制到另一个目录以进行进一步测试?

How can I copy an autoconf build to another directory for further testing?

如果我使用 autoconf 构建一个包,我如何将 source/build* 目录中的所有内容复制到另一个位置以进行进一步测试等?

为了进一步详细说明,我想通过在复制目录之前构建+测试一个目录中的所有内容,对代码应用一些转换(不需要重新编译)来对我的一些工作做一个简单的备份,并重新运行测试。我 运行 遇到的问题是 autoconf 似乎要我 运行 autoreconf 在新复制的目录中要求我重建东西。如果可能的话,这是我想避免的。

例如,当我尝试使用新复制的 m4 进行 运行 测试时(甚至没有应用任何转换),我得到以下结果:

m4-1.4.18/build-aux/missing: line 81: aclocal-1.15: command not found
WARNING: 'aclocal-1.15' is missing on your system.
You should only need it if you modified 'acinclude.m4' or
'configure.ac' or m4 files included by 'configure.ac'.
The 'aclocal' program is part of the GNU Automake package:
<http://www.gnu.org/software/automake>
It also requires GNU Autoconf, GNU m4 and Perl in order to run:
<http://www.gnu.org/software/autoconf>
<http://www.gnu.org/software/m4/>
<http://www.perl.org/>

编辑:

正如@Bodo指出的那样,我应该说我使用的复制方法是cp -r


* 我在源目录中构建东西,没有单独的构建目录。

通过使用 cp -r 复制数据,您可以创建修改时间设置为复制时间的新文件。根据复制文件的顺序,这将导致 make(或您的构建工具)重新构建目标。

你可以使用像

这样的东西
cd sourcedir
tar cvf ../sorcedit.tar .
cd ../targetdir
tar xvf ../sourcedir.tar

在复制文件的同时保留其原始时间戳。

或者您可以使用 Git 之类的东西(或任何其他分布式版本控制系统)来保存您工作的每一步。然后您可以直接在 source/build 目录中 运行 测试,然后丢弃所有文件(当然 Git 存储库除外)并使用 Git 重新创建源文件。