9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: John Stalker <stalker@Math.Princeton.EDU>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Re: configure misery
Date: Sun, 16 Nov 2003 19:42:29 -0500	[thread overview]
Message-ID: <200311170042.hAH0gTnM028044@math.Princeton.EDU> (raw)
In-Reply-To: <200311160804.hAG84F7Y002284@skeeve.com>

Gawk is an interesting test case.  I poked around a little in the
FreeBSD port.  It doesn't just ./configure && make && make install.
It has to pass two arguments to configure to tell it the location
of libraries it wouldn't otherwise find.  More worryingly it has
to patch both Makefile.in and configure.  In other words, some poor
soul had to read and understand the ``object code'' generated by
autoconf well enough to patch it.  In this case it appears that
autoconf has shifted some work from the program author to the port
maintainer.

I don't mean to flame either the developers of gawk, which I use, or
of autoconf, which I don't.  I do think autoconf was a great mistake,
however.  If you want a program which produces install scripts then
there are two sensible paths: (1) write something quick and dirty
which produces simple scripts which almost work on most systems or
(2) write something which produces horrible monsters which no one need
ever look at because they always work.  Autoconf clearly aims for
(2), but it doesn't quite get there.  A program which opted for (1)
would be more useful.

Note that gawk has far fewer dependencies than some other programs.
In fact the only library it needs which is not part of the base system
is the gettext library, which is the one autconf doesn't find.

> The Autoconf machinery abstracts *a lot* of this away, where you, the
> program author, don't have to deal with it.  *Switching* a program to
> use Autoconf is a pain.  But the gain is well worth it. I went through this
> with gawk in the mid-90s.  Look at gawk-2.15.6 (if you can find it) with
> a bunch of little files for all the different kinds of systems out there.
> ALL of which had to be maintained MANUALLY.  Now, I work with configure.ac
> and Makefile.am, which are fairly easy to manage once setup, and the rest
> of the headache is gone.
.
.
.
> Sure configure itself is huge.  It's object code though, not source code.
> And IMHO the Makefiles generated by Automake are too complicated.  But
> would I switch back to doing things manually?  No Way.
>
> FWIW, gawk ships as standard on every Linux system and most or all BSDs,
> and configures, compiles and runs out of the box on over a dozen different
> kinds of Unix systems.  On all of them, ALL of them, the incantation is
> ONE LINE:
>
> 	./configure && make all check install
>
> Compare that to:
>
> 	for each vendor Unix system I happen to have
> 	do
> 		while it doesn't make
> 		do
> 			vi myprog.h Makefile
> 			make
> 		done
> 	done
>
> And multiply that by all the different packages you'd like to install.
>
> Now tell me what you, the poor sysadmin, would rather spend your time doing?
>
> Flames to /dev/null.
>
> Arnold
>

--
John Stalker
Department of Mathematics
Princeton University
(609)258-6469


  parent reply	other threads:[~2003-11-17  0:42 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-16  8:04 Aharon Robbins
2003-11-16  8:37 ` Geoff Collyer
2003-11-16 14:46   ` Charles Forsyth
2003-11-16  9:53 ` Bruce Ellis
2003-11-16 19:11 ` Lyndon Nerenberg
2003-11-16 19:32   ` andrey mirtchovski
2003-11-16 21:43     ` Dan Cross
2003-11-16 23:37       ` Lyndon Nerenberg
2003-11-17  0:04         ` mirtchov
2003-11-17  0:04           ` boyd, rounin
2003-11-17  3:18         ` Dan Cross
2003-11-17  3:28           ` boyd, rounin
2003-11-16 21:46     ` Russ Cox
2003-11-16 22:24       ` mirtchov
2003-11-16 22:47         ` Russ Cox
2003-11-17  0:38         ` Mike Haertel
2003-11-16 22:38       ` Lyndon Nerenberg
2003-11-16 22:41         ` boyd, rounin
2003-11-18 12:54         ` Aharon Robbins
2003-11-18 14:11           ` Russ Cox
2003-11-18 14:55             ` Joel Salomon
2003-11-17  0:24       ` Enache Adrian
2003-11-17 12:16         ` Aharon Robbins
2003-11-17 23:16           ` Taj Khattra
2003-11-16 19:58   ` boyd, rounin
2003-11-17  0:30     ` [9fans] mmap (was configure misery) Geoff Collyer
2003-11-17  0:29       ` boyd, rounin
2003-11-17 12:25   ` [9fans] Re: configure misery Aharon Robbins
2003-11-17  0:42 ` John Stalker [this message]
2003-11-17 12:28   ` Aharon Robbins
2003-11-17 12:42     ` Lucio De Re
2003-11-17 12:53       ` Lucio De Re
2003-11-17 13:43         ` Aharon Robbins
2003-11-17 15:06           ` mirtchov
2003-11-17 15:35           ` David Presotto
2003-11-17 16:31       ` John Stalker
2003-11-17 17:19         ` Aharon Robbins
2004-01-30 15:30 [9fans] Re: [hangar18-general] Frustration Jim Choate
2004-02-03 17:11 ` [9fans] Re: configure misery rog
2004-02-04 16:48   ` Jim Choate
2004-02-03  3:49 Li Yi
2004-02-03 11:30 ` Aharon Robbins
2004-02-03 13:32   ` a
2004-02-03 15:34     ` Jim Choate
2004-02-03 16:29       ` a
2004-02-03 14:18   ` andrey mirtchovski
2004-02-03 15:36     ` Jim Choate
2004-02-03 16:32       ` boyd, rounin
2004-02-03 16:42         ` Jim Choate
2004-02-03 23:53       ` David Presotto
2004-02-04  8:13     ` Aharon Robbins
2004-02-03 15:33   ` Jim Choate
2004-02-03 16:27     ` a
2004-02-03 16:44       ` Jim Choate
2004-02-03 16:53         ` andrey mirtchovski
2004-02-04 16:45           ` Jim Choate
2004-02-03 17:01         ` Wes Kussmaul
2004-02-04 17:47 Spamm Trapp

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200311170042.hAH0gTnM028044@math.Princeton.EDU \
    --to=stalker@math.princeton.edu \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).