On Feb 2, 2008 2:22 PM, Juan M. Mendez <[EMAIL PROTECTED]> wrote:
> So what are the facts to back up so many posts regarding autotools badness?
I mostly manage to avoid working on things where I've had to use them
as a producer, so I don't have the whole toolchain lying around. I'm
more than happy to judge them on their output, though. Just to pick
the first gnu* directory i spotted in my src directory in my $home,
gnutls:
: vav; wc config* Make*
1500 4928 44208 config.guess
622 3005 17933 config.h
621 2773 16967 config.h.in
6769 26859 211980 config.log
571 1566 14869 config.rpath
1548 5795 57952 config.status
1608 4255 32448 config.sub
46730 159658 1393861 configure
632 1709 19218 configure.in
838 3222 27923 Makefile
59 333 2210 Makefile.am
838 3158 27552 Makefile.in
62336 217261 1867121 total
That's an awful lot of work just to get the thing to build. Oh, but
it's all in the service of portability, I hear you say! Well, let's
contrast this to what we see on Plan 9:
: root; pwd
/sys/src
: root; wc mkfile mkfile.proto 9/*/mkfile cmd/mkfile cmd/mklib
cmd/mkmany cmd/mkone cmd/mksyslib cmd/*/mkfile | tail -1
5323 8409 78037 total
That's for nearly every command, plus al the kernels. Every
architecture. Less than a tenth the size. And there's nothing magical
about Plan 9 here. Once can build things on Unix in just the same way;
some packages manage to resist the temptation.
That level of gluttony would, perhaps, be forgivable if it worked
reliably. But god forbid you try to do something slightly farther
afield than the packager anticipated (which, frequently, is Linux/386
plus maybe a BSD or two), or that the versions of the tools used
anticipated. Things will break, badly, in arbitrary places in an
incomprehensible mess of interconnected dependencies.
It's just the wrong solution to portability.
Anthony