在我的公司,我目前正在deb
从第三方库中创建一个 Debian 软件包。该库是使用 Autotools 构建的。我以前从未使用过 Autotools,我遇到了一些困难。库源包含文件和configure.in
目录。我可以使用以下顺序构建库:Makefile.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
和朋友!
为什么 Autotools CDBS 类不让我autoconf
和朋友打电话?我该如何规避它?
题外话:
当我使用一个程序时,我不会每次都编译它,我编译一次并重用二进制文件。
当人们安装软件时,他们不会自己编译,维护者编译一次,人们会重复使用二进制包。
维护者在编译包时,不会configure
每次编译都创建脚本,上游作者创建一次,维护者可以复用。
最后一句是真的吗?因为在我看来,Autotools CDBS 类的作者似乎假设了这样的事情——他们假设configure
存在,并在为不同的架构编译包时重用它。我对吗?
一方面,如果configure
可以生成,它不应该出现在任何地方——如果你需要它,你可以从其他文件生成。另一方面,Autotools CDBS 类的作者一定有一些理由以这种方式实现它,而不是另一种方式。
概括:
- 如何处理上述 Autotools CDBS 类问题?
- 我多久再生一次
configure
?(在一般情况下以及在构建 Debian 软件包时。)