]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
maint: install minimal supported autoconf through convenience targets
authorStefano Lattarini <stefano.lattarini@gmail.com>
Tue, 28 May 2013 13:13:46 +0000 (15:13 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Tue, 28 May 2013 13:56:05 +0000 (15:56 +0200)
To make testing of Automake in conjunction with it easier and more
reproducible.  It might be nice to also have convenience targets to
actually automatically run the Automake testsuite with such autoconf
version, but that is left to later patches.

* configure.ac: AC_SUBST the definition of $required_autoconf_version.
* maint.mk (WGET): Move definition earlier.
(gnu-ftp, ac-v, ac-n, ac-p, ac-t, ac-l, ac-d): New auxiliary variables.
(fetch-minimal-autoconf, build-minimal-autoconf): New convenience
targets.
* .gitignore: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
.gitignore
configure.ac
maint.mk

index a32310e708941db5558cb2c888e585bd1a17c811..2cd6bd342d518d99cb7a139d3369454580aedddc 100644 (file)
@@ -1,4 +1,6 @@
 /announcement
+/maintainer/autoconf-*/
+/maintainer/autoconf-*.tar.gz
 /ChangeLog
 /aclocal.m4
 /configure
index 732183f647702cd1b99e821e6ad793a96d6ca5aa..bdc39077c6d0726096fe55ec40f3cfe0fd1ff648 100644 (file)
@@ -139,7 +139,7 @@ AC_CHECK_PROGS([LEX], [lex flex], [false])
 # following tests, but some users were unable to figure out that their
 # installation was broken since --version appeared to work.
 
-required_autoconf_version=2.65
+AC_SUBST([required_autoconf_version], [2.65])
 AC_CACHE_CHECK([whether autoconf is installed], [am_cv_autoconf_installed],
 [if AM_RUN_LOG([$am_AUTOCONF --version]);
 then
index 8b72639814ed376d325988c681c6ded20737e6bf..cb883d73ea37784d63b66a9c43e589d2470623a1 100644 (file)
--- a/maint.mk
+++ b/maint.mk
@@ -18,6 +18,9 @@
 # Avoid CDPATH issues.
 unexport CDPATH
 
+# Program to use to fetch files from the Net.
+WGET = wget
+
 # --------------------------------------------------------- #
 #  Automatic generation of the ChangeLog from git history.  #
 # --------------------------------------------------------- #
@@ -303,9 +306,6 @@ CLEANFILES += announcement
 #  Synchronize third-party files that are committed in our repository.  #
 # --------------------------------------------------------------------- #
 
-# Program to use to fetch files.
-WGET = wget
-
 # Git repositories on Savannah.
 git-sv-host = git.savannah.gnu.org
 
@@ -473,6 +473,50 @@ update-copyright:
          | grep -Ev "^($$excluded_re)$$" \
          | $(update_copyright_env) xargs $(srcdir)/lib/$@
 
+# -------------------------------------------------------------- #
+#  Run the testsuite with the least supported autoconf version.  #
+# -------------------------------------------------------------- #
+
+gnu-ftp = http://ftp.gnu.org/gnu
+
+# Various shorthands: version, name, package name, tarball name,
+# tarball location, installation directory.
+ac-v = $(required_autoconf_version)
+ac-n = autoconf
+ac-p = $(ac-n)-$(ac-v)
+ac-t = $(ac-p).tar.gz
+ac-l = maintainer/$(ac-t)
+ac-d = maintainer/$(ac-p)
+
+fetch-minimal-autoconf: o = $(ac-l)
+fetch-minimal-autoconf:
+       $(AM_V_at)$(MKDIR_P) $(dir $o)
+       $(AM_V_at)rm -f $o $o-t
+       $(AM_V_GEN)$(WGET) -O $o-t $(gnu-ftp)/$(ac-n)/$(ac-t)
+       $(AM_V_at)chmod a-w $o-t && mv -f $o-t $o && ls -l $o
+.PHONY: fetch-minimal-autoconf
+
+build-minimal-autoconf:
+       $(AM_V_GEN):; \
+       test -f $(ac-l) || { \
+         echo "$@: tarball $(ac-l) seems missing." >&2; \
+         echo "$@: have you run '$(MAKE) fetch-minimal-autoconf'?" >&2; \
+         exit 1; \
+       }; \
+         set -x \
+         && $(PERL) $(srcdir)/t/ax/deltree.pl $(ac-d) \
+         && $(MKDIR_P) $(ac-d) \
+         && cd $(ac-d) \
+         && tar xzf '$(CURDIR)/$(ac-l)' \
+         && mv $(ac-p) src \
+         && mkdir build \
+         && cd build \
+         && env CONFIG_SHELL='$(SHELL)' $(SHELL) ../src/configure \
+              --prefix='$(CURDIR)/$(ac-d)' CONFIG_SHELL='$(SHELL)' \
+         && $(MAKE) install
+       $(AM_V_at)echo ' ======' && $(ac-d)/bin/autoconf --version
+.PHONY: build-minimal-autoconf
+
 # --------------------------------------------------------------- #
 #  Testing on real-world packages can help us avoid regressions.  #
 # --------------------------------------------------------------- #