[Top][All Lists]

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

Re: [Gnu-arch-users] Build System links/ recommendations

From: Jan Hudec
Subject: Re: [Gnu-arch-users] Build System links/ recommendations
Date: Sun, 29 Aug 2004 11:19:53 +0200
User-agent: Mutt/1.5.6+20040818i

On Sat, Aug 28, 2004 at 22:14:12 +0100, Andrew Suffield wrote:
> On Sun, Aug 29, 2004 at 06:41:39AM +1000, Zenaan Harkness wrote:
> > Since I only came on the list about 8000 messages ago (which actually
> > isn't that long really), and since James recently mentioned about
> > "getting ones build system right", is there a link that people get
> > pointed at to describe "the right build system"?
> You might as well ask for "the right program". Constructing a build
> system, *even using tools to simplify the process*, is a programming
> problem that requires every bit as much skill and effort as
> constructing a program.
> 99% of lousy build systems are that way because they didn't receive
> either. Ones based on auto* are compounded by the problem that the
> author probably hasn't read the manual for the tools he is using; most
> autoconf scripts are an exercise in cargo-cult programming.

I have an uneasy feeling that automake is specificaly designed for cargo
cult programming. Whenever I try to do something clever or nonstandard
I find myself replicating various parts of it's functionality. Well,
it's the same with ExtUtils::MakeMaker.

> > Fastdep (now in Debian sid), pointed me to the paper Recursive Make
> > Considered Harmful:
> >
> I hate this paper. It's snake oil.

I can tell one thing. I have a real world experience that inclusive make
is faster and more reliable.

We wrote a school project. It was not big, but it had a part in
userland, part in kernel, part for windows and parts that were compiled
for more than one part (the windows part had it's own build system for
MSVC++ though).

First we had standard recursive makefiles (hand written GNU makefiles). 
It was slow, it kept relinking it all the time (because the recursive
make was considered a change, though it wasn't) and we had problems with
things not getting rebuilt several times.

Then I rewrote the whole system for inclusive make (hand written GNU
makefiles again). It was faster by an order of magnitude and reliable.

As I said, they were GNU makefiles, though. And they relied on GNU make
features *very* heavily. It wouldn't be possible without those features.

                                                 Jan 'Bulb' Hudec 

Attachment: signature.asc
Description: Digital signature

reply via email to

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