Makefiles

Stewart Stremler bofh at stremler.net
Thu Oct 7 12:49:22 PDT 2004


begin  quoting John H. Robinson, IV as of Thu, Oct 07, 2004 at 09:44:33AM -0700:
[snip]
> I'll bite (and start a brand new thread, to boot). What are the better
> alternatives?

Well, Java uses Ant, which is okay, so long as you avoid looking at the
build.xml file.  And can also be used as a generic make-system, but I 
don't know why you'd want to do that.

The Java compiler can manage dependencies on its own, given that you've
set up your project properly.  It may be that the _best_ alternative
is to build support into the language and compiler from the start -- but
this doesn't help much with, say, C.

> I'll agree that recursive make sucks[1], but to make the blanket
> statement ``make sucks'' is plainly wrong.

Oh, I don't know. Make may suck. It's just that the alternatives aren't
that much better.

The biggest gripe about Make is that the tabs are *required* (and I
tend to agree that this is a shortcoming -- whitespace as syntax always
seems to cause difficulty in the long run), and is, in fact, the nominal
reason given for the creation of Ant.

(That, and that you supposedly can't write platform-independent makefiles
for compiling Java, which is patently untrue, as I've done it. It's an
exercise that requires some care and discipline, but it's not that HARD.)

I've been doing a lot of compiling lately, of open-source software using
complicated Make systems, and I must say that it hasn't been a pleasure
working with those make systems.  The files are cryptic and opaque, the
results you see in the compilation are non-obvious if you *are* looking
at the Makefile (assuming you tracked down the correct one), and embedded
bash scripts are just, well, annoying.

It's just that I can't think of anything better off the top of my head
that doesn't have some _other_ problem that makes Make seem tame in
comparison.

>   [1] http://www.tip.net.au/~millerp/rmch/recu-make-cons-harm.html

I instinctively distrust any "X-considered-harmful" paper. :)

-Stewart "Enough with the magic syntax already!" Stremler



More information about the KPLUG-List mailing list