Subject: Re: parent directory search for make(1)
To: None <tech-toolchain@netbsd.org>
From: Christos Zoulas <christos@zoulas.com>
List: tech-toolchain
Date: 01/30/2004 16:12:39
In article <20040130015344.GD16034@ece.cmu.edu>,
Chuck Cranor <chuck@ece.cmu.edu> wrote:
>hi-
>
> i'm working on a project where we want use NetBSD make(1) as
>the main build tool. since this project will run on multiple
>platforms, i'm using Simon Gerraty's portable bmake package (see
>http://www.crufty.net/help/sjg/bmake.html ) which is based on
>NetBSD make.
>
> one thing we'd like to have is all of make's macros live within
>the base of our local CVS source tree rather than outside of it (e.g.
>we don't want to use /usr/share/mk). in order for this to work, our
>build environment needs a way to walk up the directory tree looking
>for sys.mk (giving up if it reaches "/" without finding it).
>
> there are a couple of ways to add this search in. currently
>i'm using a small patch to make that adds this semantic to MAKESYSPATH.
>[patch included below] basically, it uses a magic path string of
>".../" to access the parent directory search. then the locally
>compiled bmake has its default MAKESYSPATH set to ".../mk/sys.mk"
>which causes it to look for "mk/sys.mk", then "../mk/sys.mk", then
>"../../mk/sys.mk", etc. until it finds it or reaches the root of
>the filesystem without finding it.
>
> in discussing it with Simon, he suggests another approach is
>to put the directory search in a wrapper script that dynamically
>determines the location of "sys.mk" and invokes make with that
>directory passed in (either via "-m" or $MAKESYSPATH).
>
> it seems like having this feature in NetBSD make itself would
>be useful(?). it isn't clear if it would be better to put it in
>make itself (like i did) or add a new make wrapper script to the
>NetBSD source tree that would do the search. anyone have any
>helpful thoughts on this?
>
I don't like much the `.../' but I cannot think of something better?
maybe starting with `*'? Otherwise looks fine to me, commit it.
christos