From owner-freebsd-current Mon Jun 10 12:08:11 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id MAA05146 for current-outgoing; Mon, 10 Jun 1996 12:08:11 -0700 (PDT) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id MAA05137 for ; Mon, 10 Jun 1996 12:08:09 -0700 (PDT) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id MAA04055; Mon, 10 Jun 1996 12:07:49 -0700 From: Terry Lambert Message-Id: <199606101907.MAA04055@phaeton.artisoft.com> Subject: Re: Minor nit in build process plus fix To: wollman@lcs.mit.edu (Garrett Wollman) Date: Mon, 10 Jun 1996 12:07:49 -0700 (MST) Cc: terry@lambert.org, current@FreeBSD.org In-Reply-To: <9606101506.AA11944@halloran-eldar.lcs.mit.edu> from "Garrett Wollman" at Jun 10, 96 11:06:41 am X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-current@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk > > I was thinking in terms of the top level make setting an environment > > variable. The problem is really "..", not "paths relative to the > > build root". > > This presupposes that there /is/ a ``top level make''. When I'm > rebuilding `w', I don't start from /usr/src, I start from > /usr/src/usr.bin/w (or, on my distribution-building box, from > /usr/releng/src/usr.bin/w). Or a top level environment variable, when you do that. Like having a CVSROOT around, you'd need a SRCROOT. I'd suggest a default of /usr/src, if none is specified. Then I can have a symlink tree: /usr/src -> /a/smp /a/current: COPYRIGHT CVS CVS-INFO Makefile README TODO TODO-2.1 bin -> /b/src-current/bin eBones -> /b/src-current/eBones etc -> /b/src-current/etc games -> /b/src-current/games gnu -> /b/src-current/gnu include -> /b/src-current/include lib -> /b/src-current/lib libexec -> /b/src-current/libexec lkm -> /b/src-current/lkm ports -> /b/src-current/ports release -> /b/src-current/release sbin -> /b/src-current/sbin secure -> /b/src-current/secure share -> /b/src-current/share sys -> /b/src-current/sys usr.bin -> /b/src-current/usr.bin usr.sbin -> /b/src-current/usr.sbin /a/smp: COPYRIGHT CVS CVS-INFO Makefile README TODO TODO-2.1 bin -> /b/src-current/bin eBones -> /b/src-current/eBones etc -> /b/src-current/etc games -> /b/src-current/games gnu -> /b/src-current/gnu include -> /b/src-current/include lib -> /b/src-current/lib libexec -> /b/src-current/libexec lkm -> /b/src-current/lkm ports -> /b/src-current/ports release -> /b/src-current/release sbin -> /b/src-current/sbin secure -> /b/src-current/secure share -> /b/src-current/share sys -> /b/src-smp/sys <-- *** usr.bin -> /b/src-current/usr.bin usr.sbin -> /b/src-current/usr.sbin If I don't want to change SRCROOT, I do the build in the top level source directory (which pulls it via pwd in the top Makefile *only*, or I change the symlink /usr/src. One problem with building from the top each time is that the dependencies don't necessarily work like they are supposed to for preventing rebuilds of some things. If that's a problem for you, you can always fix them. 8-). Maybe a k.bin/k.usr.bin for kernel header dependent build files that go in /bin or /usr/bin, to seperate out their build? Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.