From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <509071940802021142i6fb0459bodcbb6f818852962f@mail.gmail.com> Date: Sat, 2 Feb 2008 14:42:41 -0500 From: "Anthony Sorace" To: "Fans of the OS Plan 9 from Bell Labs" <9fans@cse.psu.edu> Subject: Re: [9fans] A newbie question... In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <0e742be69697735012d14c6319071fa1@terzarima.net> <5d375e920802020941k6f662ab1s3ac9a41d6d95bb66@mail.gmail.com> <20080202182756.GA862@shodan.homeunix.net> Topicbox-Message-UUID: 4064f7f0-ead3-11e9-9d60-3106f5b1d025 On Feb 2, 2008 2:22 PM, Juan M. Mendez 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