Move gnulib-tool invocation back from autopull.sh to autogen.sh.
* autogen.sh: Revert last change. Improve comments.
* autopull.sh: Only call 'gitsub.sh pull'.
* HACKING: Mention autopull.sh.
diff --git a/.gitignore b/.gitignore
index 7f388a0..74300e4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -250,7 +250,7 @@
/libcharset/build-aux/install-sh
/libcharset/build-aux/mkinstalldirs
-# Other files brought in by autopull.sh:
+# Other files brought in by autogen.sh:
/build-aux/config.guess
/build-aux/config.sub
/libcharset/build-aux/config.guess
diff --git a/ChangeLog b/ChangeLog
index b21cc7b..6b67b98 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2022-07-18 Bruno Haible <bruno@clisp.org>
+
+ Move gnulib-tool invocation back from autopull.sh to autogen.sh.
+ * autogen.sh: Revert last change. Improve comments.
+ * autopull.sh: Only call 'gitsub.sh pull'.
+ * HACKING: Mention autopull.sh.
+
2022-07-17 Bruno Haible <bruno@clisp.org>
Split autogen.sh into autopull.sh and autogen.sh.
diff --git a/HACKING b/HACKING
index 933cc3c..fe28688 100644
--- a/HACKING
+++ b/HACKING
@@ -55,7 +55,7 @@
Then you can proceed with "./configure" as usual.
Each time you want to update the source, do not only "git pull". Instead do
- git pull && ./gitsub.sh pull
+ git pull && ./autopull.sh
./autogen.sh
diff --git a/autogen.sh b/autogen.sh
index 90fc9f9..dd72d83 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -23,8 +23,69 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
-# Prerequisite (if not used from a released tarball): ./autopull.sh
-# Usage: ./autogen.sh
+# Prerequisite (if not used from a released tarball): either
+# - the GNULIB_SRCDIR environment variable pointing to a gnulib checkout, or
+# - a preceding invocation of './autopull.sh'.
+#
+# Usage: ./autogen.sh [--skip-gnulib]
+#
+# Options:
+# --skip-gnulib Avoid fetching files from Gnulib.
+# This option is useful
+# - when you are working from a released tarball (possibly
+# with modifications), or
+# - as a speedup, if the set of gnulib modules did not
+# change since the last time you ran this script.
+
+skip_gnulib=false
+while :; do
+ case "$1" in
+ --skip-gnulib) skip_gnulib=true; shift;;
+ *) break ;;
+ esac
+done
+
+# ========== Copy files from gnulib, automake, or the internet. ==========
+
+if test $skip_gnulib = false; then
+ if test -n "$GNULIB_SRCDIR"; then
+ test -d "$GNULIB_SRCDIR" || {
+ echo "*** GNULIB_SRCDIR is set but does not point to an existing directory." 1>&2
+ exit 1
+ }
+ else
+ GNULIB_SRCDIR=`pwd`/gnulib
+ test -d "$GNULIB_SRCDIR" || {
+ echo "*** Subdirectory 'gnulib' does not yet exist. Use './gitsub.sh pull' to create it, or set the environment variable GNULIB_SRCDIR." 1>&2
+ exit 1
+ }
+ fi
+ # Now it should contain a gnulib-tool.
+ GNULIB_TOOL="$GNULIB_SRCDIR/gnulib-tool"
+ test -f "$GNULIB_TOOL" || {
+ echo "*** gnulib-tool not found." 1>&2
+ exit 1
+ }
+ for file in build-aux/compile build-aux/ar-lib; do
+ $GNULIB_TOOL --copy-file $file || exit $?
+ chmod a+x $file || exit $?
+ done
+ make -f Makefile.devel \
+ gnulib-clean srclib/Makefile.gnulib gnulib-imported-files srclib/Makefile.in \
+ GNULIB_TOOL="$GNULIB_TOOL"
+fi
+
+# Copy files into the libcharset subpackage, so that libcharset/autogen.sh
+# does not need to invoke gnulib-tool nor automake.
+for file in INSTALL.generic; do
+ cp -p $file libcharset/$file || exit $?
+done
+for file in config.guess config.libpath config.sub install-sh libtool-reloc mkinstalldirs; do
+ cp -p build-aux/$file libcharset/build-aux/$file || exit $?
+done
+for file in codeset.m4 fcntl-o.m4 lib-ld.m4 relocatable.m4 relocatable-lib.m4 visibility.m4; do
+ cp -p srcm4/$file libcharset/m4/$file || exit $?
+done
# ========== Generate files. ==========
diff --git a/autopull.sh b/autopull.sh
index a0016a7..0d08d35 100755
--- a/autopull.sh
+++ b/autopull.sh
@@ -1,12 +1,8 @@
#!/bin/sh
# Convenience script for fetching auxiliary files that are omitted from
# the version control repository of this package.
-#
-# This script requires either
-# - the GNULIB_SRCDIR environment variable pointing to a gnulib checkout, or
-# - a preceding invocation of './gitsub.sh pull'.
-# Copyright (C) 2003-2012, 2016, 2018-2022 Free Software Foundation, Inc.
+# Copyright (C) 2022 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,46 +19,6 @@
# Usage: ./autopull.sh
-./gitsub.sh pull
-
-# ========== Copy files from gnulib, automake, or the internet. ==========
-
-if test -n "$GNULIB_SRCDIR"; then
- test -d "$GNULIB_SRCDIR" || {
- echo "*** GNULIB_SRCDIR is set but does not point to an existing directory." 1>&2
- exit 1
- }
-else
- GNULIB_SRCDIR=`pwd`/gnulib
- test -d "$GNULIB_SRCDIR" || {
- echo "*** Subdirectory 'gnulib' does not yet exist. Use './gitsub.sh pull' to create it, or set the environment variable GNULIB_SRCDIR." 1>&2
- exit 1
- }
-fi
-# Now it should contain a gnulib-tool.
-GNULIB_TOOL="$GNULIB_SRCDIR/gnulib-tool"
-test -f "$GNULIB_TOOL" || {
- echo "*** gnulib-tool not found." 1>&2
- exit 1
-}
-for file in build-aux/compile build-aux/ar-lib; do
- $GNULIB_TOOL --copy-file $file || exit $?
- chmod a+x $file || exit $?
-done
-make -f Makefile.devel \
- gnulib-clean srclib/Makefile.gnulib gnulib-imported-files srclib/Makefile.in \
- GNULIB_TOOL="$GNULIB_TOOL"
-
-# Copy files into the libcharset subpackage, so that libcharset/autogen.sh
-# does not need to invoke gnulib-tool nor automake.
-for file in INSTALL.generic; do
- cp -p $file libcharset/$file || exit $?
-done
-for file in config.guess config.libpath config.sub install-sh libtool-reloc mkinstalldirs; do
- cp -p build-aux/$file libcharset/build-aux/$file || exit $?
-done
-for file in codeset.m4 fcntl-o.m4 lib-ld.m4 relocatable.m4 relocatable-lib.m4 visibility.m4; do
- cp -p srcm4/$file libcharset/m4/$file || exit $?
-done
+./gitsub.sh pull || exit 1
echo "$0: done. Now you can run './autogen.sh'."