In my company I'm currently working on creating a Debian deb package out of a 3rd party library. The library is built using Autotools. I have never worked with Autotools before and I'm having some hard time. Library sources contain configure.in and Makefile.am files and m4/ directory. I am able to build the library using this sequence:
aclocal -I m4 -I /usr/share/aclocal
autoheader
libtoolize --automake
automake -a
autoconf
./configure
make
In debian/rules file I'd like to use CDBS. I wrote this:
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk
But it doesn't work. It complains that the configure file is missing. And that's right, because the Autotools class expects this file to be present. But it's not there and someone has to call autoconf and friends first!
Why Autotools CDBS class doesn't let me call autoconf and friends? How do I circumvent it?
A digression:
When I use a program, I don't compile it every time, I compile it once and reuse the binary.
When people install software, they don't compile it by themselves, maintainer compiles it once and people reuse the binary package.
When maintainer compiles the package, he/she doesn't create configure script every time he compiles, the upstream author created it once and the maintainer can reuse it.
Is that last sentence true? Because to me it seems like authors of the Autotools CDBS class assumed such thing - they assume configure to be present, and reuse it while compiling package for different architecture. Am I right?
On one hand, if configure can be generated, it shouldn't be present anywhere - if you need it, you generated from other files. On the other hand, authors of the Autotools CDBS class must have had some reasons for implementing it this way and not the other.
Summary:
- How do I deal with the Autotools CDBS class problem described above?
- How often do I regenerate
configure? (In general and when building Debian packages.)