On 9/12/07, Roland Mainz <[EMAIL PROTECTED]> wrote:
> Jason King wrote:
> > On 9/12/07, Roland Mainz <[EMAIL PROTECTED]> wrote:
> > > Jason King wrote:
> > > > On 9/12/07, Alexander Kolbasov <[EMAIL PROTECTED]> wrote:
> > > [snip]
> > > > > It would be great if you can participate in this work. What are your 
> > > > > primary
> > > > > interests? What are you thinking off?
> > > >
> > > > I really liked the idea (obviously this would probably have to be done
> > > > in a gradual fashion) of the recursive-make-is-bad approach -- i.e.
> > > > generate the complete dependency tree and allow dmake to go wild with
> > > > it.  That should I think expose all opportunities for parallelism.
> > >
> > > AFAIK this will not work as you would expect... make&&dmake scale badly
> > > if you add more and more make rules&&targets, e.g. the time to parse the
> > > makefile and ".make.state" becomes exponentially worse as seen with
> > > libast's Makefile.com which is very large and needs almost 45sec just
> > > for reading on my old SPARC. If you put more entries into a single
> > > Makefile this will IMO kill all improvements unless you call this
> > > Makefile only a few times during the build.
> >
> > Actually the idea would be you call it exactly once for the build and
> > that's it instead of doing recursive calls.
>
> What will happen if I only want to rebuild a tiny subdir (like
> usr/src/lib/libdll/) - would the whole giant all-in-one Makefile be
> read, too
> (http://src.opensolaris.org/source/search?q=&defs=&refs=&path=Makefile&hist=&project=%2Fonnv
> says there are 7447 files called "Makefile" - if we put all of them in
> one large Makefile and each chunk needs 0.5sec to read... imagine how
> lot it will take...) ?
>
> ----
>
> Bye,
> Roland
>
> --
>   __ .  . __
>  (o.\ \/ /.o) [EMAIL PROTECTED]
>   \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
>   /O /==\ O\  TEL +49 641 7950090
>  (;O/ \/ \O;)
>

The dependencies would be broken up into smaller files, for libraries
(for example) I'd imagine 1 makefile for a library that would define
all the needed dependencies for that library.

It would then be included in usr/src/lib/Makefile in some fashion
(which itself would be included in usr/src, etc. ).  So if you are
working with usr/src/lib/libfoo, then when you do 'dmake', it's only
going to worry about the dependencies needed for libfoo, if you do
'dmake' in usr/src/lib, then you get the full dependency tree for all
the libraries.  Right now, the dependencies as you get less granular
are incomplete, which can lead to either too little or too much work
being done (or being done in a non-optimal manner).
_______________________________________________
tools-discuss mailing list
tools-discuss@opensolaris.org

Reply via email to