Module Name: src
Committed By: apb
Date: Wed Oct 14 19:03:12 UTC 2009
Modified Files:
src: build.sh
Log Message:
Bomb if TOOLDIR, DESTDIR, or RELEASEDIR changes after we have created the
top level object directory. This can happen if /etc/mk.conf overrides
values passed to build.sh in the environment or on the command line.
To generate a diff of this commit:
cvs rdiff -u -r1.214 -r1.215 src/build.sh
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/build.sh
diff -u src/build.sh:1.214 src/build.sh:1.215
--- src/build.sh:1.214 Sat Oct 3 19:19:59 2009
+++ src/build.sh Wed Oct 14 19:03:12 2009
@@ -1,5 +1,5 @@
#! /usr/bin/env sh
-# $NetBSD: build.sh,v 1.214 2009/10/03 19:19:59 apb Exp $
+# $NetBSD: build.sh,v 1.215 2009/10/14 19:03:12 apb Exp $
#
# Copyright (c) 2001-2009 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -1144,23 +1144,38 @@
${runcmd} cd "${TOP}"
fi
- # Find TOOLDIR, DESTDIR, RELEASEDIR, and RELEASEMACHINEDIR.
+ # Find TOOLDIR, DESTDIR, and RELEASEDIR, according to getmakevar,
+ # and bomb if they have changed from the values we had from the
+ # command line or environment.
+ #
# This must be done after creating the top-level object directory.
#
- TOOLDIR=$(getmakevar TOOLDIR)
- statusmsg "TOOLDIR path: ${TOOLDIR}"
- DESTDIR=$(getmakevar DESTDIR)
- RELEASEDIR=$(getmakevar RELEASEDIR)
+ for var in TOOLDIR DESTDIR RELEASEDIR
+ do
+ eval oldval=\"\$${var}\"
+ newval="$(getmakevar $var)"
+ if ! $do_expertmode; then
+ : ${__SRC_TOP_OBJ__:=$(getmakevar __SRC_TOP_OBJ__)}
+ case "$var" in
+ DESTDIR)
+ : ${newval:=${_SRC_TOP_OBJ_}/destdir.${MACHINE}}
+ ;;
+ RELEASEDIR)
+ : ${newval:=${_SRC_TOP_OBJ_}/releasedir}
+ ;;
+ esac
+ fi
+ if [ -n "$oldval" ] && [ "$oldval" != "$newval" ]; then
+ bomb "Value of ${var} has changed" \
+ "(was \"${oldval}\", now \"${newval}\")"
+ fi
+ eval ${var}=\"\${newval}\"
+ eval export ${var}
+ statusmsg "${var} path: ${newval}"
+ done
+
+ # RELEASEMACHINEDIR is just a subdir name, e.g. "i386".
RELEASEMACHINEDIR=$(getmakevar RELEASEMACHINEDIR)
- if ! $do_expertmode; then
- _SRC_TOP_OBJ_=$(getmakevar _SRC_TOP_OBJ_)
- : ${DESTDIR:=${_SRC_TOP_OBJ_}/destdir.${MACHINE}}
- : ${RELEASEDIR:=${_SRC_TOP_OBJ_}/releasedir}
- makeenv="${makeenv} DESTDIR RELEASEDIR"
- fi
- export TOOLDIR DESTDIR RELEASEDIR
- statusmsg "DESTDIR path: ${DESTDIR}"
- statusmsg "RELEASEDIR path: ${RELEASEDIR}"
# Check validity of TOOLDIR and DESTDIR.
#
@@ -1298,7 +1313,7 @@
eval cat <<EOF ${makewrapout}
#! ${HOST_SH}
# Set proper variables to allow easy "make" building of a NetBSD subtree.
-# Generated from: \$NetBSD: build.sh,v 1.214 2009/10/03 19:19:59 apb Exp $
+# Generated from: \$NetBSD: build.sh,v 1.215 2009/10/14 19:03:12 apb Exp $
# with these arguments: ${_args}
#