[PATCH] configure: test shell parameter substring processing and possibly exec one
Tomi Ollila
tomi.ollila at iki.fi
Mon Apr 16 08:13:19 PDT 2012
configure script uses parameter substring extensively. It is Posix shell
feature. Original Bourne shell does not have such features. Some systems
still ships such shells as /bin/sh (for compatibility reasons -- shell
scripts written on those platforms are expected to work in 1990's systems...)
To tackle this situation the beginning of configure attemts to do a silent
parameter substitution in a subshell; in case this fails the subshell exits
with nonzero value which is easy to detect.
The || constructs are used twice. The first one is used as Bourne shell
chokes on 'if ! ... ' construct (and if ...; then :; else do_things; fi
looks stupid). The second one(liner) takes care of the possible future
'set -eu' in the beginning of this script.
---
This patch obsoletes id:"1333966665-10469-2-git-send-email-Vladimir.Marek at oracle.com"
configure | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/configure b/configure
index 71981b7..06fbeff 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,19 @@
#! /bin/sh
+# Test whether this sh is capable of parameter substring processing.
+# If not, attempt to locate and launch one which probably can.
+( option=option=value; : ${option#*=} ) 2>/dev/null || {
+ if test x"${_NOTMUCH_CONFIGURE-}" = x ; then
+ NOTMUCH_CONFIGURE=1; export _NOTMUCH_CONFIGURE
+ for x in /bin/ksh /bin/bash /usr/bin/bash
+ do test ! -x "$x" || exec "$x" "$0" "$@"
+ done
+ fi
+ echo "Cannot find compatible shell to execute '$0'" >&2
+ exit 1
+}
+unset _NOTMUCH_CONFIGURE
+
# Store original IFS value so it can be changed (and restored) in many places.
readonly DEFAULT_IFS=$IFS
--
1.7.8.2
More information about the notmuch
mailing list