autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: converting netkit to autoconf?


From: Dan Kegel
Subject: Re: converting netkit to autoconf?
Date: Mon, 12 Aug 2002 11:20:02 -0700
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020615 Debian/1.0.0-3

David A. Holland wrote:
 > Here's what I ended up doing to cross-compile netkit-base and netkit-telnet:
> > I untar the netkit source tarball into a separate directory for
 > each target processor type (bleh!).
> > I then use my own autoconf system to produce a custom MCONFIG,
 > then copy that in to the source directory, and run make.
 > I don't even bother with the configure that comes with netkit.

This sounds like a complete waste of time. Since you're compiling from
Linux to Linux, and probably the same versions too, it would be much
faster to run configure for the host system and then edit MCONFIG.

Unfortunately, since I'm cross-compiling for an embedded system,
it's hard to run your configure on the host system.  Not all developers
have access to the hardware.

Unlike the schlock emitted by autoconf, MCONFIG is human-readable and
editable.

 > >  > Has anyone converted netkit to use autoconf?
> > > > No, and certainly not for this issue: autoconf would not help, as the
 > > problem has nothing to do with the configuration framework.
> > > > There are reasons autoconf wasn't used in the first place, too. > > Can you give a few of them? Also, has autoconf progressed now
 > to a point where it'd be more appropriate than when you first
 > considered it?

(1) it's a canonical example of the principle that software is almost
inevitably written using tools that are just not quite adequate for
the job. autoconf is written in m4. This is a big liability.

I agree.

(2) autoconf is, or was (but last I looked it hadn't changed)
completely undocumented. That is, there's a lot of random
documentation, but the important part (documentation of the test
library) was completely missing.

Does http://www.gnu.org/manual/autoconf/html_node/Existing-Tests.html
meet your criteria for documentation?


(3) The way autoconf is intended to be used, generating Makefiles from
Makefile.ins and whatnot, is not the way I like to ship packages. When
configure scripts screw up, which is more common than you probably
realize, the user ought to be able to edit the results by hand *in one
place*.

Readable configure scripts are good.  I often have to add 'set -x' in
configure to see where it went wrong.

 > > Patches that remove the need for the signal semantics test (by
 > > changing the code to use sigaction(2)) would probably be accepted.
> > > > However, I can't think of any way around the snprintf issue. Broken
 > > snprintf implementations are not the problem they were a few years
 > > ago, but they're still around and as people often seem to compile
 > > netkit on strange platforms I'd prefer to keep that test.
> > I don't think you'd need to avoid that issue. autoconf can express
 > every one of the tests you currently do in your hand-generated
 > configure script.

You were complaining that it couldn't cross-compile because it had to
run some of its test programs. If you changed it to use autoconf, it
would *still* have to run some of its test programs, and it *still*
wouldn't cross-compile.

So unless you have some kind of magic solution for that test (and some
others)... you're blowing smoke.

Autoconf provides a standard way of overriding tests via the environment.
Fairly often, I can just use a standard set of overrides for any program
using autoconf, since they mostly use the same tests.

The alternative is hand-hacking MCONFIG, which is what I do for your stuff.

It's a shame autoconf's configure scripts are so gross.  If they were
more human-friendly, maybe more programmers would be willing to use it.

Maybe once Posix mandates Python :-)
- Dan





reply via email to

[Prev in Thread] Current Thread [Next in Thread]