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

Reply via email to