Blob Blame History Raw
--- admin/cvs.sh.orig	2009-05-16 14:30:00.000000000 +0400
+++ admin/cvs.sh	2009-06-17 22:40:36.000000000 +0400
@@ -8,6 +8,27 @@
 
 unset MAKEFLAGS
 
+function vercompare(){
+# $1 - version string one
+# $2 - version string two
+# Print result (negative values return not allowed) of Integer difference ver1 - ver2.
+# WARNING: mean have only sign. Do not rely on difference absolute value.
+# Author: Pavel Alexeev (aka Pahan-Hubbitus)
+
+# 1.11, 1.6, # 1.6.1
+verarr1=( $( echo "$1" | sed 's/\./ /g' ) )
+verarr2=( $( echo "$2" | sed 's/\./ /g' ) )
+maxgrade=$( if [ ${#verarr1[@]} -gt ${#verarr2[@]} ]; then echo ${#verarr1[@]}; else echo ${#verarr2[@]}; fi )
+
+	for (( i=0; i<maxgrade; i++)); do
+		[ "${verarr1[i]}" = '' ] && verarr1[i]=0
+		[ "${verarr2[i]}" = '' ] && verarr2[i]=0
+	intver1=${intver1}${verarr1[i]}
+	intver2=${intver2}${verarr2[i]}
+	done
+echo $[ $intver1 - $intver2 ]
+}
+
 call_and_fix_autoconf()
 {
   $AUTOCONF || exit 1
@@ -63,14 +84,15 @@
 AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
 required_automake_version="1.6.1 or newer"
 case $AUTOMAKE_STRING in
-  automake*1.5d* | automake*1.5* | automake*1.5-* )
+  automake*1.* )
+	if [ $( vercompare `echo "$AUTOMAKE_STRING" | sed -r 's/automake \(GNU automake\) ([[:digit:]\.]+)$/\1/'` `echo "$required_automake_version" | sed -r 's/([[:digit:]\.]+).*/\1/'`) -ge 0 ]; then
+	echo "*** $AUTOMAKE_STRING found."
+	UNSERMAKE=no
+	else
     echo "*** YOU'RE USING $AUTOMAKE_STRING."
     echo "*** SIM requires automake $required_automake_version"
     exit 1
-    ;;
-  automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9* | automake*1.10* | automake*1.11*)
-    echo "*** $AUTOMAKE_STRING found."
-    UNSERMAKE=no
+	fi
     ;;
   "" )
     echo "*** AUTOMAKE NOT FOUND!."