Subject: Re: BSDSRCDIR, was Re: mount*(8) linked as one binary ?
To: Simon J. Gerraty <sjg@quick.com.au>
From: Frederick Bruckman <fb@enteract.com>
List: tech-userlevel
Date: 11/27/2000 13:41:04
On Mon, 27 Nov 2000, Simon J. Gerraty wrote:

> >On 28 Oct 2000, Chris G. Demetriou wrote:
> >> Frederick Bruckman <fb@enteract.com> writes:
> >> > That begs the question of where the top of the build tree _is_, so
> >> > you're asking to set BSDSRCDIR, or equivalent, in every Makefile in
> >> > the tree.
> >> 
> >> Or in the Makefile.inc files, yes.  This is what a
> >> relative-TOPDIR-like scheme is about.
> 
> >I see! It looks like someone's started to do this already -- see the
> >top-level Makefile.inc. At this time, Makefile.local.inc seems to be
> 
> That would probably be me ;-)
> With some of the changes I made to make and bsd.obj.mk you can set
> MAKEOBJDIR='${.CURDIR:S,${ABSTOP},${OBJTOP},}'
> where ABSTOP is the top of your src tree, and OBJTOP is the top of your
> object tree, and you'll get a neat obj tree that parallels your src.
> Eg.
> ABSTOP=/work/NetBSD/current/src
> OBJTOP=/work/NetBSD/current/obj

Umm, you lost me. The objection to the present system is that it's too
much effort to set BSDSRCDIR and BSDOBJDIR in /etc/mk.conf or in the
environment (plus it's inelegant, and non-obvious). How is that better?

> The current tree buils without needing Makefile.inc's in all the subdirs
> of src - but for other reasons I've found it worth adding them.

I think it would be good to fill things out in such a way that
BSDSRCDIR and BSDOBJDIR are set to reasonably good guesses (based on
${.CURDIR} or ${.PARSEDIR}) and passed down to recursive makes. It
would be useful to know for sure where the top of the source tree is
(for EXCLUDE_SUBDIRS, for release building), and such would clear any
objections to using the already accepted BSDSRCDIR for that purpose.


Frederick