]> code.delx.au - gnu-emacs/blobdiff - autogen.sh
Auto-commit of generated files.
[gnu-emacs] / autogen.sh
index ce742a9c18aca04a0c0834db49cc693e0c5a2b1e..e7c28c16d94e15a3a811fdb1e3d49ceeef2c1bb5 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 ### autogen.sh - tool to help build Emacs from a bzr checkout
 
-## Copyright (C) 2011  Free Software Foundation, Inc.
+## Copyright (C) 2011-2013 Free Software Foundation, Inc.
 
 ## Author: Glenn Morris <rgm@gnu.org>
 
 ### Code:
 
 ## Tools we need:
+## Note that we respect the values of AUTOCONF etc, like autoreconf does.
 progs="autoconf automake"
 
 ## Minimum versions we need:
-autoconf_min=`sed -n 's/^ *AC_PREREQ(\([0-9\.]*\)).*/\1/p' configure.in`
+autoconf_min=`sed -n 's/^ *AC_PREREQ(\([0-9\.]*\)).*/\1/p' configure.ac`
 
-## FIXME how to determine this from the sources?
-automake_min=1.11
+## This will need improving if more options are ever added to the
+## AM_INIT_AUTOMAKE call.
+automake_min=`sed -n 's/^ *AM_INIT_AUTOMAKE(\([0-9\.]*\)).*/\1/p' configure.ac`
 
 
 ## $1 = program, eg "autoconf".
@@ -46,7 +48,8 @@ automake_min=1.11
 ## Also note that we do not handle micro versions.
 get_version ()
 {
-    $1 --version 2>&1 | sed -n '1 s/.* \([1-9][0-9\.]*\).*/\1/p'
+    ## Remove eg "./autogen.sh: line 50: autoconf: command not found".
+    $1 --version 2>&1 | sed -e '/not found/d' -n -e '1 s/.* \([1-9][0-9\.]*\).*/\1/p'
 }
 
 ## $1 = version string, eg "2.59"
@@ -65,13 +68,20 @@ minor_version ()
 
 ## $1 = program
 ## $2 = minimum version.
-## Return 0 if program is present with version >= minumum version.
+## Return 0 if program is present with version >= minimum version.
 ## Return 1 if program is missing.
 ## Return 2 if program is present but too old.
 ## Return 3 for unexpected error (eg failed to parse version).
 check_version ()
 {
-    have_version=`get_version $1`
+    ## Respect eg $AUTOMAKE if it is set, like autoreconf does.
+    uprog=`echo $1 | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+
+    eval uprog=\$${uprog}
+
+    [ x"$uprog" = x ] && uprog=$1
+
+    have_version=`get_version $uprog`
 
     [ x"$have_version" = x ] && return 1
 
@@ -200,6 +210,10 @@ echo "Your system has the required tools, running autoreconf..."
 ## Let autoreconf figure out what, if anything, needs doing.
 autoreconf -i -I m4 || exit $?
 
+## Create a timestamp, so that './autogen.sh; make' doesn't
+## cause 'make' to needlessly run 'autoheader'.
+echo timestamp > src/stamp-h.in || exit
+
 echo "You can now run \`./configure'."
 
 exit 0