[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:
> > http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html
>
> 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
<address@hidden>
signature.asc
Description: Digital signature