Quantcast

[PATCH] doc: Mention effect of 'autoreconf -fi' on INSTALL

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PATCH] doc: Mention effect of 'autoreconf -fi' on INSTALL

Eric Blake-3
Several projects have a bootstrap script that invokes
'autoreconf -fi' as part of a fresh version control checkout,
in order to avoid storing common files in version control,
while also allowing contributors to rerun bootstrap to pick
up the benefits of any upgrade of one of the autotools.

However, the documentation did not make it obvious that such
a setup will overwrite any customizations to files like
INSTALL, if those files are stored in version control, when
automake still considers that file to be standard based on
AM_INIT_AUTOMAKE settings.  In such a case, a mere
'autoreconf -i' is good for the bootstrap script, while a
separate 'autoreconf -f' is good for picking up on an upgrade
of any autotools.

* bin/autoreconf.in (help): Mention standard files.
* doc/autoconf.texi (autoreconf Invocation): Add more text, including
warning that mixing --force and --install may undo customizations,
and that the set of files impacted is controlled by automake.
Reported by Emil Laine <[hidden email]>
Signed-off-by: Eric Blake <[hidden email]>
---

[I'm obviously digging through my inbox for old emails in preparation
for trying to release 2.70, as Emil first reported this in April 2015]

 bin/autoreconf.in |  4 ++--
 doc/autoconf.texi | 17 ++++++++++++-----
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/bin/autoreconf.in b/bin/autoreconf.in
index da5b3ea..b401d01 100644
--- a/bin/autoreconf.in
+++ b/bin/autoreconf.in
@@ -69,8 +69,8 @@ Operation modes:
   -V, --version            print version number, then exit
   -v, --verbose            verbosely report processing
   -d, --debug              don't remove temporary files
-  -f, --force              consider all files obsolete
-  -i, --install            copy missing auxiliary files
+  -f, --force              consider all generated and standard files obsolete
+  -i, --install            copy missing standard auxiliary files
       --no-recursive       don't rebuild sub-packages
   -s, --symlink            with -i, install symbolic links instead of copies
   -m, --make               when applicable, re-run ./configure && make
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 01a8313..97e0efc 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -1739,14 +1739,21 @@ autoreconf Invocation

 @item --force
 @itemx -f
-Remake even @file{configure} scripts and configuration headers that are
-newer than their input files (@file{configure.ac} and, if present,
-@file{aclocal.m4}).
+Consider all generated and standard auxiliary files to be obsolete.
+This remakes even @file{configure} scripts and configuration headers
+that are newer than their input files (@file{configure.ac} and, if
+present, @file{aclocal.m4}).
+
+If deemed appropriate, this option triggers calls to @samp{automake
+--force-missing}.  Passing both @option{--force} and @option{--install}
+to @command{autorconf} will in turn undo any customizations to standard
+files.  Note that the macro @code{AM_INIT_AUTOMAKE} has some options
+which change the set of files considered to be standard.

 @item --install
 @itemx -i
-Install the missing auxiliary files in the package.  By default, files
-are copied; this can be changed with @option{--symlink}.
+Install any missing standard auxiliary files in the package.  By
+default, files are copied; this can be changed with @option{--symlink}.

 If deemed appropriate, this option triggers calls to
 @samp{automake --add-missing},
--
2.9.3


Loading...