On 05/11/2009 06:08 AM, Robert Collins wrote: > I have one small request vis-a-vis the source code reorg. > > Please don't undo the non-recursive make support. I put a lot of effort > into getting it where it was up to (even though that wasn't propogated > across the entire code base). It makes a substantial difference to > correctness, performance and ease of use of incremental builds. > > Where the goal is to split out a Makefile, I suggest the use of an > include to incorporate smaller files. > > I can see a number of regressions in this to-date, which is why I'm > asking that we not let it slide anymore.
I am not against non-recursive Makefiles as such, but I do not think it is accurate to characterize the mess the SourceLayout project inherited as a "non-recursive" or "recursive" design. It is just a mess with no sense of direction or style. Whatever effort was spent in moving towards one design goal is not really visible behind the problems that remained and/or were added on top. Moving towards recursive make was easier for me because the concept is better understood, better documented, and is arguably simpler to implement (dependency loops aside). We can reverse the direction now if that's the consensus. Here is the good news: Regardless of the non/recursive decision, most of the SourceLayout changes are valid and useful. They properly organize the sources files. If we decide that non-recursive make is the goal, it would be much easier to convert to that style now (or later). Do all modern environments have good support for large non-recursive projects? Can somebody provide an example of a large project using non-recursive Makefiles? Or is that just a nice idea that never really took flight and is not being optimized/designed for? Thank you, Alex.