aboutsummaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2006-11-14 22:48:20 +0000
committerMåns Rullgård <mans@mansr.com>2006-11-14 22:48:20 +0000
commitc21d6325ab01e53af1319bbdbe8bb634015c4a23 (patch)
tree7941cc948e5b642e9ee980e72fa0f4c4bd7b3cca /configure
parent2dbe0bd45fbdff99f2fd50c1a7fee3bc5ce96cee (diff)
downloadffmpeg-c21d6325ab01e53af1319bbdbe8bb634015c4a23.tar.gz
improve broken shell detection, and give a better error message
Originally committed as revision 7077 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure30
1 files changed, 24 insertions, 6 deletions
diff --git a/configure b/configure
index 234f31bb4d..9196a0c0a1 100755
--- a/configure
+++ b/configure
@@ -4,17 +4,35 @@
#
# make sure we are running under a compatible shell
+# try to make this part work with most shells
+
+try_exec(){
+ type "$1" >/dev/null 2>&1 && exec "$@"
+}
+
unset foo
(: ${foo%%bar}) 2>/dev/null && ! (: ${foo?}) 2>/dev/null
if test "$?" != 0; then
- if test "x$FFMPEG_CONFIGURE_EXEC" = x; then
- FFMPEG_CONFIGURE_EXEC=1
- export FFMPEG_CONFIGURE_EXEC
- exec bash "$0" "$@"
- exec ksh "$0" "$@"
- exec /usr/xpg4/bin/sh "$0" "$@"
+ export FF_CONF_EXEC
+ if test "0$FF_CONF_EXEC" -lt 1; then
+ FF_CONF_EXEC=1
+ try_exec bash "$0" "$@"
+ fi
+ if test "0$FF_CONF_EXEC" -lt 2; then
+ FF_CONF_EXEC=2
+ try_exec ksh "$0" "$@"
+ fi
+ if test "0$FF_CONF_EXEC" -lt 3; then
+ FF_CONF_EXEC=3
+ try_exec /usr/xpg4/bin/sh "$0" "$@"
fi
echo "No compatible shell script interpreter found."
+ echo "This configure script requires a POSIX compatible shell"
+ echo "such as bash or ksh."
+ if test "$BASH_VERSION" = '2.04.0(1)-release'; then
+ echo "This bash version ($BASH_VERSION) is broken on your platform."
+ echo "Upgrade to a later version if available."
+ fi
exit 1
fi