Subject: HEADS UP: build.sh semantics changed
To: None <current-users@netbsd.org>
From: Luke Mewburn <lukem@netbsd.org>
List: current-users
Date: 01/24/2003 03:31:17
--QTprm0S8XgL7H0Dt
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

A heads up.

The build.sh semantics have changed.  This commit message should explain
it all.  If not, UPDATING will.  If not, ask on current-users.

One minor issue I forgot to mention in the commit: "make build" is NOT
the default operation any more; you now have to specify that with
"./build.sh build"

Luke.

--QTprm0S8XgL7H0Dt
Content-Type: message/rfc822
Content-Disposition: inline

	by home.mewburn.net (Postfix) with SMTP id 2BB8110645
	for <lukem@mewburn.net>; Fri, 24 Jan 2003 03:24:30 +1100 (EST)
  by mail.netbsd.org with SMTP; 23 Jan 2003 16:24:10 -0000
	id 417BAB004; Thu, 23 Jan 2003 18:24:09 +0200 (EET)
From: Luke Mewburn <lukem@netbsd.org>
Subject: CVS commit: src
To: source-changes@netbsd.org
Reply-To: lukem@netbsd.org
Message-Id: <20030123162409.417BAB004@cvs.netbsd.org>
Date: Thu, 23 Jan 2003 18:24:09 +0200 (EET)
Sender: source-changes-owner@netbsd.org
	tests=RCVD_IN_BONDEDSENDER,SPAM_PHRASE_00_01
	version=2.43


Module Name:	src
Committed By:	lukem
Date:		Thu Jan 23 16:24:09 UTC 2003

Modified Files:
	src: BUILDING build.sh
	src/doc: BUILDING.mdoc

Log Message:
Rework how build.sh functions, so that command line options set various
parameters, and a list of "operations" defines what to do.
The full usage is show below.  Notes:
	`-b' has been deprecated (it always occurs now)
	`-d' is replaced by "distribution"
	`-R rel' onlys sets RELEASEDIR; use "release" to build a release
	`-k kern' has been replaced by "kernel=kern"
	`-i idir' has been replaced by "install=idir"
	-r now occurs before nbmake is rebuilt

Add a copyright (long due!).  Rework the code to (a KNF inspired) ShellNF.
Use functions appropriately.  Allow `nb' prefix to be easily changed to
something else.  Solve world peace (just kidding)

This is part of the (never achievable) goal of attempting to make
NetBSD easier to build...

  --8<--  new usage follows  --8<--

Usage: build.sh [-EnorUu] [-a arch] [-B buildid] [-D dest] [-j njob] [-M obj]
		[-m mach] [-O obj] [-R release] [-T tools] [-V var=[value]]
		[-w wrapper]   [operation [...] ]

 System build operations (all imply "obj" and "tools"):
    build		Run "make build"
    distribution	Run "make distribution" (includes etc/ files)
    release		Run "make release" (includes kernels & distrib media)

 Other operations:
    obj			Run "make obj" (default unless -o)
    tools 		Build and install tools
    kernel=conf		Build kernel with config file `conf'
    install=idir	Run "make installworld" to `idir'
			(useful after 'distribution' or 'release')

 Options:
    -a arch	Set MACHINE_ARCH to arch (otherwise deduced from MACHINE)
    -B buildId	Set BUILDID to buildId
    -D dest	Set DESTDIR to dest
    -E		Set "expert" mode; disables some DESTDIR checks
    -j njob	Run up to njob jobs in parallel; see make(1)
    -M obj	Set obj root directory to obj (sets MAKEOBJDIRPREFIX)
    -m mach	Set MACHINE to mach (not required if NetBSD native)
    -n		Show commands that would be executed, but do not execute them
    -O obj	Set obj root directory to obj (sets a MAKEOBJDIR pattern)
    -o		Set MKOBJDIRS=no (do not create objdirs at start of build)
    -R release	Set RELEASEDIR to release
    -r		Remove contents of TOOLDIR and DESTDIR before building
    -T tools	Set TOOLDIR to tools.  If unset, and TOOLDIR is not set in
		the environment, nbmake will be (re)built unconditionally.
    -U		Set UNPRIVED
    -u		Set UPDATE
    -V v=[val]	Set variable `v' to `val'
    -w wrapper	Create nbmake script as wrapper
		(default: ${TOOLDIR}/bin/nbmake-${MACHINE})


To generate a diff of this commit:
cvs rdiff -r1.21 -r1.22 src/BUILDING
cvs rdiff -r1.83 -r1.84 src/build.sh
cvs rdiff -r1.8 -r1.9 src/doc/BUILDING.mdoc

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

--QTprm0S8XgL7H0Dt--