better way to build libraries..

John Baldwin jhb at freebsd.org
Mon Oct 2 13:18:19 PDT 2006


On Monday 02 October 2006 15:26, John-Mark Gurney wrote:
> John Baldwin wrote this message on Mon, Oct 02, 2006 at 14:36 -0400:
> > On Monday 02 October 2006 04:24, John-Mark Gurney wrote:
> > > Warner Losh wrote this message on Mon, Oct 02, 2006 at 00:45 -0600:
> > > > In message: <20061002014320.GA80527 at funkthat.com>
> > > >             John-Mark Gurney <gurney_j at resnet.uoregon.edu> writes:
> > > > : I do make includes into the obj dir and use that..  (obviously you
> > > > : need to review is much more closely)...
> > > > 
> > > > I think that we're talking past each other a little, so rather than
> > > > continue down that path, I'll wait for the patch to see what it does
> > > > and make suggested improvements.  Maybe I'll implement the glue code I
> > > > was talking about too, but with a baby due any day now, maybe not. :-)
> > > 
> > > The patch was in the original message...  The one thing that I don't
> > > have the make-fu to do is: a) insert the buildincs before depend  (so
> > > that the psuedo /usr/include is properly depended upon), and b) find
> > > the correct path to tools/install.sh so install doesn't chown/grp the
> > > files...
> > > 
> > > Once a and b are solved, then it can be properly made part of
> > > bsd.lib.mk...  and fully evaluated upon it's merits...
> > > 
> > > btw, my original patch is at:
> > > 
> > 
http://www.freebsd.org/cgi/getmsg.cgi?fetch=722594+0+/usr/local/www/db/text/2006/freebsd-current/20061001.freebsd-current
> > 
> > The sequence ru@ mentioned using 'make includes' is already in bsd.*.mk 
and 
> > should be sufficient for what you need.
> 
> And also run w/ a problem that if say, the library build for some reason
> failed, or something else, I end up w/ a broken /usr/include w/o any
> possibility of recovery...  What if I'm building this library to be run
> on another box?  You want me to tar up my local /usr/include, make
> includes, build the library, and then restore the backed up /usr/include?

No, I expect you to only use that for known-safe cases such as a small 
security patch and to use buildworld in all other cases.  'make buildworld 
NO_CLEAN=yes' for this type of update would actually be just about as quick 
as the sequence ru@ gave you if you leave your /usr/obj around.

> All just because people object to adding a few lines to bsd.lib.mk that
> will not change behavior that isn't already broken?

I think bsd.*.mk are rather complex as it is.  I don't think extra hacks for a 
few edge cases warrant the extra complexity/obfuscation.

-- 
John Baldwin


More information about the freebsd-current mailing list