debian - 我多久运行一次 autoconf?

标签 debian autotools autoconf cdbs

在我的公司,我目前正在创建一个 Debian deb从第 3 方库中打包。该库是使用 Autotools 构建的。我以前从未与 Autotools 合作过,而且我遇到了一些困难。库源包含 configure.inMakefile.am文件和 m4/目录。我能够使用以下序列构建库:

aclocal -I m4 -I /usr/share/aclocal
autoheader
libtoolize --automake
automake -a
autoconf
./configure
make

debian/rules文件我想使用 CDBS。我是这样写的:
#!/usr/bin/make -f

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk

但它不起作用。它提示 configure文件丢失。这是正确的,因为 Autotools 类希望这个文件存在。但它不在那里,有人必须打电话autoconf和 friend 第一!

为什么 Autotools CDBS 类(class)不让我打电话 autoconf和 friend ?我该如何规避它?

题外话:

当我使用一个程序时,我不是每次都编译它,我编译一次并重用二进制文件。

当人们安装软件时,他们不会自己编译它,维护者编译一次,人们重复使用二进制包。

当维护者编译包时,他/她不会创建 configure每次编译脚本,上游作者创建一次,维护者可以重用它。

最后一句话是真的吗?因为对我来说似乎 Autotools CDBS 类的作者假设了这样的事情 - 他们假设 configure存在,并在为不同的体系结构编译包时重用它。我对吗?

一方面,如果configure可以生成,它不应该出现在任何地方——如果你需要它,你可以从其他文件生成。另一方面,Autotools CDBS 类的作者一定有某些原因以这种方式而不是另一种方式实现它。

概括:
  • 如何处理上述 Autotools CDBS 类问题?
  • 我多久再生一次 configure ? (一般情况下和构建 Debian 软件包时。)
  • 最佳答案

    第一,你太努力了。而不是运行 aclocal && autoheader && 等等,
    你可以只运行 autoreconf。这将确保以正确的顺序调用所有自动工具(并且在手指和大脑上更容易)。其次,一旦您生成了配置脚本,您应该创建一个构建目录并运行“make dist”以获取将用于生成 deb 的 tarball。 tarball 中将包含配置脚本。 (更好的是,只需使用上游生成的 tarball,根本不用担心运行 autotools。)

    关于debian - 我多久运行一次 autoconf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1043647/

    相关文章:

    makefile - 了解分配给 makefile 中宏的数据

    c - 通过 Makefile 构建并构建脚本有效,但等效的 Makefile.am 没有。(给出 undefined reference 错误)

    bash - 如何转义 autoconf/m4 中的文本?

    linux - 未送达的邮件退回给发件人-域不同的目的地

    c - 弄清楚 startpar.c (sysvinit) 在做什么

    c - Automake、GNU make、检查和(忽略的)模式规则

    c++ - 将 linting 添加到基于 autotools 的构建系统

    autotools - Automake 生成二​​进制文件到 bin/而不是在 src/

    docker - 如何在 docker 容器中安装 docker?

    Linux命令行图形