[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: OT: useless rant, Was: Building Subversion 1.2 on OS X 10.4 fails

From: Helge Jensen <helge.jensen_at_slog.dk>
Date: 2005-05-14 11:58:59 CEST

Scott Palmer wrote:

> I've been programming since the mid 80's and thankfully I never had to
> deal with what you imply was a worse mess. I suspect perhaps the
> problem is mostly with unix.

No matter who's fault it is, compilitaion won't succeed on a multitude
of platforms unless you solve these problems.

> When I run ./configure I shake my head and wonder "what were they
> thinking?" Just what went so bad that THIS was considered the
> solution? It's not so much that the solution is "fundamentally wrong",
> it's the situation that leads to such a solution.

You don't *have* to run configure. Try making your own makefile and see
how you fare -- now try that makefile on another platform (not another
gnu-make, gcc, gld one, try HPUX with it's make, CC and linker).

One problem is that you will have to write, not only *what* has to be
done (compile foo.c), but also how: ($(CC) -o ...). (BTW: not all
compilers support "-o" or even "-c".

Another problem is that you want to use the available extensions to
standard functions, and the right structs for their arguments.
While this can be achived via long "#if .... #elif ... " chanins, this
has the problem of requering code-change for (almost) every tuple of
(compiler, library, os). Autoconf can do better: it tries the compiler
and sees what is available.

Make is a very poor language (not GNU-make, make). Automake+autoconf is
a compiler from the "high-level" language of Makefile.am and
configure.in to a combination of sh and make.

The reason another Makefile-approach works for the Linux kernel is that
it only compiles only with gnu-make, gcc, on linux and doesn't use any
diversity of libraries.

> error message from autoconf after watching it go through a ton of
> useless stuff, or I can get the error message instantly from 'make'.

Try porting your software to a non-GNU system. The problem is *there*.
Make does not solve the problem that autoconf/automake does.

BTW: you don't write "./autogen.sh && make" to compile, do you? You
really only need to invoke autoconf when the code is just checked out.

make of automake generated makefiles should only re-run configure when
configure.in changes.

> What is fundamentally wrong is that autoconf is needed at all.

While that may be true, so is the state of the world. Refusing to accept
that will not improve things.

Autoconf is the current defacto solution, not because it's "stadard" or
endorsed by a huge company, but because it competed with other solutions
(the horrible "imake" for one) and won (for the time being).

Autoconf is not perfect, but perfect isn't really always needed and
autoconf seems to be doing quite ok.

> I'm obviously missing the bit that makes any of this a sane process.
> And I'm quite happy to remain ignorant :-)

autoconf and automake is actually what allows you to remain ignorant yet
still compile vast amounts of software ;)

Helge Jensen
                -=> Sebastian cover-music: http://ungdomshus.nu <=-
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Sat May 14 18:47:10 2005

This is an archived mail posted to the Subversion Users mailing list.