DragonFly BSD
DragonFly kernel List (threaded) for 2005-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: link: "Recursive Make Considered Harmful"

From: Christopher Vance <christopher@xxxxxx>
Date: Tue, 11 Jan 2005 18:23:56 +1100

On Tue, Jan 11, 2005 at 07:53:54AM +0100, Jeroen Ruigrok/asmodai wrote:
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.

I fully agree.

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

I'll consider that a recommendation to have to look into jam.

I have to do clever conditional stuff.  Especially when I am first
bootstrapping my compiler and then recompiling with said just compiled
bootstrapped compiler.  This needs on the fly readjustment of my CFLAGS and
linking options.  And then I even split out stuff into bootstrap.mk and
build.mk already.

But how much of this cleverness needs to be done by run-time calculation? Using a different *.mk file for different invocations isn't the naughty thing I was talking about, unless your makefile recurses using both of them at different times, or loops, or ...

Given a versatile program, you are bound to run into users who will use some
of the declarative and some of the non-declarative features.

Agreed. Although I bemoan the amount of non-declarative stuff in the typical usage of make these days, because I don't think it's all justified, I would also feel quite straightjacketted if I couldn't use it when I thought it was justified.

What would be nice is a way to do all the fancy stuff up front, and
produce a declarative description of what needs to be done.
Unfortunately, the easiest way to work out what make would do is to
get make to do it.

I don't like all the GNU autocrap stuff, which supposedly does some of
what I want, at least partly because the resulting Makefiles are still
not fully declarative.

[I guess it's like my attitude to C++ - it was a good language before
it grew fat, and now people feel they have to use feature X, even
though feature Y is cheaper both size- and time-wise, and can do the
same things X was used for.  A company I worked for rewrote some
templated C++ into C.  The resulting binary was only 1/10 the size,
and far easier to maintain - the problem wasn't so much the tool as
inappropriate usage of the bells and whistles.]

Christopher Vance

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