Whamcloud - gitweb
3ed60b1caf258bd7f54ca05b98e1fc8b63d78f41
[fs/lustre-release.git] / lustre / autogen.sh
1 #!/bin/bash
2
3 # taken from gnome-common/macros2/autogen.sh
4 compare_versions() {
5     ch_min_version=$1
6     ch_actual_version=$2
7     ch_status=0
8     IFS="${IFS=         }"; ch_save_IFS="$IFS"; IFS="."
9     set $ch_actual_version
10     for ch_min in $ch_min_version; do
11         ch_cur=`echo $1 | sed 's/[^0-9].*$//'`; shift # remove letter suffixes
12         if [ -z "$ch_min" ]; then break; fi
13         if [ -z "$ch_cur" ]; then ch_status=1; break; fi
14         if [ $ch_cur -gt $ch_min ]; then break; fi
15         if [ $ch_cur -lt $ch_min ]; then ch_status=1; break; fi
16     done
17     IFS="$ch_save_IFS"
18     return $ch_status
19 }
20
21 error_msg() {
22         cat >&2 <<EOF
23 $cmd is $1.  version $required is required to build Lustre.
24
25 CFS provides RPMs which can be installed alongside your existing autoconf/make
26 RPMs, if you are nervous about upgrading.  See
27
28 ftp://ftp.lustre.org/pub/other/autolustre/README.autolustre
29
30 You may be able to download a new version from:
31 http://ftp.gnu.org/gnu/$cmd/$cmd-$required.tar.gz
32 EOF
33         [ "$cmd" = "autoconf" -a "$required" = "2.57" ] && cat >&2 <<EOF
34
35 or
36
37 ftp://fr2.rpmfind.net/linux/redhat/9/en/os/i386/RedHat/RPMS/autoconf-2.57-3.noarch.rpm
38 EOF
39         [ "$cmd" = "automake" -a "$required" = "1.7.8" ] && cat >&2 <<EOF
40
41 or
42
43 ftp://fr2.rpmfind.net/linux/fedora/core/1/i386/os/Fedora/RPMS/automake-1.7.8-1.noarch.rpm
44 EOF
45         exit 1
46 }
47
48 check_version() {
49     local cmd
50     local required
51     local version
52
53     cmd=$1
54     required=$2
55     echo -n "checking for $cmd $required... "
56     if ! $cmd --version >/dev/null ; then
57         error_msg "missing"
58     fi
59     version=$($cmd --version | awk "BEGIN { IGNORECASE=1 } /$cmd \(GNU $cmd\)/ { print \$4 }")
60     echo "found $version"
61     if ! compare_versions "$required" "$version" ; then
62         error_msg "too old"
63     fi
64 }
65
66 check_version automake "1.7.8"
67 check_version autoconf "2.57"
68 echo "Running autoreconf..."
69 autoreconf -fi