Subject: IMPORTANT: Build System Changes
To: NetBSD-current Users <current-users@NetBSD.ORG>
From: Curt Sampson <cjs@portal.ca>
List: current-users
Date: 05/26/1997 09:21:46
Late yesterday evening I committed some patches to the source tree
which change slightly the way that NetBSD is built. We are now set
up to build against includes and libs in the object tree, rather
than having to install them (to DESTDIR or the currently running
system).

EXECUTIVE SUMMARY:

If you currently build your objects within the source tree (either
in the same directory as the source, or in an obj subdirectory) do
nothing; everything should work just as before.

If you currently build your objects in a separate object tree, add
a file called Build.conf in the top level of your source tree or
above, and add BSDSRCDIR, BSDOBJDIR, USR_OBJMACHINE (if you use
it) and DESTDIR to it, just as you would in a normal makefile or
/etc/mk.conf. (If you already have these in /etc/mk.conf, you can
just stick with that.) I suggest you use the ?= form of assignment,
so you can override DESTDIR or whatever on the command line if you
need to. For example:

	BSDSRCDIR?=/usr1/netbsd/co/cynic/src
	BSDOBJDIR?=/usr1/netbsd/builds/cynic/obj
	OBJMACHINE?=1
	USR_OBJMACHINE?=1
	DESTDIR?=/usr1/netbsd/builds/cynic/install.i386

Now you can compile as normal, but you don't have to be root except
for the `make install' you do after a `make build'. (`Make build'
no longer does a `make install'.)

MORE DETAILS:

See src/share/mk/bsd.README, and of course the makefiles themselves,
for the full gumpf.

I'm doing some builds today to check for problems; if you have any
problems with builds you may find it worthwhile to wait a day and
do a sup tomorrow, or do a CVS update later today if you have access
to the repository.

cjs

Curt Sampson    cjs@portal.ca	   Info at http://www.portal.ca/
Internet Portal Services, Inc.	   Through infinite myst, software reverberates
Vancouver, BC  (604) 257-9400	   In code possess'd of invisible folly.