Subject: Re: Weird "make all" behavior
To: Erik E. Fair <fair@clock.org>
From: Scott Reynolds <scottr@Plexus.COM>
List: current-users
Date: 11/07/1997 18:08:22
On Fri, 7 Nov 1997, Erik E. Fair wrote:

> Sounds like you're arguing over which words to use.

Not really.  Curt's proposal was to squash the current behavior of `make
build' and replace it with his version, which has a fundamentally
different meaning.  Under the current system, it means `build a system',
but under his, it means `build the software'.  I hope that makes what I'm
trying to say a little more clear.

> I think that the goal of compiling everything without installation is very
> important [...]

Yes, that's important.

> I would also prefer a mechanism to build against a directory other than
> /usr/src; the idea there is that I suck down /usr/src once a day and make it
> available to all my build systems via NFS and read-only, rather than have a
> separate tree for each system (though I admit that for those systems that take
> more than 24 hours to build the world, this has problems, performance issues
> aside). I am aware of the BSDOBJDIR stuff, but haven't used it yet. I supposed
> I'm not starved enough for disk space these days.

I'm not really sure what you meant here.  Do you do a `make obj'?  Do you
use OBJMACHINE?  Except for the `make obj' step, the source tree doesn't
need to be written to.  Setting BSDOBJDIR isn't necessary; a symlink from
/usr/obj is sufficient, and you can even share a single obj tree with
multiple architectures if you use OBJMACHINE.  (I personally compile
hp300, i386, and mac68k from common source and object trees.)

There's also the option of using the union file system, either for
compiling or just storing obj symlinks.  This is particularly intriguing
for use with a source tree distributed on CD-ROM, though I've not
personally been able to experiment with it.

> Just as an aside, one issue that our makefiles do not address is initial
> installation of new tools required for the source tree to compile correctly,
> e.g. gcc, yacc, rpcgen, compile_et, and so on. For anyone trying to make the
> leap from 1.2 to -current without a snapshot (which I did on Sun3 about four
> months ago), this is a pain.

This is definitely painful.  I generally don't bother to try this, but
rather install a snapshot or prerelease, as the case may be.  It's
quicker to download, even over a 28.8K modem, than to build everything on
my systems. :-)

I'm not sure whether this problem can be reasonably resolved.  It's
non-trivial, at best.

> This is all academic right now, because it would be a bad idea to fundamentally
> change the makefiles in the release tree during a release cycle. We're less
> than a month away from release (assuming we're on track), so this can wait
> until then.

Absolutely agreed.

--scott