🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.misc.discuss
Article #71966

Re: configure

#71966
From: K. Richard Pixley
Date: Sat, 16 May 1992 02:30
130 lines
6504 bytes
I like this list.  It doesn't leave much out and yet still covers the
things *I* think are important  :-).

In article <4743@m1.cs.man.ac.uk> zlsiial@cs.man.ac.uk (A. V. Le Blanc) writes:

   In article <1992May11.203911.21688@u.washington.edu> donn@carson.u.washington.edu (Donn Cave) writes:
   >I see in the GNUS bulletin that there's thought of unifying "configure".
   >Anyone else have any favorites among the various GNU configures?

There is talk of merging the various configure's.  I even have a
design.  Djm & I have been talking and we're both moving our assorted
configure's closer to a point that we think will make a combined
system easier to implement.

There is also a mailing list specifically dedicated to configure
related issues.  If you are interested, send mail to
configure-request@cygnus.com.  I've also got a reasonable log of past
discussions if you'd like some context.

   The features I would like to see in the ideal GNU configure are these:

   (1) It should be easy to use when compiling for an already
	supported system.  There is a slight problem with the
	fileutils, etc.,

These configure scripts are generated by a program called autoconf.
Autoconf has been going through some revision recently in preparation
for a release.

        in that they are awkward when, for example, include files are
	not in the expected places, or when the C compiler requires
	special arguments to work properly.  I have had a lot of
	trouble when compiling for systems whose libraries contain
	known bugs, which I can avoid, but which the configures
	cannot.  The gdb/binutils style is not bad here.

These programs, also libg++, use a configure written primarily by me
at Cygnus.  We call this one Cygnus configure.

        The patch/perl style is quite good.

These are configured by Larry Wall's metaconfig.

Personally, I also find it some small bother that autoconf (fileutils
style) must test for features each time it is run.

   (2) It should be adaptible for cross-compilation.  The fileutils,
	etc., configures are hopeless at this.

There is actually an argument that autoconf generated scripts can do
this job if they are handed a pointer to the cross compiler that will
be used.  Some of the more obviously necessary changes for this have
gone into autoconf recently.

        The gdb/binutils style are of course designed for this.  The
        patch/perl style do not work.

Although metaconf could perhaps be extended in precisely the same way
as autoconf.

   (3) It should at least document how one may add support for a new
	system.  From this point of view the fileutils, etc., and the
	patch/perl are good, while the gdb/binutils style are
	frightful.  Even with gcc, it is pretty horrendous styling it
	for a new OS on a known processor.

Uh, you've seen and read configure.texi, yes?  And you still find it
frightful?  Does this come from the configuration approach or is it
more related to the code itself?

I'm not looking for a fight, I'm looking for more specifics on how to
make it better.

   (4) I should also like to see better ability to evade some of the
	excesses which pervade GNU Makefiles.  I approve of the desire
	to see everything compiled with '-g', for example, but there
	are two important cases where this is simply inappropriate:
	(1) where space is at a premium; and (2) where the '-g' option
	is an error, as when compiling with gcc on many common
	platforms.

I've recently made changes suggested by rms to many of the gnu
makefiles to support precisely this change.  Expect to see them in
upcoming releases.  In short, CFLAGS now defaults to "-g".  Therefor,

	make CFLAGS=

Should allow building without -g, or will soon.

Otherwise, most, but not all, of the "excesses" appear necessary to
me.  I'll be happy to explain why if you'd like to name them.  If
these things aren't explained in standards.texi, then perhaps they
should be.

   (5) I am surprised that there is such little consistency in the use
	of certain -D options; for example, -DUSG in some GNU
	utilities may mean 'use strchr instead of index', in others
	'don't use bcopy, bzero, etc.', but in some it seems to assume
	the presence of numerous SYSV features.  Perhaps there ought
	to be mention of this (with suggestions) in the standards
	documents.

Because of the way GNU programs are maintained, that is, by disparate
developers all over the world, this isn't exactly possible.  Given the
current goals of the GNU project, I'm not sure it's necessary yet.

Until such time as the entire suite of programs is maintained as a
*system*, it probably isn't really much of a problem.  Cygnus is
attempting to maintain some set of GNU (and other) programs as a
system.  We've run into many of these issues.  In some cases we
propose solutions, in others we realize that keeping literally
hundreds of disparate maintainers in sync isn't strictly possible.


Some other items on my list are:

(6) Must scale.  configuring N programs should still require precisely
    one configure command, and should take less than order N time.
    Cygnus configure handles this now, including the ability to call
    any script that meets the standards.texi guidelines.

(7) Must bootstrap easily.  By which I mean that it should require as
    few other programs as possible.  If I'm crossing into a new
    system, I want configure to work very early on in the bootstrap
    process.  This is part of the reason that most configure's are
    shell based.  Most configure's address this to varying degrees of
    success.

(8) Cross configuration would be nice, but isn't critical.  ie, (on
    sun4: configure decstation).
Technical Details
Message-ID: <RICH.92May15213002@cygnus.cygnus.com>
Path: arc1-ca.pugleaf.net!sparky!uunet!kithrup!kithrup!rich
References: <1992May11.203911.21688@u.washington.edu> <4743@m1.cs.man.ac.uk>

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 1025b4,7577a8c24a7e03e3
X-Google-Attributes: gid1025b4,public
X-Google-ArrivalTime: 1992-05-16 12:56:46 PST
Newsgroups: gnu.misc.discuss
Path: arc1-ca.pugleaf.net!sparky!uunet!kithrup!kithrup!rich
From: rich@cygnus.cygnus.com (K. Richard Pixley)
Subject: Re: configure
Reply-To: rich@cygnus.com
Organization: Cygnus Support - Palo Alto, CA +1 415 322 3811
Date: Sat, 16 May 1992 02:30:02 GMT
Message-ID: <RICH.92May15213002@cygnus.cygnus.com>
In-Reply-To: zlsiial@cs.man.ac.uk's message of 12 May 92 07: 56:26 GMT
References: <1992May11.203911.21688@u.washington.edu> <4743@m1.cs.man.ac.uk>
Sender: news@kithrup.COM (Network News)
Nntp-Posting-Host: cygnus.com
Lines: 130