Jivin Mike Frysinger lays it down ...
> On Tuesday 03 March 2009 20:06:27 David McCullough wrote:
> > Jivin Mike Frysinger lays it down ...
> > > On Tuesday 03 March 2009 18:36:59 David McCullough wrote:
> > > > Jivin Mike Frysinger lays it down ...
> > > >
> > > > > In the Blackfin dist, we generate some temp symlinks in the tools/
> > > > > subdir for utilities.  The uClinux-dist doesn't use any symlinks in
> > > > > this subdir, so it shouldn't affect anything there.
> > > >
> > > > Ok,  I can't apply this one.  Lots of uClinux-dist users (in particular
> > > > us
> > > >
> > > > :-) build using sym-link trees,  this will trash the good symlinks as
> > > > : well
> > > >
> > > > as the temp ones.
> > >
> > > i thought i looked and there were no symlinks in tools/ ... what'd i miss
> >
> > A link tree is an "out of source tree build" where everything except
> > directories is a symlink.
> >
> > For example, to make one,  be sure to start with a pristine (never built
> > in tree) and then do:
> >
> >     mkdir build1
> >     cd build1
> >     lndir -silent /full/path/to/pristine
> >     make config
> >     make
> >
> > It allows you to cleanly build multiple targets from a common source tree
> > at the same time.  Currently build1 cannot be a directory under
> > pristine.
> >
> > It also means a real clean can become "rm -rf build1" :-)
> 
> is there more info on this ?  we've had requests for out-of-tree builds before


Not really any more info than above.  I can write something up if you
like,  but it will be short :-)

I don't always use it,  but others use it religiously.  Here is an
example of how to use it safely (with a cvs repo):


        TDIR=`pwd`
        cvs co -d pristine uClinux-dist

        mkdir target1
        cd target1
        lndir -silent $TDIR/pristine
        make Vendor1/Target1_default
        cd ..

        mkdir target2
        cd target2
        lndir -silent $TDIR/pristine
        make Vendor2/Target2_default
        cd ..

The original pristine tree will remain largely untouched (there are a
few rogue packages that still mess with autogenerated files).  All the
binaries, images and config etc will be in the targetX dirs.

target1 and target2 can build/clean/operate completely independantly
(even being built at the same time is ok IIRC).

If you update your pristine dir,  you may need to rerun "lndir" to ensure
target1 and target2 pick up any new files that need to be linked.

lndir automatically leaves out the CVS/RCS/SCCS/SVN control directories
as well unless you ask it to keep them.

lndir is silent unless it sees something it can't fix,  like a link
already exists but doesn’t point to the correct file.

If it gets messy (lots of changes on a tree update), rm -rf targetX and
re-link/build.

I tend to use it whenever I have slow source repo access and lots of
targets to manage.

Is that enough to get you started ?

> > > > Perhaps you can beef the tools/... Makefiles to clean specifically the
> > > > symlinks they install ?
> > >
> > > the symlinks are arbitrarily generated
> >
> > If there is some pattern to it at all you may be able to avoid existing
> > filenames.
> 
> i can change things to use a dedicated dir and create more symlinks to 
> workaround it.

Cheers,
Davidm

-- 
David McCullough,  david_mccullo...@securecomputing.com,  Ph:+61 734352815
McAfee - SnapGear  http://www.snapgear.com                http://www.uCdot.org
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to