[MPlayer-dev-eng] .developer cruft

Diego Biurrun diego at biurrun.de
Sun Apr 2 00:12:12 CEST 2006


On Sat, Apr 01, 2006 at 03:51:01AM -0500, Rich Felker wrote:
> On Sat, Apr 01, 2006 at 09:55:24AM +0200, Diego Biurrun wrote:
> > On Fri, Mar 31, 2006 at 03:16:26AM -0500, Rich Felker wrote:
> > > On Fri, Mar 31, 2006 at 09:30:09AM +0200, Diego Biurrun wrote:
> > > > 
> > > > While we're at it, why is .libdeps needed at all?
> > > 
> > > It's just a set of rules to make the main makefile recurse into
> > > subdirectories if any files in the subdirs have changed.
> > > Unconditionally recursing into them is also possible but would make
> > > performance extremely bad in the common case where nothing has
> > > changed.
> > 
> > I say go for unconditional recursing.  It takes 1s on my machine when
> > nothing has changed, I see no need to improve this "extremely bad
> > performance".
> 
> I can guarantee it's a LOT worse on my system. Probably 10s or more.
> This is unacceptable.

Huh?  I have the same hardware as you in my PC, I've never had this
problem.  Provide some steps to reproduce :)

> > Another downside of .libdeps is that it needs to be
> > updated every time things get added, shuffled around etc in the source
> > tree.  So far this has always been overlooked, just look at the cvs log
> > of etc/.libdeps.  And it's documented nowhere, few devs understand it
> > and/or use it.  IMO it is an obscure mechanism with questionable
> > benefit.  You'll need some pretty good arguments to sway my opinion.
> 
> My proposal now is eliminating all makesfiles except in the top-level
> dir and eliminating recursive make. This will solve all the dependency
> problems with no performance penalty.

Sounds good, let's see it.

> > > Of course I'd be happiest if we could eliminate recursive make
> > > altogether...
> > > http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html
> > 
> > I've read that paper as well, but while the rant is completely right in
> > theory, the practical instructions for implementing non-recursive make
> > are missing from it.  Where are the examples of non-recursive make
> > usage?  The whole world seems to happily use it recursively...
> 
> The whole world does a lot of stupid things. :)))))

Sure, but when the world just ignores the textbook correct solution it
may also be that the textbook correct solution isn't all that hot.

> Look at my libc for a good example -- a single 69-line makefile drives
> the whole build with multiple levels of directories. Naturally a bit
> more is needed to manage all the different imported libs and stuff
> that MPlayer uses, but I don't think it will be particularly bad.
> Let's see if I can do it...

As I said, I'd love to see it work.

> Until then, if no one objects my first step will be to fix things so
> that the current system works like having .developer and .libdeps.
> This will make things better in some cases, no worse in others, and
> performance will be no worse.

Let's see your patches/commits.

Diego




More information about the MPlayer-dev-eng mailing list