代码之家  ›  专栏  ›  技术社区  ›  peachykeen

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

  •  0
  • peachykeen  · 技术社区  · 4 年前

    如果我用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 .


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

    1 回复  |  直到 4 年前
        1
  •  1
  •   Bodo    4 年前

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

    你可以用

    cd sourcedir
    tar cvf ../sorcedit.tar .
    cd ../targetdir
    tar xvf ../sourcedir.tar
    

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

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