From dd78a5e81de220e7030c5c6be4162bab2f0cf4c7 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Tue, 28 May 2013 15:13:46 +0200 Subject: [PATCH] maint: install minimal supported autoconf through convenience targets 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 --- .gitignore | 2 ++ configure.ac | 2 +- maint.mk | 50 +++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index a32310e70..2cd6bd342 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ /announcement +/maintainer/autoconf-*/ +/maintainer/autoconf-*.tar.gz /ChangeLog /aclocal.m4 /configure diff --git a/configure.ac b/configure.ac index 732183f64..bdc39077c 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/maint.mk b/maint.mk index 8b7263981..cb883d73e 100644 --- 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. # # --------------------------------------------------------------- # -- 2.47.2