I should have read this before I sent my last message, but....
On Fri, May 25, 2001 at 11:04:37AM -0500, Karl Fogel wrote:
> Greg Hudson <ghudson@MIT.EDU> writes:
> > Karl wrote:
> > > We've had a lot of inter-library circular dependency problems with
> > > the recursive Makefile system, that required us to spend unexpected
> > > amounts of time coordinating build order between directories.
> >
> > This argument just doesn't track. A single-level build process
> > doesn't allow you to have inter-library circular dependencies, nor
> > does it save you any effort determining what order to build libraries
> > in.
>
> What you say makes sense; I probably misremembered and/or mis-analyzed
> what I did remember.
>
> Greg Stein's much longer & detailed explanation about the motivations
> is more accurate.
>
Actually, that argument does track. With recursive make, you have to
order the *directories* so that all files have their dependencies
built before they are built. With a single makefile, though, your
files state what their dependencies and make topologically sorts the
graph at a file level.
That's the key distinction. Assume that your dependency graph has no
cycles when looked at file by file. If you then collapse the nodes
for each file in a directory into one node for the directory, you
artificially introduce circular dependencies. Even if you don't have
circular dependencies between the directories, you do have order
dependencies. Someone has to manually sort the dependency graph
between the directories instead of leaving it to make. (I'm always in
favor of making the computer do the work so that I don't need to...)
Chris
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:30 2006