Module Name: src
Committed By: apb
Date: Sun Sep 27 17:25:02 UTC 2009
Modified Files:
src: build.sh
Log Message:
Make resolvepath and resolvepaths slightly elss magic. They now take
a variable name as an arg unstead of always working on $OPTARG,
and resolveepaths is now a wrapper around resolvepath instead of
duplicating code.
To generate a diff of this commit:
cvs rdiff -u -r1.207 -r1.208 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.207 src/build.sh:1.208
--- src/build.sh:1.207 Mon Sep 7 04:14:17 2009
+++ src/build.sh Sun Sep 27 17:25:01 2009
@@ -1,5 +1,5 @@
#! /usr/bin/env sh
-# $NetBSD: build.sh,v 1.207 2009/09/07 04:14:17 jnemeth Exp $
+# $NetBSD: build.sh,v 1.208 2009/09/27 17:25:01 apb Exp $
#
# Copyright (c) 2001-2009 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -499,41 +499,41 @@
makeenv="${makeenv} $1"
}
-# Convert possibly-relative paths to absolute paths by prepending
-# ${TOP} if necessary. Also delete trailing "/", if any.
+# Given a variable name in $1, modify the variable in place as follows:
+# For each space-separated word in the variable, call resolvepath.
resolvepaths()
{
- _OPTARG=
- for oa in ${OPTARG}; do
- case "${oa}" in
- /)
- ;;
- /*)
- oa="${oa%/}"
- ;;
- *)
- oa="${TOP}/${oa%/}"
- ;;
- esac
- _OPTARG="${_OPTARG} ${oa}"
+ local var="$1"
+ local val
+ eval val=\"\${${var}}\"
+ local newval=''
+ local word
+ for word in ${val}; do
+ resolvepath word
+ newval="${newval}${newval:+ }${word}"
done
- OPTARG="${_OPTARG}"
+ eval ${var}=\"\${newval}\"
}
+# Given a variable name in $1, modify the variable in place as follows:
# Convert possibly-relative path to absolute path by prepending
# ${TOP} if necessary. Also delete trailing "/", if any.
resolvepath()
{
- case "${OPTARG}" in
+ local var="$1"
+ local val
+ eval val=\"\${${var}}\"
+ case "${val}" in
/)
;;
/*)
- OPTARG="${OPTARG%/}"
+ val="${val%/}"
;;
*)
- OPTARG="${TOP}/${OPTARG%/}"
+ val="${TOP}/${val%/}"
;;
esac
+ eval ${var}=\"\${val}\"
}
usage()
@@ -663,12 +663,12 @@
;;
-C)
- eval ${optargcmd}; resolvepaths
+ eval ${optargcmd}; resolvepaths OPTARG
iso_dir=${OPTARG}
;;
-D)
- eval ${optargcmd}; resolvepath
+ eval ${optargcmd}; resolvepath OPTARG
setmakeenv DESTDIR "${OPTARG}"
;;
@@ -682,7 +682,7 @@
;;
-M)
- eval ${optargcmd}; resolvepath
+ eval ${optargcmd}; resolvepath OPTARG
TOP_objdir="${OPTARG}${TOP}"
unsetmakeenv MAKEOBJDIR
setmakeenv MAKEOBJDIRPREFIX "${OPTARG}"
@@ -712,7 +712,7 @@
;;
-O)
- eval ${optargcmd}; resolvepath
+ eval ${optargcmd}; resolvepath OPTARG
TOP_objdir="${OPTARG}"
unsetmakeenv MAKEOBJDIRPREFIX
setmakeenv MAKEOBJDIR "\${.CURDIR:C,^$TOP,$OPTARG,}"
@@ -723,7 +723,7 @@
;;
-R)
- eval ${optargcmd}; resolvepath
+ eval ${optargcmd}; resolvepath OPTARG
setmakeenv RELEASEDIR "${OPTARG}"
;;
@@ -738,7 +738,7 @@
;;
-T)
- eval ${optargcmd}; resolvepath
+ eval ${optargcmd}; resolvepath OPTARG
TOOLDIR="${OPTARG}"
export TOOLDIR
;;
@@ -765,12 +765,12 @@
;;
-w)
- eval ${optargcmd}; resolvepath
+ eval ${optargcmd}; resolvepath OPTARG
makewrapper="${OPTARG}"
;;
-X)
- eval ${optargcmd}; resolvepath
+ eval ${optargcmd}; resolvepath OPTARG
setmakeenv X11SRCDIR "${OPTARG}"
;;
@@ -1223,7 +1223,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.207 2009/09/07 04:14:17 jnemeth Exp $
+# Generated from: \$NetBSD: build.sh,v 1.208 2009/09/27 17:25:01 apb Exp $
# with these arguments: ${_args}
#