link: "Recursive Make Considered Harmful"

Andrew Hacking ahacking at
Tue Jan 11 01:00:32 PST 2005

> Were it not for the syntactic mess that I think scons is.  Each 'makefile'
> resembles raw Python so much I don't think it is worthwhile for people to
> learn it.
> It gives power to the user but at an, in my opinion, too extreme cost.  Make
> was a nice program, but it has served its time by now and has fundamental
> flaws.  Any new build tool, again in my opinion, needs to cut back on the
> 'programming' aspect of the build files and allow people to get their
> recipes working quickly.

My thoughts on scons precisely. Powerful but cumbersome syntax for 99%
of cases.

> I consider jam to be a step in the right direction.

I had a look at jam, moderately interesting, but after reading the
sybase "success story" I have reservations. see:

As the article states, jam uses filenames as unique identifiers of
targets across the whole source tree eg two files named foo.c in
different directories in the source tree requires a manual tie breaker
tag to get the one you want. This just seems lame when dealing with a
large source base.

I was also surprised to see in jam that all variable assignment occurs
at parsing time and cannot occur dynamically, eg as the output of a
shell command.  This has to take away a lot of power that make provides,
but obviously makes it easier for jam to calculate dependencies up front
before doing anything.

Anyway its good to look at alternatives... and still see that make isn't
so bad despite the limitations.

-Andrew Hacking

More information about the Kernel mailing list