Bug #395094: Rewrite config/autorun.sh to a Bourne shell script
authorTrond Norbye <trond.norbye@sun.com>
Fri, 3 Jul 2009 10:48:15 +0000 (12:48 +0200)
committerTrond Norbye <trond.norbye@sun.com>
Fri, 3 Jul 2009 10:48:15 +0000 (12:48 +0200)
config/autorun.sh

index fdf58deab1caf5e40e91b4f7dbf4b8985bde8393..2e0d839f779d6ab50b5bc3195d64b37a81f5bd3b 100755 (executable)
-#!/usr/bin/env bash
+#!/bin/sh
 # Taken from lighthttpd server (BSD). Thanks Jan!
 # Run this to generate all the initial makefiles, etc.
 
 die() { echo "$@"; exit 1; }
 
-# LIBTOOLIZE=${LIBTOOLIZE:-libtoolize}
+# --force means overwrite ltmain.sh script if it already exists 
 LIBTOOLIZE_FLAGS=" --automake --copy --force"
-# ACLOCAL=${ACLOCAL:-aclocal}
-ACLOCAL_FLAGS="-I m4"
-# AUTOHEADER=${AUTOHEADER:-autoheader}
-# AUTOMAKE=${AUTOMAKE:-automake}
+# --add-missing instructs automake to install missing auxiliary files
+# and --force to overwrite them if they already exist
 AUTOMAKE_FLAGS="--add-missing --copy --force"
-# AUTOCONF=${AUTOCONF:-autoconf}
+ACLOCAL_FLAGS="-I m4"
 
 ARGV0=$0
 ARGS="$@"
 
-
 run() {
        echo "$ARGV0: running \`$@' $ARGS"
        $@ $ARGS
 }
 
-## jump out if one of the programs returns 'false'
-set -e
+# Try to locate a program by using which, and verify that the file is an
+# executable
+locate_binary() {
+  for f in $@
+  do
+    file=`which $f 2>/dev/null | grep -v '^no '`
+    if test -n "$file" -a -x "$file"; then
+      echo $file
+      return 0
+    fi
+  done
+
+  echo "" 
+  return 1
+}
 
-## We do not currently support glibtoolize
+# Try to detect the supported binaries if the user didn't
+# override that by pushing the environment variable
 if test x$LIBTOOLIZE = x; then
-  if test \! "x`which glibtoolize 2> /dev/null | grep -v '^no'`" = x; then
-    LIBTOOLIZE=glibtoolize
-  elif test \! "x`which libtoolize-1.5 2> /dev/null | grep -v '^no'`" = x; then
-    LIBTOOLIZE=libtoolize-1.5
-  elif test \! "x`which libtoolize 2> /dev/null | grep -v '^no'`" = x; then
-    LIBTOOLIZE=libtoolize
-  else 
-    echo "libtoolize 1.5.x wasn't found, exiting"; exit 0
+  LIBTOOLIZE=`locate_binary glibtoolize libtoolize-1.5 libtoolize`
+  if test x$LIBTOOLIZE = x; then
+    die "Did not find a supported libtoolize"
   fi
 fi
 
-## suse has aclocal and aclocal-1.9
 if test x$ACLOCAL = x; then
-  if test \! "x`which aclocal-1.10 2> /dev/null | grep -v '^no'`" = x; then
-    ACLOCAL=aclocal-1.10
-  elif test \! "x`which aclocal-1.9 2> /dev/null | grep -v '^no'`" = x; then
-    ACLOCAL=aclocal-1.9
-  elif test \! "x`which aclocal19 2> /dev/null | grep -v '^no'`" = x; then
-    ACLOCAL=aclocal19
-  elif test \! "x`which aclocal 2> /dev/null | grep -v '^no'`" = x; then
-    ACLOCAL=aclocal
-  else 
-    echo "automake 1.9.x (aclocal) wasn't found, exiting"; exit 0
+  ACLOCAL=`locate_binary aclocal-1.10 aclocal-1.9 aclocal19 aclocal`
+  if test x$ACLOCAL = x; then
+    die "Did not find a supported aclocal"
   fi
 fi
 
 if test x$AUTOMAKE = x; then
