首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我多久跑一次?

我多久跑一次?
EN

Stack Overflow用户
提问于 2009-06-25 12:33:36
回答 4查看 3.5K关注 0票数 4

在我的公司中,我目前正在从第三方库中创建Debian deb包。库是使用Autotools构建的。我以前从未使用过Autotools,现在我遇到了一些困难。库源包含configure.inMakefile.am文件以及m4/目录。我能够使用以下顺序构建库:

代码语言:javascript
复制
aclocal -I m4 -I /usr/share/aclocal
autoheader
libtoolize --automake
automake -a
autoconf
./configure
make

debian/rules文件中,我想使用CDBS。我写了这个:

代码语言:javascript
复制
#!/usr/bin/make -f

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

但不起作用。它抱怨configure文件丢失。这是正确的,因为Autotools类期望这个文件存在。但它不在那里,必须有人先打电话给autoconf和朋友!

为什么Autotools CDBS类不让我给autoconf和朋友打电话?我该怎么规避呢?

离题:

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

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

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

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

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

摘要:

  • 如何处理上面描述的Autotools CDBS类问题?
  • ,多长时间重新生成configure?(一般情况下和在构建Debian包时。)
EN

回答 4

Stack Overflow用户

发布于 2009-07-18 20:45:14

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

票数 6
EN

Stack Overflow用户

发布于 2009-06-25 13:24:22

贾苏,

的确,配置脚本是由上游作者创建的,通常不需要由其他任何人重新生成。但有时,当原始配置出现问题时,人们可能希望运行autotools (使用更新版本的autotools或更新的m4宏)。

通常,您只在对configure.ac、Makefile.am、m4宏等进行更改时才运行autotools。

顺便说一句,如果autoconf足够新,您只需调用autoreconf来生成配置。但是,如果原始配置没有问题,只需保持原样即可。

票数 1
EN

Stack Overflow用户

发布于 2009-08-24 18:23:28

要回答最初的问题“为什么Autotools CDBS类不让我调用autoconf和朋友?如何绕过它?”,我所做的是向debian/rules文件中添加以下规则:

makebuilddir/your_package_name:

自动安装

这个规则基本上是作为包的预配置操作运行autoreconf -install命令(如果存在configure.ac和Makefile.am文件,它将为您生成配置脚本)。目标规则记录在这里:http://cdbs-doc.duckcorp.org/en/cdbs-doc.xhtml#id489203

正如adl所说,开发人员应该能够运行autoreconf来重新生成用于他们开发的配置脚本,因此只有configure.ac和Makefile.am文件应该被签入SVN。但是,当源被释放给最终用户时,应该提供配置脚本,这样最终用户就可以运行配置脚本,而不需要工具来生成它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1043647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档