使用Makefile.in和configure.ac从头开始清理和构建项目

时间:2014-10-24 01:12:16

标签: git autotools

在克隆一个开源项目(使用Git)后,我想构建它。

此外,我希望能够从头开始再试一次(与git-bisect一起使用)。

干净的结帐包含Makefile.inconfigure.ac,但不包含configure

假设项目中没有任何易于查找的说明,那么做这些事情的秘诀是什么?这是相当标准的吗?是否有可能需要常见的变体?

3 个答案:

答案 0 :(得分:1)

虽然我看到一些帖子建议使用autoreconf -fi,但我只使用autoconf获得了更好的结果,因为make步骤失败了(见autoconf }和autoreconf用于基本描述)。也许在一般情况下,如果一个不起作用,那么尝试另一个 - 确保在两者之间进行清理,以便结果不会受到污染。

以下是一些常见步骤:

## clean...
make maintainer-clean ## clean up most stuff after you have run ./configure
git status --ignored ## see what still needs to be cleaned up
git clean -fdX ## remove ignored files
git clean -fdx ## remove all extra files -- including your own work (if any)
git reset --hard ## revert all remaining files (may be destructive)

## build...
autoconf && ./configure && make -s ## build everything

答案 1 :(得分:1)

如果您正在使用Git,那么您应该能够完全绕过自动工具,只需在两个步骤之间执行git clean -xdf

答案 2 :(得分:0)

正如其他人已在评论中指出的那样,configure.ac文件通常附带autogen.shbootstrap.sh脚本来生成配置脚本。

例如,GNOME project倾向于按惯例依赖autogen.sh脚本,因此可以使用以下命令集构建项目(随意查看GNOME' s gtk+ source code查看根构建目录在该约定下通常看起来的样子:

./autogen.sh --prefix=$PREFIX && make && make install

运行./autogen.sh脚本后,您将看到在构建根目录中生成的configure脚本。

如果在您的特定项目中没有这样的脚本并且没有为您回答问题,那么如果您能够提供项目来源的链接可能会很有用,您的查询是特别是。