autoconf (was Re: [Box Backup] 0.08PLUS3)

Martin Ebourne boxbackup@fluffy.co.uk
Wed, 8 Dec 2004 18:36:38 +0000


Ben Summers <ben@fluffy.co.uk> wrote:
> To be honest, I'm scared at all the changes which will be necessary,
> and can't see any easy way around the binary / library / test structure
> of the project without lots of scary sub targets.

I'm sure the current directory layouts would not be hard to preserve. As for
the way the targets work in the test directories it's quite possible it
would be necessary to change how they work currently. I'm sure we could come
up with a scheme which would be perfectly functional.

After all, change might be scary, but that doesn't make it bad.

> The Win32 native stuff was the bit which would require the changes to
> the build system. Although I don't think it'll be that bad, I think I
> can get away with post-processing the output for a BSD.

Obviously the major change is windows and that makes it a good time to look
at completely new solutions. I don't advocate autoconf because of windows,
but because in the long term I'm sure that it is the only sensible way to
get good cross platform support on unix. I think history has proven this
many times, even if just by the number of projects which have abandoned
their own build systems for autoconf over the years. Even the ACE library,
with its huge very cross platform home-grown build system is finally going
autoconf. They've got 27,000 files in the full distribution, that must be a
lot of work!

The trick would be to go autoconf and make it work with windows too, then
we'd get best of both worlds.

> I'd like to use the free MS compiler for the Win32 port. I believe it
> has better code, but more importantly, it's a different compiler which
> will help keep the code clean and compliant. Just using one compiler
> for a "portable" project is slightly non-optimal.

I agree, and had assumed that actually. Although gcc is the obvious choice
with cygwin, it is possible to use ms's own compiler. See:

http://cccl.sourceforge.net/

Having done some more reading, then as I understand it you would need the
following cygwin packages on a windows machine only to BUILD an autoconf'd
box:

Bourne shell
GNU M4
GNU Make
Perl

You don't need autoconf because that's done by the source packager. The
resulting build does not need to have any cygwin dependencies, which seems
to be the main criterion.

Cheers,

Martin.