-  if test \! "x`which automake-1.10 2> /dev/null | grep -v '^no'`" = x; then
-    AUTOMAKE=automake-1.10
-  elif test \! "x`which automake-1.9 2> /dev/null | grep -v '^no'`" = x; then
-    AUTOMAKE=automake-1.9
-  elif test \! "x`which automake19 2> /dev/null | grep -v '^no'`" = x; then
-    AUTOMAKE=automake19
-  elif test \! "x`which automake 2> /dev/null | grep -v '^no'`" = x; then
-    AUTOMAKE=automake
-  else 
-    echo "automake 1.9.x wasn't found, exiting"; exit 0
+  AUTOMAKE=`locate_binary automake-1.10 automake-1.9 automake19 automake`
+  if test x$AUTOMAKE = x; then
+    die "Did not find a supported automake"
   fi
 fi
 
-
-## macosx has autoconf-2.59 and autoconf-2.60
 if test x$AUTOCONF = x; then
-  if test \! "x`which autoconf-2.59 2> /dev/null | grep -v '^no'`" = x; then
-    AUTOCONF=autoconf-2.59
-  elif test \! "x`which autoconf259 2> /dev/null | grep -v '^no'`" = x; then
-    AUTOCONF=autoconf259
-  elif test \! "x`which autoconf 2> /dev/null | grep -v '^no'`" = x; then
-    AUTOCONF=autoconf
-  else 
-    echo "autoconf 2.59+ wasn't found, exiting"; exit 0
+  AUTOCONF=`locate_binary autoconf-2.59 autoconf259 autoconf`
+  if test x$AUTOCONF = x; then
+    die "Did not find a supported autoconf"
   fi
 fi
 
 if test x$AUTOHEADER = x; then
-  if test \! "x`which autoheader-2.59 2> /dev/null | grep -v '^no'`" = x; then
-    AUTOHEADER=autoheader-2.59
-  elif test \! "x`which autoheader259 2> /dev/null | grep -v '^no'`" = x; then
-    AUTOHEADER=autoheader259
-  elif test \! "x`which autoheader 2> /dev/null | grep -v '^no'`" = x; then
-    AUTOHEADER=autoheader
-  else 
-    echo "autoconf 2.59+ (autoheader) wasn't found, exiting"; exit 0
+  AUTOHEADER=`locate_binary autoheader-2.59 autoheader259 autoheader`
+  if test x$AUTOHEADER = x; then
+    die "Did not find a supported autoheader"
   fi
 fi
 
-
-# --force means overwrite ltmain.sh script if it already exists 
 run $LIBTOOLIZE $LIBTOOLIZE_FLAGS || die "Can't execute libtoolize"
-
 run $ACLOCAL $ACLOCAL_FLAGS || die "Can't execute aclocal"
 run $AUTOHEADER || die "Can't execute autoheader"
-
-# --add-missing instructs automake to install missing auxiliary files
-# and --force to overwrite them if they already exist
 run $AUTOMAKE $AUTOMAKE_FLAGS  || die "Can't execute automake"
 run $AUTOCONF || die "Can't execute autoconf"
 
-echo -n "Automade with: "
-$AUTOMAKE --version | head -1
-echo -n "Configured with: "
-$AUTOCONF --version | head -1
-
+echo "---"
+echo "Configured with the following tools:"
+echo "  * `$LIBTOOLIZE --version | head -1`"
+echo "  * `$ACLOCAL --version | head -1`"
+echo "  * `$AUTOHEADER --version | head -1`"
+echo "  * `$AUTOMAKE --version | head -1`"
+echo "  * `$AUTOCONF --version | head -1`"
+echo "---"