Re: Non-Debian packaging practice
Joe Smith <firstname.lastname@example.org> writes:
> I'm not sure why people don't like the autotools. They generally work
> very well. The makefiles they make are even able to re-run the
> autotools to update itself when needed! They generally work well.
They're painfully slow.
When using Autoconf, I have to be very careful to avoid unnecessary checks
and it still tends to do lots of checks I don't want that slows everything
down (like check for ANSI C headers when the package in question doesn't
support K&R systems in the first place, or the infamous Fortran checks in
libtool). On some systems with defective shells, just running configure
can take an hour. And due to worries about shell functions, it's not
unusual for the configure script to as large or larger than the sum of all
the other source files in the package.
And that's just Autoconf. Automake is worse, and also makes your build
logs nearly unreadable.
I don't use Automake. I write makefiles myself. It takes longer, but I'm
happier with the results. But for Autoconf, there really aren't a lot of
good alternatives out there and it has a reasonably expressive language.
Metaconfig is pretty much unusable for anything other than Perl at this
point, and the other alternatives seem to be either too focused on some
particular scripting paradigm that the author loved or in their infancy
compared to what Autoconf can do.
libtool is also painfully slow, but it really does do something that's
extremely hard to duplicate otherwise. I hope that someone someday will
rewrite it, but in the meantime, it's best of breed.
> 3. Version differences: This is a legitamate gripe. The autotools don't
> work nearly as wel as they could when developers are using different
> versions. However, I see no way to easilly fix this.
Well, Autoconf at least could have done a much better job with backward
compatibility. Oh well. At this point, the maintainers seem to be
maintaining backward compatibility by never releasing a new version. (Not
that I'm not guilty of that myself with INN at the moment. *sigh*. I do
understand not having enough hours in teh day.)
> So I must ask why do people dislike the autotools? Are there really
> problems that outweigh the benefits of being able to compile the program
> on strange architectures with little difficulty? Remember that the
> autotools let one compile the program in the same way on a GNU/Linux
> system, Cygwin, BSD, and a large number of commercial unixes.
Er, well, kind of. The autotools are one valuable tool to write portable
code. Using them definitely will not make your code portable to all of
those platforms. If the program is non-trivial, you will probably still
have to do some porting.
Russ Allbery (email@example.com) <http://www.eyrie.org/~eagle/>