Subject: Re: Weird "make all" behavior
To: Scott Reynolds <scottr@plexus.com>
From: Erik E. Fair <fair@clock.org>
List: current-users
Date: 11/07/1997 15:50:16
Sounds like you're arguing over which words to use.

	make foo        - compile everything against itself, without disturbing
			any of the running system.

	make bar        - stomp the running system a piece at a time (includes,
			libraries, toolchain, userland)

	make baz        - install from the place where stuff was compiled.

Fill in "foo", "bar" and "baz" any way you like.

I think that the goal of compiling everything without installation is very
important - my build systems risk immolation every day when they sup and "make
build" because it's possible that someone makes a mistake in libc and suddenly
nothing works. Kinda like libc.so.13.0

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.

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 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.

	Erik E. Fair	fair@clock.org