From 481963d9a6afe7a7e6c6c0ac9b082c8c40162495 Mon Sep 17 00:00:00 2001
From: Ralph Giles <giles@xiph.org>
Date: Fri, 31 Oct 2003 12:12:16 +0000
Subject: [PATCH] Require automake 1.6.

nodist_include_HEADERS is not supported by automake 1.4. It ignores the
line entirely and fails to install ao/os_types.h, preventing any
application from compiling against libao. Therefore we make the
requirement explicit by adding it to the AUTOMAKE_OPTIONS in
Makefile.am.

Unfortunately, automake 1.4 is still the default on many systems
(including Debian unstable) and in stark contrast to the situation with
autoconf, even when 1.6 or later is installed there is no dispatch
mechanism to ensure the appropriate version is used. Therefore we make
an attempt in autogen.sh to select the correct executables for aclocal
and automake and run those.

Note that while the message says, "checking for automake 1.6 or
later..." it actually only checks for a matching version number. If
someone knows how to do the 'or later' part in portable shell, please
let me know.


git-svn-id: http://svn.xiph.org/trunk/ao@5521 0101bb08-14d6-0310-b084-bc0e0c8e3800
---
 Makefile.am            |  2 +-
 autogen.sh             | 60 ++++++++++++++++++++++++++++++++++--------
 include/Makefile.am    |  2 +-
 include/ao/Makefile.am |  2 +-
 4 files changed, 52 insertions(+), 14 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 95744dd..47c0807 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-AUTOMAKE_OPTIONS = foreign dist-zip
+AUTOMAKE_OPTIONS = foreign 1.6 dist-zip
 
 SUBDIRS = src include doc debian
 
diff --git a/autogen.sh b/autogen.sh
index eff5dbc..afc53b7 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -20,15 +20,53 @@ echo "checking for autoconf... "
         DIE=1
 }
 
-echo "checking for automake... "
-(automake --version) < /dev/null > /dev/null 2>&1 || {
+VERSIONGREP="sed -e s/.*[^0-9\.]\([0-9]\.[0-9]\).*/\1/"
+                                                                                
+# do we need automake?
+if test -r Makefile.am; then
+  AM_NEEDED=`fgrep AUTOMAKE_OPTIONS Makefile.am | $VERSIONGREP`
+  if test -z $AM_NEEDED; then
+    echo -n "checking for automake... "
+    AUTOMAKE=automake
+    ACLOCAL=aclocal
+    if ($AUTOMAKE --version < /dev/null > /dev/null 2>&1); then
+      echo "no"
+      AUTOMAKE=
+    else
+      echo "yes"
+    fi
+  else
+    echo -n "checking for automake $AM_NEEDED or later... "
+    for am in automake-$AM_NEEDED automake$AM_NEEDED automake; do
+      ($am --version < /dev/null > /dev/null 2>&1) || continue
+      ver=`$am --version < /dev/null | head -1 | $VERSIONGREP`
+      if test $ver = $AM_NEEDED; then
+        AUTOMAKE=$am
+        echo $AUTOMAKE
+        break
+      fi
+    done
+    test -z $AUTOMAKE &&  echo "no"
+    echo -n "checking for aclocal $AM_NEEDED or later... "
+    for ac in aclocal-$AM_NEEDED aclocal$AM_NEEDED aclocal; do
+      ($ac --version < /dev/null > /dev/null 2>&1) || continue
+      ver=`$ac --version < /dev/null | head -1 | $VERSIONGREP`
+      if test $ver = $AM_NEEDED; then
+        ACLOCAL=$ac
+        echo $ACLOCAL
+        break
+      fi
+    done
+    test -z $ACLOCAL && echo "no"
+  fi
+  test -z $AUTOMAKE || test -z $ACLOCAL && {
         echo
         echo "You must have automake installed to compile $package."
-	echo "Download the appropriate package for your system,"
-	echo "or get the source from one of the GNU ftp sites"
-	echo "listed in http://www.gnu.org/order/ftp.html"
-        DIE=1
-}
+        echo "Download the appropriate package for your distribution,"
+        echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+        exit 1
+  }
+fi
 
 echo -n "checking for libtool... "
 for LIBTOOLIZE in libtoolize glibtoolize nope; do
@@ -60,14 +98,14 @@ fi
 
 echo "Generating configuration files for $package, please wait...."
 
-echo "  aclocal $ACLOCAL_FLAGS"
-aclocal $ACLOCAL_FLAGS
+echo "  $ACLOCAL $ACLOCAL_FLAGS"
+$ACLOCAL $ACLOCAL_FLAGS
 #echo "  autoheader"
 #autoheader
 echo "  $LIBTOOLIZE --automake"
 $LIBTOOLIZE --automake
-echo "  automake --add-missing $AUTOMAKE_FLAGS"
-automake --add-missing $AUTOMAKE_FLAGS 
+echo "  $AUTOMAKE --add-missing $AUTOMAKE_FLAGS"
+$AUTOMAKE --add-missing $AUTOMAKE_FLAGS 
 echo "  autoconf"
 autoconf
 
diff --git a/include/Makefile.am b/include/Makefile.am
index 99b8f5f..e9be87a 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -1,5 +1,5 @@
 ## Process this file with automake to produce Makefile.in
 
-AUTOMAKE_OPTIONS = foreign
+AUTOMAKE_OPTIONS = foreign 1.6
 
 SUBDIRS = ao
diff --git a/include/ao/Makefile.am b/include/ao/Makefile.am
index 0481b54..13c0a90 100644
--- a/include/ao/Makefile.am
+++ b/include/ao/Makefile.am
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-AUTOMAKE_OPTIONS = foreign
+AUTOMAKE_OPTIONS = foreign 1.6
 
 includedir = $(prefix)/include/ao
 
-- 
GitLab