Whamcloud - gitweb
b=23074 improve autogen.sh
[fs/lustre-release.git] / build / autogen.sh
index 3c3bf5f..2e73f64 100644 (file)
@@ -31,15 +31,15 @@ error_msg() {
                EOF
        else
                cat >&2 <<-EOF
-               CFS provides RPMs which can be installed alongside your
+               Sun provides RPMs which can be installed alongside your
                existing autoconf/make RPMs, if you are nervous about
                upgrading.  See
 
-               ftp://ftp.lustre.org/pub/other/autolustre/README.autolustre
+               http://downloads.lustre.org/public/tools/autolustre/README.autolustre
 
                You may be able to download newer version from:
 
-               http://ftp.gnu.org/gnu/$cmd/$cmd-$required.tar.gz
+               http://ftp.gnu.org/gnu/$tool/$tool-$required.tar.gz
        EOF
        fi
        [ "$cmd" = "autoconf" -a "$required" = "2.57" ] && cat >&2 <<EOF
@@ -70,7 +70,7 @@ check_version() {
     if ! $cmd --version >/dev/null ; then
        error_msg "missing"
     fi
-    version=$($cmd --version | awk "BEGIN { IGNORECASE=1 } /$tool \(GNU $tool\)/ { print \$4 }")
+    version=$($cmd --version | awk "/$tool \(GNU/ { print \$4 }")
     echo "found $version"
     if ! compare_versions "$required" "$version" ; then
        error_msg "too old"
@@ -78,7 +78,17 @@ check_version() {
 }
 
 echo "Checking for a complete tree..."
-for dir in build portals lustre ; do
+if [ -d kernel_patches ] ; then
+    # This is ldiskfs
+    REQUIRED_DIRS="build"
+    CONFIGURE_DIRS=""
+else
+    REQUIRED_DIRS="build libcfs lnet lustre"
+    OPTIONAL_DIRS="snmp portals"
+    CONFIGURE_DIRS="libsysio lustre-iokit ldiskfs spl zfs"
+fi
+
+for dir in $REQUIRED_DIRS ; do
     if [ ! -d "$dir" ] ; then
        cat >&2 <<EOF
 Your tree seems to be missing $dir.
@@ -88,22 +98,47 @@ EOF
     fi
     ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $PWD/$dir/autoconf"
 done
+# optional directories for Lustre
+for dir in $OPTIONAL_DIRS; do
+    if [ -d "$dir" ] ; then
+       ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $PWD/$dir/autoconf"
+    fi
+done
+
+for AMVER in 1.7 1.8 1.9 1.10 1.11; do
+     [ "$(which automake-$AMVER 2> /dev/null)" ] && break
+done
+
+[ "${AMVER#1.}" -ge "10" ] && AMOPT="-W no-portability"
 
-check_version automake automake-1.7 "1.7.8"
+check_version automake automake-$AMVER "1.7.8"
 check_version autoconf autoconf "2.57"
 
-echo "Running aclocal-1.7 $ACLOCAL_FLAGS..."
-aclocal-1.7 $ACLOCAL_FLAGS
-echo "Running autoheader..."
-autoheader
-echo "Running automake-1.7..."
-automake-1.7 -a -c
-echo "Running autoconf..."
-autoconf
-
-if [ -d libsysio ] ; then
-    pushd libsysio >/dev/null
-    echo "Running autogen for libsysio..."
-    sh autogen.sh
-    popd >/dev/null
-fi
+run_cmd()
+{
+    cmd="$@"
+    echo -n "Running $cmd"
+    eval $cmd
+    res=$?
+    if [ $res -ne 0 ]; then
+        echo " failed: $res"
+        echo "Aborting"
+        exit 1
+    fi
+    echo
+}
+
+run_cmd "aclocal-$AMVER $ACLOCAL_FLAGS"
+run_cmd "autoheader"
+run_cmd "automake-$AMVER -a -c $AMOPT"
+run_cmd autoconf
+
+# Run autogen.sh in these directories
+for dir in $CONFIGURE_DIRS; do
+    if [ -d $dir ] ; then
+        pushd $dir >/dev/null
+        echo "Running autogen for $dir..."
+        run_cmd "sh autogen.sh"
+        popd >/dev/null
+    fi
+done