Subject: CVS commit: basesrc
To: None <source-changes@netbsd.org>
From: Todd Vierling <tv@netbsd.org>
List: source-changes
Date: 10/31/2001 21:59:44
Module Name:	basesrc
Committed By:	tv
Date:		Wed Oct 31 19:59:44 UTC 2001

Modified Files:
	basesrc: build.sh

Log Message:
Major cleanup and overhaul:

* Allow MACHINE to be set automatically on NetBSD native builds.
  Require -m only if the host is not NetBSD.

* Fail if DESTDIR is set to root (/) and the build is not NetBSD native,
  or the build is attempting a "make release" (option -R).

* Warn the user if DESTDIR is set to root (/) that the kernel must be up
  to date, or else the build might hose the system.  Also, do not remove
  DESTDIR on -r if it is set to root.

* Fail if TOOLDIR is set to / or empty after checking with nbmake.

* Allow DESTDIR and TOOLDIR to be set in mk.conf and/or by the new default
  from <bsd.own.mk>.  Note that if -T is not used to set TOOLDIR, and
  TOOLDIR is not set in the environment, then nbmake will always be
  bootstrapped (rather than looking at nbmake's timestamp).  This is
  because /bin/sh doesn't know how to get TOOLDIR from mk.conf without
  first having nbmake (...which lives in TOOLDIR).

* Do a pass of "make obj" through src/tools before installing nbmake (so
  long as -o/MKOBJDIRS=no is not specified).  This ensures that objdirs
  exist if they are desired, and paves the way for using build.sh to
  build all the src/tools without building everything else.

* Add "-w" option, which allows the builder to specify where the nbmake
  wrapper shell script should be created.  If not specified,
  $TOOLDIR/bin/nbmake-$MACHINE is still created as a default.

* Print the values of DESTDIR and TOOLDIR after bootstrapping nbmake,
  for informational purposes.

It should now be possible to type just "./build.sh" on a NetBSD-current
host and get a new build in / for the appropriate architecture.
However, building in-place like this has *not* been extensively tested
yet, so be careful.


To generate a diff of this commit:
cvs rdiff -r1.14 -r1.15 basesrc/build.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.