Add build.sh -Z var, to unset a variable and ensure it's unset in makewrapper.
For -M MAKEOBJDIRPREFIX, unset MAKEOBJDIR. For -O MAKEOBJDIR, unset MAKEOBJDIRPREFIX.
This commit is contained in:
parent
82cba16bce
commit
13b0ffec63
16
BUILDING
16
BUILDING
|
@ -541,7 +541,7 @@ BUILDING
|
|||
If you see build failures with -j, please save complete build
|
||||
logs so the failures can be analyzed.
|
||||
|
||||
-M obj Set MAKEOBJDIRPREFIX to obj.
|
||||
-M obj Set MAKEOBJDIRPREFIX to obj. Unsets MAKEOBJDIR.
|
||||
|
||||
-m mach Set the value of MACHINE to mach. This will also override any
|
||||
value of MACHINE_ARCH in the process environment with a value
|
||||
|
@ -572,7 +572,8 @@ BUILDING
|
|||
-O obj Create an appropriate transform macro for MAKEOBJDIR that will
|
||||
place the built object files under obj. For instance, a set-
|
||||
ting of /usr/obj will place build-time files under
|
||||
/usr/obj/bin, /usr/obj/lib, and so forth.
|
||||
/usr/obj/bin, /usr/obj/lib, /usr/obj/usr.bin, and so forth.
|
||||
Unsets MAKEOBJDIRPREFIX.
|
||||
|
||||
-o Set the value of MKOBJDIRS to ``no''. Otherwise, it will be
|
||||
automatically set to ``yes'' (which is opposite to the default
|
||||
|
@ -593,7 +594,8 @@ BUILDING
|
|||
-u Set MKUPDATE=yes.
|
||||
|
||||
-V var=[value]
|
||||
Set the variable var to value (which is optional).
|
||||
Set the environment variable var to an optional value. This is
|
||||
propagated to the nbmake wrapper.
|
||||
|
||||
-w wrapper
|
||||
Create the nbmake wrapper script (see below) in a custom loca-
|
||||
|
@ -601,6 +603,9 @@ BUILDING
|
|||
place the wrapper in PATH automatically. Note that wrapper is
|
||||
the full name of the file, not just a directory name.
|
||||
|
||||
-Z var Unset ("zap") the environment variable var. This is propagated
|
||||
to the nbmake wrapper.
|
||||
|
||||
The "nbmake-MACHINE" wrapper script
|
||||
If using the build.sh script to build NetBSD, a nbmake-MACHINE script
|
||||
will be created in TOOLDIR/bin upon the first build to assist in building
|
||||
|
@ -609,6 +614,9 @@ BUILDING
|
|||
nbmake-MACHINE can be invoked in lieu of make(1), and will instead call
|
||||
the up-to-date version of ``nbmake'' installed into TOOLDIR/bin with sev-
|
||||
eral key variables pre-set, including MACHINE, MACHINE_ARCH, and TOOLDIR.
|
||||
build.sh will also set variables specified with -V, and unset variables
|
||||
specified with -Z.
|
||||
|
||||
This script can be symlinked into a directory listed in PATH, or called
|
||||
with an absolute path.
|
||||
|
||||
|
@ -655,4 +663,4 @@ HISTORY
|
|||
BUGS
|
||||
A few platforms are not yet using this build system.
|
||||
|
||||
NetBSD July 18, 2003 NetBSD
|
||||
NetBSD July 29, 2003 NetBSD
|
||||
|
|
33
build.sh
33
build.sh
|
@ -1,5 +1,5 @@
|
|||
#! /usr/bin/env sh
|
||||
# $NetBSD: build.sh,v 1.110 2003/07/28 12:33:42 lukem Exp $
|
||||
# $NetBSD: build.sh,v 1.111 2003/07/29 10:07:15 lukem Exp $
|
||||
#
|
||||
# Copyright (c) 2001-2003 The NetBSD Foundation, Inc.
|
||||
# All rights reserved.
|
||||
|
@ -316,6 +316,12 @@ setmakeenv()
|
|||
makeenv="${makeenv} $1"
|
||||
}
|
||||
|
||||
unsetmakeenv()
|
||||
{
|
||||
eval "unset $1"
|
||||
makeenv="${makeenv} $1"
|
||||
}
|
||||
|
||||
resolvepath()
|
||||
{
|
||||
case "${OPTARG}" in
|
||||
|
@ -337,7 +343,7 @@ usage()
|
|||
|
||||
Usage: ${progname} [-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 [...]
|
||||
[-w wrapper] [-Z var] operation [...]
|
||||
|
||||
Build operations (all imply "obj" and "tools"):
|
||||
build Run "make build"
|
||||
|
@ -366,9 +372,11 @@ Usage: ${progname} [-EnorUu] [-a arch] [-B buildid] [-D dest] [-j njob] [-M obj]
|
|||
Should not be used without expert knowledge of the build system
|
||||
-j njob Run up to njob jobs in parallel; see make(1)
|
||||
-M obj Set obj root directory to obj (sets MAKEOBJDIRPREFIX)
|
||||
Unsets MAKEOBJDIR.
|
||||
-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 obj Set obj root directory to obj (sets a MAKEOBJDIR pattern).
|
||||
Unsets MAKEOBJDIRPREFIX.
|
||||
-o Set MKOBJDIRS=no (do not create objdirs at start of build)
|
||||
-R release Set RELEASEDIR to release. (Default: releasedir)
|
||||
-r Remove contents of TOOLDIR and DESTDIR before building
|
||||
|
@ -380,6 +388,7 @@ Usage: ${progname} [-EnorUu] [-a arch] [-B buildid] [-D dest] [-j njob] [-M obj]
|
|||
-V v=[val] Set variable \`v' to \`val'
|
||||
-w wrapper Create ${toolprefix}make script as wrapper
|
||||
(Default: \${TOOLDIR}/bin/${toolprefix}make-\${MACHINE})
|
||||
-Z v Unset ("zap") variable \`v'
|
||||
|
||||
_usage_
|
||||
exit 1
|
||||
|
@ -387,7 +396,7 @@ _usage_
|
|||
|
||||
parseoptions()
|
||||
{
|
||||
opts='a:B:bD:dEhi:j:k:M:m:nO:oR:rT:tUuV:w:'
|
||||
opts='a:B:bD:dEhi:j:k:M:m:nO:oR:rT:tUuV:w:Z:'
|
||||
opt_a=no
|
||||
|
||||
if type getopts >/dev/null 2>&1; then
|
||||
|
@ -460,6 +469,7 @@ parseoptions()
|
|||
-M)
|
||||
eval ${optargcmd}; resolvepath
|
||||
makeobjdir="${OPTARG}"
|
||||
unsetmakeenv MAKEOBJDIR
|
||||
setmakeenv MAKEOBJDIRPREFIX "${OPTARG}"
|
||||
;;
|
||||
|
||||
|
@ -477,6 +487,7 @@ parseoptions()
|
|||
-O)
|
||||
eval ${optargcmd}; resolvepath
|
||||
makeobjdir="${OPTARG}"
|
||||
unsetmakeenv MAKEOBJDIRPREFIX
|
||||
setmakeenv MAKEOBJDIR "\${.CURDIR:C,^$TOP,$OPTARG,}"
|
||||
;;
|
||||
|
||||
|
@ -530,6 +541,12 @@ parseoptions()
|
|||
makewrapper="${OPTARG}"
|
||||
;;
|
||||
|
||||
-Z)
|
||||
eval ${optargcmd}
|
||||
# XXX: consider restricting which variables can be unset?
|
||||
unsetmakeenv "${OPTARG}"
|
||||
;;
|
||||
|
||||
--)
|
||||
break
|
||||
;;
|
||||
|
@ -784,12 +801,16 @@ createmakewrapper()
|
|||
eval cat <<EOF ${makewrapout}
|
||||
#! /bin/sh
|
||||
# Set proper variables to allow easy "make" building of a NetBSD subtree.
|
||||
# Generated from: \$NetBSD: build.sh,v 1.110 2003/07/28 12:33:42 lukem Exp $
|
||||
# Generated from: \$NetBSD: build.sh,v 1.111 2003/07/29 10:07:15 lukem Exp $
|
||||
#
|
||||
|
||||
EOF
|
||||
for f in ${makeenv}; do
|
||||
eval echo "${f}=\'\$$(echo ${f})\'\;\ export\ ${f}" ${makewrapout}
|
||||
if eval "[ -z \"\${$f}\" -a \"\${${f}-X}\" = \"X\" ]"; then
|
||||
eval echo "unset ${f}" ${makewrapout}
|
||||
else
|
||||
eval echo "${f}=\'\$$(echo ${f})\'\;\ export\ ${f}" ${makewrapout}
|
||||
fi
|
||||
done
|
||||
eval echo "USETOOLS=yes\; export USETOOLS" ${makewrapout}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" $NetBSD: BUILDING.mdoc,v 1.26 2003/07/18 16:30:48 lukem Exp $
|
||||
.\" $NetBSD: BUILDING.mdoc,v 1.27 2003/07/29 10:07:16 lukem Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2001-2003 The NetBSD Foundation, Inc.
|
||||
.\" All rights reserved.
|
||||
|
@ -40,7 +40,7 @@
|
|||
.\" Toolchain prefix for commands
|
||||
.ds toolprefix nb
|
||||
.
|
||||
.Dd July 18, 2003
|
||||
.Dd July 29, 2003
|
||||
.Dt BUILDING 8
|
||||
.Os NetBSD
|
||||
.
|
||||
|
@ -1052,6 +1052,8 @@ Set
|
|||
.Sy MAKEOBJDIRPREFIX
|
||||
to
|
||||
.Ar obj .
|
||||
Unsets
|
||||
.Sy MAKEOBJDIR .
|
||||
.
|
||||
.It Fl m Ar mach
|
||||
Set the value of
|
||||
|
@ -1109,8 +1111,12 @@ that will place the built object files under
|
|||
For instance, a setting of
|
||||
.Sy /usr/obj
|
||||
will place build-time files under
|
||||
.Sy /usr/obj/bin , /usr/obj/lib ,
|
||||
.Sy /usr/obj/bin ,
|
||||
.Sy /usr/obj/lib ,
|
||||
.Sy /usr/obj/usr.bin ,
|
||||
and so forth.
|
||||
Unsets
|
||||
.Sy MAKEOBJDIRPREFIX .
|
||||
.
|
||||
.It Fl o
|
||||
Set the value of
|
||||
|
@ -1164,14 +1170,18 @@ Set
|
|||
.Op Ar value
|
||||
.Sm on
|
||||
.Xc
|
||||
Set the variable
|
||||
Set the environment variable
|
||||
.Ar var
|
||||
to
|
||||
.Ar value
|
||||
(which is optional).
|
||||
to an optional
|
||||
.Ar value .
|
||||
This is propagated to the
|
||||
.Sy \*[toolprefix]make
|
||||
wrapper.
|
||||
.
|
||||
.It Fl w Ar wrapper
|
||||
Create the \*[toolprefix]make wrapper script (see below) in a custom location,
|
||||
Create the
|
||||
.Sy \*[toolprefix]make
|
||||
wrapper script (see below) in a custom location,
|
||||
specified by
|
||||
.Ar wrapper .
|
||||
This allows, for instance, to place the wrapper in
|
||||
|
@ -1181,6 +1191,13 @@ Note that
|
|||
.Ar wrapper
|
||||
is the full name of the file, not just a directory name.
|
||||
.
|
||||
.It Fl Z Ar var
|
||||
Unset ("zap") the environment variable
|
||||
.Ar var .
|
||||
This is propagated to the
|
||||
.Sy \*[toolprefix]make
|
||||
wrapper.
|
||||
.
|
||||
.El
|
||||
.
|
||||
.Ss The \*q\*[toolprefix]make-MACHINE\*q wrapper script
|
||||
|
@ -1207,6 +1224,12 @@ with several key variables pre-set, including
|
|||
.Sy MACHINE , MACHINE_ARCH ,
|
||||
and
|
||||
.Sy TOOLDIR .
|
||||
.Sy build.sh
|
||||
will also set variables specified with
|
||||
.Fl V ,
|
||||
and unset variables specified with
|
||||
.Fl Z .
|
||||
.Pp
|
||||
This script can be symlinked into a directory listed in
|
||||
.Sy PATH ,
|
||||
or called with an absolute path.
|
||||
|
|
Loading…
Reference in New Issue