Subject: Rename "configure.in" to "configure.ac"
From: Paul Eggert <[email-masked]>
To: [email-masked]
Date: Fri, 01 Jun 2012 12:26:11 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Tags: patch

Here's a patch I'd like to install into the trunk
after a bit more testing, to future-proof Emacs
against the next version of Autoconf.

=== modified file 'ChangeLog'
--- ChangeLog	2012-06-01 18:26:21 +0000
+++ ChangeLog	2012-06-01 19:23:46 +0000
@@ -1,5 +1,15 @@
 2012-06-01  Paul Eggert  <[email-masked]>
 
+	Rename configure.in to configure.ac.
+	The name 'configure.in' has been obsolescent for quite some time,
+	and the next release of Autoconf will generate warnings for it.
+	* configure.ac: Rename from configure.in.
+	* INSTALL, INSTALL.BZR, README, make-dist:
+	* Makefile.in (AUTOCONF_INPUTS):
+	* autogen.sh (autoconf_min):
+	* autogen/update_autogen (sources):
+	Adjust to reflect new name.
+
 	Remove --disable-maintainer-mode option from 'configure'.  (Bug#11555)
 	It is confusingly named and rarely useful.  See, for example,
 	<http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00089.html>.

=== modified file 'INSTALL'
--- INSTALL	2012-04-17 21:40:07 +0000
+++ INSTALL	2012-06-01 19:23:46 +0000
@@ -676,9 +676,9 @@
 corresponding `Makefile.in' files.  This isn't so hard, just a matter
 of editing in appropriate substitutions for the @...@ constructs.
 
-The `configure' script is built from `configure.in' by the `autoconf'
+The `configure' script is built from `configure.ac' by the `autoconf'
 program.  You need at least the version of autoconf specified in the
-AC_PREREQ(...) command to rebuild `configure' from `configure.in'.
+AC_PREREQ(...) command to rebuild `configure' from `configure.ac'.
 
 BUILDING GNU EMACS BY HAND

=== modified file 'INSTALL.BZR'
--- INSTALL.BZR	2012-06-01 18:26:21 +0000
+++ INSTALL.BZR	2012-06-01 19:23:46 +0000
@@ -8,7 +8,7 @@
 when building from a release.  You will need:
 
 autoconf  - at least the version specified near the start of
-  configure.in (in the AC_PREREQ command).
+  configure.ac (in the AC_PREREQ command).
 automake  - we recommend at least version 1.11.
 makeinfo  - not strictly necessary, but highly recommended, so that
   you can build the manuals.

=== modified file 'Makefile.in'
--- Makefile.in	2012-06-01 18:26:21 +0000
+++ Makefile.in	2012-06-01 19:23:46 +0000
@@ -277,7 +277,7 @@
 removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g'
 
 # Generate epaths.h from epaths.in.  This target is invoked by `configure'.
-# See comments in configure.in for why it is done this way, as opposed
+# See comments in configure.ac for why it is done this way, as opposed
 # to just letting configure generate epaths.h from epaths.in in a
 # similar way to how Makefile is made from Makefile.in.
 epaths-force: FRC
@@ -358,7 +358,7 @@
 	    ./configure $(CONFIGURE_FLAGS); \
 	fi
 
-AUTOCONF_INPUTS = $(srcdir)/configure.in $(srcdir)/aclocal.m4
+AUTOCONF_INPUTS = $(srcdir)/configure.ac $(srcdir)/aclocal.m4
 
 $(srcdir)/configure: $(AUTOCONF_INPUTS)
 	cd ${srcdir} && autoconf

=== modified file 'README'
--- README	2012-05-27 01:06:44 +0000
+++ README	2012-06-01 19:23:46 +0000
@@ -37,12 +37,12 @@
 process of building and installing Emacs.  See INSTALL for more
 detailed information.
 
-The file `configure.in' is the input used by the autoconf program to
+The file `configure.ac' is the input used by the autoconf program to
 construct the `configure' script.  Since Emacs has some configuration
 requirements that autoconf can't meet directly, and for historical
-reasons, `configure.in' uses an unholy marriage of custom-baked
+reasons, `configure.ac' uses an unholy marriage of custom-baked
 configuration code and autoconf macros.  If you want to rebuild
-`configure' from `configure.in', you will need to install a recent
+`configure' from `configure.ac', you will need to install a recent
 version of autoconf and GNU m4.
 
 The file `Makefile.in' is a template used by `configure' to create

=== modified file 'admin/ChangeLog'
--- admin/ChangeLog	2012-06-01 18:26:21 +0000
+++ admin/ChangeLog	2012-06-01 19:23:46 +0000
@@ -1,5 +1,10 @@
 2012-06-01  Paul Eggert  <[email-masked]>
 
+	Rename configure.in to configure.ac.
+	* admin.el (set-version):
+	* quick-install-emacs (VERSION):
+	Get version number from configure.ac, not configure.in.
+
 	Remove --disable-maintainer-mode option from 'configure'.  (Bug#11555)
 	* make-tarball.txt: Don't worry about maintainer mode.

=== modified file 'admin/admin.el'
--- admin/admin.el	2012-02-11 22:16:10 +0000
+++ admin/admin.el	2012-06-01 19:23:46 +0000
@@ -62,7 +62,7 @@
   (set-version-in-file root "README" version
 		       (rx (and "version" (1+ space)
 				(submatch (1+ (in "0-9."))))))
-  (set-version-in-file root "configure.in" version
+  (set-version-in-file root "configure.ac" version
 		       (rx (and "AC_INIT" (1+ (not (in ?,)))
                                 ?, (0+ space)
                                 (submatch (1+ (in "0-9."))))))

=== modified file 'admin/quick-install-emacs'
--- admin/quick-install-emacs	2012-01-19 07:21:25 +0000
+++ admin/quick-install-emacs	2012-06-01 19:23:46 +0000
@@ -171,9 +171,9 @@
 test x"$ARCH" = x && { ARCH="`get_config_var host`" || exit 4 ; }
 
 VERSION=`
-  sed -n 's/^AC_INIT(emacs,[	 ]*\([^	 )]*\).*/\1/p' <$SRC/configure.in
+  sed -n 's/^AC_INIT(emacs,[	 ]*\([^	 )]*\).*/\1/p' <$SRC/configure.ac
 ` || exit 4
-test -n "$VERSION" || { echo >&2 "$me: no version in configure.in"; exit 4; }
+test -n "$VERSION" || { echo >&2 "$me: no version in configure.ac"; exit 4; }
 
 DST_SHARE="$prefix/share/emacs/$VERSION"
 DST_BIN="$prefix/bin"

=== modified file 'autogen.sh'
--- autogen.sh	2012-01-05 09:46:05 +0000
+++ autogen.sh	2012-06-01 19:23:46 +0000
@@ -34,7 +34,7 @@
 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

=== modified file 'autogen/copy_autogen'
--- autogen/copy_autogen	2011-07-29 21:59:44 +0000
+++ autogen/copy_autogen	2012-06-01 19:23:46 +0000
@@ -3,7 +3,7 @@
 ## Helper script for those building Emacs from bzr without autoconf etc.
 ## This installs some pre-generated versions of the automatically
 ## generated files.  It is highly recommended to install the necessary
-## tools instead of using this.  Note that if eg configure.in
+## tools instead of using this.  Note that if eg configure.ac
 ## is updated, the next time you run make it will attempt to
 ## regenerate configure and will fail if you do not have the required
 ## tools.  You will have to run this script again.

=== modified file 'autogen/update_autogen'
--- autogen/update_autogen	2012-01-05 09:46:05 +0000
+++ autogen/update_autogen	2012-06-01 19:23:46 +0000
@@ -79,7 +79,7 @@
 ## Parameters.
 ldefs_in=lisp/loaddefs.el
 ldefs_out=lisp/ldefs-boot.el
-sources="configure.in lib/Makefile.am"
+sources="configure.ac lib/Makefile.am"
 genfiles="
   configure aclocal.m4 src/config.in lib/Makefile.in
   build-aux/compile build-aux/config.guess build-aux/config.sub

=== renamed file 'configure.in' => 'configure.ac'
--- configure.in	2012-06-01 18:26:21 +0000
+++ configure.ac	2012-06-01 19:23:46 +0000
@@ -3750,5 +3750,3 @@
 ])
 
 AC_OUTPUT
-
-dnl configure.in ends here

=== modified file 'doc/misc/ChangeLog'
--- doc/misc/ChangeLog	2012-05-29 05:19:41 +0000
+++ doc/misc/ChangeLog	2012-06-01 19:23:46 +0000
@@ -1,3 +1,8 @@
+2012-06-01  Paul Eggert  <[email-masked]>
+
+	* ede.texi (Compiler and Linker objects, ede-proj-project)
+	(ede-step-project): Prefer the name configure.ac to configure.in.
+
 2012-05-29  Katsumi Yamaoka  <[email-masked]>
 
 	* Makefile.in (echo-info): Don't try to install info files named

=== modified file 'doc/misc/ede.texi'
--- doc/misc/ede.texi	2012-01-19 07:21:25 +0000
+++ doc/misc/ede.texi	2012-06-01 19:23:46 +0000
@@ -790,7 +790,7 @@
 
 Compiler instantiations must also insert variables specifying the
 compiler it plans to use, in addition to creating Automake settings for
-@file{configure.in} when appropriate.
+@file{configure.ac} when appropriate.
 
 Compiler objects are stored in the target objects as a list of
 symbols, where the symbols value is the object.  This enables the
@@ -1557,7 +1557,7 @@
 
 @deffn Method ede-proj-setup-buildenvironment :AFTER this &optional force
 Setup the build environment for project @var{THIS}.
-Handles the Makefile, or a Makefile.am configure.in combination.
+Handles the Makefile, or a Makefile.am configure.ac combination.
 Optional argument @var{FORCE} will force items to be regenerated.
 @end deffn
 
@@ -1567,7 +1567,7 @@
 @end deffn
 
 @deffn Method ede-proj-configure-synchronize :AFTER this
-Synchronize what we know about project @var{THIS} into configure.in.
+Synchronize what we know about project @var{THIS} into configure.ac.
 @end deffn
 
 @deffn Method ede-proj-makefile-insert-variables-new :AFTER this
@@ -1603,7 +1603,7 @@
 @end deffn
 
 @deffn Method ede-proj-configure-file :AFTER this
-The configure.in script used by project @var{THIS}.
+The configure.ac script used by project @var{THIS}.
 @end deffn
 
 @deffn Method ede-commit-project :AFTER proj
@@ -1767,7 +1767,7 @@
 
 @deffn Method ede-proj-setup-buildenvironment :AFTER this &optional force
 Setup the build environment for project @var{THIS}.
-Handles the Makefile, or a Makefile.am configure.in combination.
+Handles the Makefile, or a Makefile.am configure.ac combination.
 Optional argument @var{FORCE} will force items to be regenerated.
 @end deffn

=== modified file 'etc/future-bug'
--- etc/future-bug	2007-02-28 04:12:39 +0000
+++ etc/future-bug	2012-06-01 19:23:46 +0000
@@ -30,7 +30,7 @@

 P.S. You'll be pleased to know that since (time-forward N) still works
-     for N >= 0, we've used it to pre-emptively update configure.in.
+     for N >= 0, we've used it to pre-emptively update configure.ac.
      Emacs now configures and builds on every platform that will ever
      be made.  It wasn't easy, but at least that's one problem out of
      the way for good.  If you'd like the patch, just ask.

=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog	2012-06-01 13:44:48 +0000
+++ lisp/ChangeLog	2012-06-01 19:23:46 +0000
@@ -1,3 +1,9 @@
+2012-06-01  Paul Eggert  <[email-masked]>
+
+	* emacs-lisp/authors.el (authors-canonical-file-name):
+	* progmodes/autoconf.el (autoconf-mode):
+	Prefer configure.ac to configure.in.
+
 2012-06-01  Martin Rudalics  <[email-masked]>
 
 	* simple.el (choose-completion): Remove now obsolete binding for

=== modified file 'lisp/cedet/ChangeLog'
--- lisp/cedet/ChangeLog	2012-03-12 20:51:17 +0000
+++ lisp/cedet/ChangeLog	2012-06-01 19:23:46 +0000
@@ -1,3 +1,11 @@
+2012-06-01  Paul Eggert  <[email-masked]>
+
+	Rename configure.in to configure.ac.
+	* ede/autoconf-edit.el (autoconf-find-query-for-program)
+	(autoconf-new-program):
+	* ede/emacs.el (ede-emacs-version):
+	* ede/proj.el (ede-proj-setup-buildenvironment):
+	Prefer configure.ac to configure.in.
 2012-03-12  David Engster  <[email-masked]>
 
 	* semantic/db-find.el

=== modified file 'lisp/cedet/ede/autoconf-edit.el'
--- lisp/cedet/ede/autoconf-edit.el	2012-01-19 07:21:25 +0000
+++ lisp/cedet/ede/autoconf-edit.el	2012-06-01 19:23:46 +0000
@@ -31,7 +31,7 @@
 (declare-function ede-srecode-insert "ede/srecode")
 
 (defun autoconf-new-program (rootdir program testfile)
-  "Initialize a new configure.in in ROOTDIR for PROGRAM using TESTFILE.
+  "Initialize a new configure.ac in ROOTDIR for PROGRAM using TESTFILE.
 ROOTDIR is the root directory of a given autoconf controlled project.
 PROGRAM is the program to be configured.
 TESTFILE is the file used with AC_INIT.
@@ -325,7 +325,7 @@
   "Position the cursor where PROG is queried.
 PROG is the VARIABLE to use in autoconf to identify the program.
 PROG excludes the _PROG suffix.  Thus if PROG were EMACS, then the
-variable in configure.in would be EMACS_PROG."
+variable in configure.ac would be EMACS_PROG."
   (let ((op (point))
 	(found t)
 	(builtin (assoc prog autoconf-program-builtin)))

=== modified file 'lisp/cedet/ede/emacs.el'
--- lisp/cedet/ede/emacs.el	2012-01-19 07:21:25 +0000
+++ lisp/cedet/ede/emacs.el	2012-06-01 19:23:46 +0000
@@ -75,12 +75,15 @@
 Return a tuple of ( EMACSNAME . VERSION )."
   (let ((buff (get-buffer-create " *emacs-query*"))
 	(emacs "Emacs")
-	(ver ""))
+	(ver "")
+	(configure_ac "configure.ac"))
     (with-current-buffer buff
       (erase-buffer)
       (setq default-directory (file-name-as-directory dir))
       ;(call-process "egrep" nil buff nil "-n" "-e" "^version=" "Makefile")
-      (call-process "egrep" nil buff nil "-n" "-e" "AC_INIT" "configure.in")
+      (or (file-exists-p configure_ac)
+	  (setq configure_ac "configure.in"))
+      (call-process "egrep" nil buff nil "-n" "-e" "AC_INIT" configure_ac)
       (goto-char (point-min))
       ;(re-search-forward "version=\\([0-9.]+\\)")
       (cond
@@ -100,7 +103,7 @@
 
        ;; Vaguely recent version of GNU Emacs?
        (t
-	(insert-file-contents "configure.in")
+	(insert-file-contents configure_ac)
 	(goto-char (point-min))
 	(re-search-forward "AC_INIT(emacs,\\s-*\\([0-9.]+\\)\\s-*)")
 	(setq ver (match-string 1))

=== modified file 'lisp/cedet/ede/proj.el'
--- lisp/cedet/ede/proj.el	2012-01-19 07:21:25 +0000
+++ lisp/cedet/ede/proj.el	2012-06-01 19:23:46 +0000
@@ -642,7 +642,7 @@
 (defmethod ede-proj-setup-buildenvironment ((this ede-proj-project)
 					    &optional force)
   "Setup the build environment for project THIS.
-Handles the Makefile, or a Makefile.am configure.in combination.
+Handles the Makefile, or a Makefile.am configure.ac combination.
 Optional argument FORCE will force items to be regenerated."
   (if (not force)
       (ede-proj-makefile-create-maybe this (ede-proj-dist-makefile this))

=== modified file 'lisp/emacs-lisp/authors.el'
--- lisp/emacs-lisp/authors.el	2012-04-19 17:20:26 +0000
+++ lisp/emacs-lisp/authors.el	2012-06-01 19:23:46 +0000
@@ -701,7 +701,7 @@
 the file name.  Only uses the LOG-FILE position POS and associated AUTHOR
 to print a message if FILE is not found."
   ;; FILE should be re-checked in every different directory associated
-  ;; with a LOG-FILE.  Eg configure.in from src/ChangeLog is not the
+  ;; with a LOG-FILE.  Eg configure.ac from src/ChangeLog is not the
   ;; same as that from top-level/ChangeLog.
   (let* ((fullname (expand-file-name file (file-name-directory log-file)))
 	 (entry (assoc fullname authors-checked-files-alist))

=== modified file 'lisp/info-look.el'
--- lisp/info-look.el	2012-01-19 07:21:25 +0000
+++ lisp/info-look.el	2012-06-01 19:23:46 +0000
@@ -732,7 +732,7 @@
  :parse-rule "\\$[^({]\\|\\.[_A-Z]*\\|[_a-zA-Z0-9-]+\\|##\\|\\+="
  :doc-spec   '(
                ;; "(automake)Macro Index" is autoconf macros used in
-               ;; configure.in, not Makefile.am, so don't have that here.
+               ;; configure.ac, not Makefile.am, so don't have that here.
                ("(automake)Variable Index" nil "^[ \t]*`" "'")
                ;; In automake 1.4 macros and variables were a combined node.
                ("(automake)Macro and Variable Index" nil "^[ \t]*`" "'")

=== modified file 'lisp/progmodes/autoconf.el'
--- lisp/progmodes/autoconf.el	2012-01-19 07:21:25 +0000
+++ lisp/progmodes/autoconf.el	2012-06-01 19:23:46 +0000
@@ -1,4 +1,4 @@
-;;; autoconf.el --- mode for editing Autoconf configure.in files
+;;; autoconf.el --- mode for editing Autoconf configure.ac files
 
 ;; Copyright (C) 2000-2012  Free Software Foundation, Inc.
 
@@ -23,15 +23,15 @@
 ;;; Commentary:
 
 ;; Provides fairly minimal font-lock, imenu and indentation support
-;; for editing configure.in files.  Only Autoconf syntax is processed.
+;; for editing configure.ac files.  Only Autoconf syntax is processed.
 ;; There is no attempt to deal with shell text -- probably that will
 ;; always lose.
 
-;; This is specialized for configure.in files.  It doesn't inherit the
+;; This is specialized for configure.ac files.  It doesn't inherit the
 ;; general M4 stuff from M4 mode.
 
 ;; There is also an autoconf-mode.el in existence.  That appears to be
-;; for editing the Autoconf M4 source, rather than configure.in files.
+;; for editing the Autoconf M4 source, rather than configure.ac files.
 
 ;;; Code:
 
@@ -49,7 +49,7 @@
   `(("\\_<A[CHMS]_\\sw+" . font-lock-keyword-face)
     (,autoconf-definition-regexp
      3 font-lock-function-name-face)
-    ;; Are any other M4 keywords really appropriate for configure.in,
+    ;; Are any other M4 keywords really appropriate for configure.ac,
     ;; given that we do `dnl'?
     ("changequote" . font-lock-keyword-face)))
 
@@ -78,7 +78,7 @@
 
 ;;;###autoload
 (define-derived-mode autoconf-mode prog-mode "Autoconf"
-  "Major mode for editing Autoconf configure.in files."
+  "Major mode for editing Autoconf configure.ac files."
   (set (make-local-variable 'parens-require-spaces) nil) ; for M4 arg lists
   (set (make-local-variable 'defun-prompt-regexp)
        "^[ \t]*A[CM]_\\(\\sw\\|\\s_\\)+")

=== modified file 'make-dist'
--- make-dist	2012-05-22 16:20:27 +0000
+++ make-dist	2012-06-01 19:23:46 +0000
@@ -147,7 +147,7 @@
 
 ### Find out which version of Emacs this is.
 version=`
-  sed -n 's/^AC_INIT(emacs,[	 ]*\([^	 )]*\).*/\1/p' <configure.in
+  sed -n 's/^AC_INIT(emacs,[	 ]*\([^	 )]*\).*/\1/p' <configure.ac
 ` || version=
 if [ ! "${version}" ]; then
   echo "${progname}: can't find current Emacs version in \`./src/emacs.c'" >&2
@@ -230,16 +230,16 @@
 
 if [ $update = yes ]; then
 
-  ## Make sure configure is newer than configure.in.
-  if [ "x`ls -t configure configure.in | sed q`" != "xconfigure" ]; then
-    echo "\`./configure.in' is newer than \`./configure'" >&2
+  ## Make sure configure is newer than configure.ac.
+  if [ "x`ls -t configure configure.ac | sed q`" != "xconfigure" ]; then
+    echo "\`./configure.ac' is newer than \`./configure'" >&2
     echo "Running autoconf" >&2
     autoconf || { x=$?; echo Autoconf FAILED! >&2; exit $x; }
   fi
 
-  ## Make sure src/stamp-h.in is newer than configure.in.
-  if [ "x`ls -t src/stamp-h.in configure.in | sed q`" != "xsrc/stamp-h.in" ]; then
-    echo "\`./configure.in' is newer than \`./src/stamp-h.in'" >&2
+  ## Make sure src/stamp-h.in is newer than configure.ac.
+  if [ "x`ls -t src/stamp-h.in configure.ac | sed q`" != "xsrc/stamp-h.in" ]; then
+    echo "\`./configure.ac' is newer than \`./src/stamp-h.in'" >&2
     echo "Running autoheader" >&2
     autoheader || { x=$?; echo Autoheader FAILED! >&2; exit $x; }
     rm -f src/stamp-h.in
@@ -284,7 +284,7 @@
 ### README while the rest of the tar file is still unpacking.  Whoopee.
 echo "Making links to top-level files"
 ln INSTALL README BUGS ${tempdir}
-ln ChangeLog Makefile.in configure configure.in ${tempdir}
+ln ChangeLog Makefile.in configure configure.ac ${tempdir}
 ln config.bat make-dist .dir-locals.el ${tempdir}
 ln aclocal.m4 ${tempdir}

=== modified file 'nt/config.nt'
--- nt/config.nt	2012-05-28 17:00:18 +0000
+++ nt/config.nt	2012-06-01 19:23:46 +0000
@@ -119,7 +119,7 @@
 #undef HESIOD
 
 /* Some things figured out by the configure script, grouped as they are in
-   configure.in.  */
+   configure.ac.  */
 #ifndef _ALL_SOURCE  /* suppress warning if this is pre-defined */
 #undef _ALL_SOURCE
 #endif

=== modified file 'src/s/template.h'
--- src/s/template.h	2012-01-19 07:21:25 +0000
+++ src/s/template.h	2012-06-01 19:23:46 +0000
@@ -100,14 +100,13 @@
 /* ============================================================ */
 
 /* After adding support for a new system, modify the large case
-   statement in configure.in to recognize reasonable
+   statement in configure.ac to recognize reasonable
    configuration names, and add a description of the system to
    `etc/MACHINES'.
 
-   Check for any tests of $opsys in configure.in, and add an entry
+   Check for any tests of $opsys in configure.ac, and add an entry
    for the new system if needed.
 
    If you've just fixed a problem in an existing configuration file,
    you should also check `etc/MACHINES' to make sure its descriptions
    of known problems in that configuration should be updated.  */
-