[Python-checkins] devguide: Issue 7997: Explain how to regenerate configure using Autoconf.
ross.lagerwall
python-checkins at python.org
Sun Mar 11 18:24:09 CET 2012
http://hg.python.org/devguide/rev/5432be4d4e1a
changeset: 494:5432be4d4e1a
user: Ross Lagerwall <rosslagerwall at gmail.com>
date: Sun Mar 11 19:22:40 2012 +0200
summary:
Issue 7997: Explain how to regenerate configure using Autoconf.
Based on info written by David Malcolm.
files:
committing.rst | 2 +
patch.rst | 56 ++++++++++++++++++++++++++++++++++++++
2 files changed, 58 insertions(+), 0 deletions(-)
diff --git a/committing.rst b/committing.rst
--- a/committing.rst
+++ b/committing.rst
@@ -32,6 +32,8 @@
* Has the test suite been updated?
* Has ``Misc/NEWS`` been updated?
* Has ``Misc/ACKS`` been updated?
+* Has ``configure`` been regenerated, if necessary?
+* Has ``pyconfig.h.in`` been regenerated, if necessary?
* Has the test suite been run?
Note that the automated patch check can't actually *answer* all of these
diff --git a/patch.rst b/patch.rst
--- a/patch.rst
+++ b/patch.rst
@@ -137,6 +137,62 @@
Also, please make sure your patch is whitespace normalized. ``patchcheck``
will check this for you.
+Autoconf
+''''''''
+
+If a change is made to Python which relies on some POSIX system-specific
+functionality (such as using a new system call), it is necessary to update the
+``configure`` script to test for availability of the functionality.
+
+Python's ``configure`` script is generated from ``configure.in`` using Autoconf.
+Instead of editing ``configure``, edit ``configure.in`` and then run
+``autoreconf`` to regenerate ``configure`` and a number of other files (such as
+``pyconfig.h``.
+
+When submitting a patch with changes made to ``configure.in``, it is preferred
+to leave out the generated files as differences between Autoconf versions
+frequently results in many spurious changes cluttering the patch. Instead,
+remind any potential reviewers on the tracker to run ``autoreconf``.
+
+Note that running ``autoreconf`` is not the same as running ``autoconf``. For
+example, ``autoconf`` by itself will not regenerate ``pyconfig.h.in``.
+``autoreconf`` runs ``autoconf`` and a number of other tools repeatedly as is
+appropriate.
+
+Python's ``configure.in`` script typically requires a specific version of
+Autoconf. At the moment, this reads: ``version_required(2.65)``
+
+If the system copy of Autoconf does not match this version, you will need to
+install your own copy of Autoconf:
+
+1. Go to http://ftp.gnu.org/gnu/autoconf/ and download the version of Autoconf
+ matching the one in ``configure.in``::
+
+ wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.65.tar.bz2
+
+2. Unpack the tarball::
+
+ tar -jxf autoconf-2.65.tar.bz2
+
+3. Build the specified version of Autoconf and install it to a writable location
+ (e.g. within your home directory)::
+
+ pushd autoconf-2.65.tar.bz2
+ ./configure --prefix=$HOME/autoconf-2.65
+ make
+ make install
+
+ This installs a copy of the appropriate version of Autoconf into
+ ~/autoconf-2.65.
+
+4. Go back to the Python source and rerun ``autoreconf``, pointing ``PATH`` at
+ the newly installed copy of Autoconf::
+
+ popd
+ PATH=~/autoconf-2.65/bin:$PATH autoreconf
+
+5. Autoconf should now have updated your local copy of ``configure`` to reflect
+ your changes.
Submitting
----------
--
Repository URL: http://hg.python.org/devguide
More information about the Python-checkins
mailing list