Index: bootstrap.sh
===================================================================
--- bootstrap.sh (revision 2017)
+++ bootstrap.sh (working copy)
@@ -14,28 +14,75 @@
#
#*******************************************
-# Check for required version and die if unhappy
-libtoolize --version | grep 1.5.20 > /dev/null ||
- (
- echo You have the wrong, or missing version of libtool.
- echo The minumum required version is 1.5.20 and is available from:
- echo http://www.gnu.org/software/libtool/
- )
+debug ()
+{
+ # Outputs debug statments if DEBUG var is set
+ if [ ! -z "$DEBUG" ]; then
+ echo "DEBUG: $1"
+ fi
+}
+version_compare()
+{
+ # Checks a command is found and the version is high enough
+ PROGRAM=$1
+ MAJOR=$2
+ MINOR=$3
+ MICRO=$4
+ test -z "$MAJOR" && MAJOR=0
+ test -z "$MINOR" && MINOR=0
+ test -z "$MICRO" && MICRO=0
-automake --version | grep 1.9.6 > /dev/null ||
- (
- echo You have the wrong, or missing version of automake.
- echo The minumum required version is 1.9.6 and is available from:
- echo http://www.gnu.org/software/automake/
- )
+ debug "Checking $PROGRAM >= $MAJOR.$MINOR.$MICRO"
-autoconf --version | grep 2.59 > /dev/null ||
- (
- echo You have the wrong, or missing version of autoconf.
- echo The minumum required version is 2.59 and is available from:
- echo http://www.gnu.org/software/autoconf/
- )
+ COMMAND=`/bin/which $PROGRAM`
+ if [ -z $COMMAND ]; then
+ echo "$PROGRAM is required and was not found."
+ return 1
+ else
+ debug "Found $COMMAND"
+ fi
+ INS_VER=`$COMMAND --version | head -1 | sed 's/[^0-9]*//' | cut -d' ' -f1`
+ INS_MAJOR=`echo $INS_VER | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
+ INS_MINOR=`echo $INS_VER | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
+ INS_MICRO=`echo $INS_VER | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
+ test -z "$INS_MAJOR" && INS_MAJOR=0
+ test -z "$INS_MINOR" && INS_MINOR=0
+ test -z "$INS_MICRO" && INS_MICRO=0
+ debug "Installed version: $INS_VER"
+
+ if [ "$INS_MAJOR" -gt "$MAJOR" ]; then
+ debug "MAJOR: $INS_MAJOR > $MAJOR"
+ return 0
+ elif [ "$INS_MAJOR" -eq "$MAJOR" ]; then
+ debug "MAJOR: $INS_MAJOR = $MAJOR"
+ if [ "$INS_MINOR" -gt "$MINOR" ]; then
+ debug "MINOR: $INS_MINOR > $MINOR"
+ return 0
+ elif [ "$INS_MINOR" -eq "$MINOR" ]; then
+ if [ "$INS_MICRO" -ge "$MICRO" ]; then
+ debug "MICRO: $INS_MICRO >= $MICRO"
+ return 0
+ else
+ debug "MICRO: $INS_MICRO < $MICRO"
+ fi
+ else
+ debug "MINOR: $INS_MINOR < $MINOR"
+ fi
+ else
+ debug "MAJOR: $INS_MAJOR < $MAJOR"
+ fi
+
+ echo "You have the wrong version of $PROGRAM. The minimum required version is $MAJOR.$MINOR.$MICRO"
+ echo " and the version installed is $INS_MAJOR.$INS_MINOR.$INS_MICRO ($COMMAND)."
+ return 1
+}
+
+# Check for required version and die if unhappy
+version_compare libtoolize 1 5 20 || exit 1
+version_compare automake 1 9 6 || exit 1
+version_compare autoconf 2 59 || exit 1
+
libtoolize --copy --force --ltdl
aclocal -I acmacros
autoheader --force