Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 May 2001 17:27:15 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        atrens@nortelnetworks.com (Andrew Atrens)
Cc:        chat@FreeBSD.ORG
Subject:   Re: -- recursive make considered harmful ??
Message-ID:  <200105031727.KAA20516@usr02.primenet.com>
In-Reply-To: <Pine.BSF.4.32.0105022151001.82576-100000@hcarp00g.ca.nortel.com> from "Andrew Atrens" at May 02, 2001 09:58:22 PM

next in thread | previous in thread | raw e-mail | index | archive | help
> Any considered opinions on this ?
> 
> http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html
> 
> I've set up a freebsd-style make system for our project which is blazingly
> fast on freebsd (and solaris), but sucks lemons on NT (mostly because of
> Cygwin fork+exec).
> 
> Anyhow I've taken a lot of heat as a result of this paper, from people who
> are more talk and less action than myself.

I think all of the issues pointed out in the paper can be
addressed with a top level include file that sets the tone
for the build process.

Personally, I have dealt with ordering dependencies by
making my build process multipass.  This lets me move
things between passes without a lot of effort.

If you have less of a hard correspondance between your
build tree and your source repository (e.g. everything you
use is stored in seperate modules, and checked out during
the build process, if it's not already there), then you
can do the same thing logically without additional Makefile
magic by setting up top level ordered pass directories.
This might be directories such as "pass1", "pass2", etc.,
into which you check out modules as subdirectories.

My own project's build process is 6 passes, and involves
arouns 3.8 million lines of code, so far, for the project
components, a lot of which are open source and are built
into target directories with "configure" being run, etc.,
and if I change one file anywhere, it just Does The Right
Thing, including using gmake for some of the components
(it gets built in pass2).

The code compiles and runs on FreeBSD, Solaris, HP/UX, and
Linux, and I have good reason to expect it to work in AIX,
as well.

I think that if you take the paper too seriously, or the
complaints of people without a decent "make" program too
seriously, that you are going to be doomed to mediocrity;
a prohibition against tricky things is a prohibition against
clever and innovative soloutions.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-chat" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200105031727.KAA20516>