[FYI] {maint} build: respect silent rules in generation of amhello example tarball
* Makefile.am ($(srcdir)/doc/amhello-1.0.tar.gz): Here. Signed-off-by: Stefano Lattarini stefano.lattar...@gmail.com --- Makefile.am | 22 -- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/Makefile.am b/Makefile.am index b6a5bbd..030c2eb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -620,7 +620,7 @@ dist_doc_DATA = $(srcdir)/doc/amhello-1.0.tar.gz # aclocal-$(APIVERSION) and automake-$(APIVERSION) are generated by # configure in 't/wrap'. $(srcdir)/doc/amhello-1.0.tar.gz: $(amhello_sources) $(srcdir)/configure.ac - $(AM_V_GEN): \ + $(AM_V_GEN)tmp=amhello-output.tmp \ PATH=$(abs_top_builddir)/t/wrap$(PATH_SEPARATOR)$$PATH \ export PATH \ $(am__cd) $(srcdir)/doc/amhello \ @@ -631,11 +631,21 @@ $(srcdir)/doc/amhello-1.0.tar.gz: $(amhello_sources) $(srcdir)/configure.ac AUTORECONF='$(am_AUTORECONF)' export AUTORECONF \ AUTOHEADER='$(am_AUTOHEADER)' export AUTOHEADER \ AUTOUPDATE='$(am_AUTOUPDATE)' export AUTOUPDATE \ - $(am_AUTORECONF) -vfi \ - ./configure \ - $(MAKE) $(AM_MAKEFLAGS) distcheck \ - $(MAKE) $(AM_MAKEFLAGS) distclean \ - rm -rf $(amhello_configury) \ + ( \ + { $(AM_V_P) || exec 52 $$tmp 21; } \ + $(am_AUTORECONF) -vfi \ + ./configure \ + $(MAKE) $(AM_MAKEFLAGS) distcheck \ + $(MAKE) $(AM_MAKEFLAGS) distclean \ + || { \ + if $(AM_V_P); then :; else \ + echo $@: recipe failed. 5; \ + echo See file '`pwd`/$$tmp' for details 5; \ + fi; \ + exit 1; \ + } \ + ) \ + rm -rf $(amhello_configury) $$tmp \ mv -f amhello-1.0.tar.gz .. -- 1.8.1.rc3.27.g3b73c7d
[FYI] {maint} texi: warn against suffix-less input files
The warning being in the 'obsolete' category. This is mostly to ease transition to Automake-NG (see commit v1.12.1-392-ga0c7b6a), and to discourage use of seldom-tested setups. * automake.in (scan_texinfo_file): Warn against '@setfilename' directives that specify suffix-less output info files. * t/txinfo-without-info-suffix.sh: Adjust and enhance. * t/txinfo-makeinfo-error-no-clobber.sh: No longer use suffix-less info files in '@setfilename' directives. * t/primary-prefix-valid-couples.sh: Likewise. * t/txinfo-setfilename-repeated.sh: Likewise. * t/txinfo-vtexi2.sh : Likewise. * t/mdate2.sh: Likewise. * NEWS: Update. Signed-off-by: Stefano Lattarini stefano.lattar...@gmail.com --- NEWS | 6 ++ automake.in | 9 ++--- t/mdate2.sh | 2 +- t/primary-prefix-valid-couples.sh | 2 +- t/txinfo-makeinfo-error-no-clobber.sh | 20 ++-- t/txinfo-setfilename-repeated.sh | 6 -- t/txinfo-vtexi2.sh| 2 +- t/txinfo-without-info-suffix.sh | 6 +- 8 files changed, 34 insertions(+), 19 deletions(-) diff --git a/NEWS b/NEWS index c5b6514..0e5455b 100644 --- a/NEWS +++ b/NEWS @@ -49,6 +49,12 @@ New in 1.13.2: should take precedence over the same-named automake-provided macro (defined in '/usr/local/share/aclocal-1.14/vala.m4'). +* Obsolescent features: + + - Use of suffix-less info files (that can be specified through the +'@setfilename' macro in Texinfo input files) is discouraged, and +its use will raise warnings in the 'obsolete' category. + New in 1.13.1: diff --git a/automake.in b/automake.in index 0764258..2f60c18 100644 --- a/automake.in +++ b/automake.in @@ -2993,9 +2993,12 @@ sub scan_texinfo_file ($) next if $outfile; $outfile = $1; - # TODO: In Automake 1.14 (or even 1.13.2), start warning against - # TODO: suffixes != .info, to ease transition to Automake-NG. - if ($outfile =~ /\.([^.]+)$/ $1 ne 'info') + if (index ($outfile, '.') 0) + { + msg 'obsolete', $filename:$., + use of suffix-less info files is discouraged + } + elsif ($outfile !~ /\.info$/) { error ($filename:$., output '$outfile' has unrecognized extension); diff --git a/t/mdate2.sh b/t/mdate2.sh index 79e414b..fa41864 100755 --- a/t/mdate2.sh +++ b/t/mdate2.sh @@ -29,7 +29,7 @@ END # Required when using Texinfo. : texinfo.tex : mdate-sh -echo '@setfilename textutils' textutils.texi +echo '@setfilename textutils.info' textutils.texi # Use ././ to confuse Automake into thinking this is a subdir build. $ACLOCAL diff --git a/t/primary-prefix-valid-couples.sh b/t/primary-prefix-valid-couples.sh index 502967f..17a2a9b 100755 --- a/t/primary-prefix-valid-couples.sh +++ b/t/primary-prefix-valid-couples.sh @@ -38,7 +38,7 @@ AC_DEFUN([AC_PROG_LIBTOOL], END # Other required files. -echo '@setfilename foo' foo.texi +echo '@setfilename foo.info' foo.texi : texinfo.tex : py-compile : ar-lib diff --git a/t/txinfo-makeinfo-error-no-clobber.sh b/t/txinfo-makeinfo-error-no-clobber.sh index cddbc13..f4b7d01 100755 --- a/t/txinfo-makeinfo-error-no-clobber.sh +++ b/t/txinfo-makeinfo-error-no-clobber.sh @@ -29,7 +29,7 @@ mkdir sub cat main.texi 'END' \input texinfo -@setfilename main +@setfilename main.info @settitle main @node Top Hello walls. @@ -46,15 +46,15 @@ $AUTOCONF $MAKE # Feign more info files. -: main-1 -: sub/main-1 +: main.info-1 +: sub/main.info-1 # Break main.texi. $sleep cp main.texi main.old cat main.texi 'END' \input texinfo -@setfilename main +@setfilename main.info @settitle main @node Top @unknown_macro{Hello walls.} @@ -63,16 +63,16 @@ END # makeinfo will bail out, but we should conserve the old info files. $MAKE exit 1 -test -f main -test -f main-1 +test -f main.info +test -f main.info-1 # Restore main.texi, and break sub/main.texi. cp main.texi sub/main.texi mv main.old main.texi $MAKE exit 1 -test -f main -test ! -e main-1 -test -f sub/main -test -f sub/main-1 +test -f main.info +test ! -e main.info-1 +test -f sub/main.info +test -f sub/main.info-1 : diff --git a/t/txinfo-setfilename-repeated.sh b/t/txinfo-setfilename-repeated.sh index 1731dff..d06b9b9 100755 --- a/t/txinfo-setfilename-repeated.sh +++ b/t/txinfo-setfilename-repeated.sh @@ -24,7 +24,7 @@ info_TEXINFOS = texinfo.texi END cat texinfo.texi 'END' -@setfilename texinfo +@setfilename texinfo.info ... @verbatim @setfilename example.info @@ -36,4 +36,6 @@ $ACLOCAL $AUTOMAKE --add-missing grep 'example' Makefile.in exit 1 -grep 'texinfo:' Makefile.in +grep 'texinfo\.info:' Makefile.in + +: diff --git a/t/txinfo-vtexi2.sh b/t/txinfo-vtexi2.sh index 0d12cc3..72bad5d 100755 ---
[FYI] Merge branch 'maint' into master
commit ae63ee5f4c4a57ec4170fe13dacb469f813ac65b Merge: db64467 cb44a4e Author: Stefano Lattarini stefano.lattar...@gmail.com Date: Tue Jan 1 21:41:01 2013 +0100 Merge branch 'maint' * maint: cleanup: remove two lines of dead code in automake texi: warn against suffix-less input files build: respect silent rules in generation of amhello example tarball
[PATCH] texi: info files can be generated in the builddir (was: Re: [PATCH 0/3] Texinfo: allow '.info' placed in $(builddir), remove cruft)
References: http://lists.gnu.org/archive/html/automake-patches/2012-12/msg00107.html http://lists.gnu.org/archive/html/automake-patches/2012-12/msg00125.html On 12/31/2012 07:45 PM, Stefano Lattarini wrote: On 12/31/2012 11:02 AM, Stefano Lattarini wrote: See the commit messages of the individual patches for rationales and background. I plan to push this series to master in 72 hours. Stefano Lattarini (3): texinfo: info files can be generated in the builddir docs: document the new 'info-in-builddir' option texinfo: remove hack about info files in CLEANFILES variables Actually, I think it might make sense to apply the first two patches to maint (after the 1.13.1 bug-fixing release is out). This should be OK, since the change itself is very unobtrusive and no possible source of bugs (Murphy spare me for having said so :-). In addition, having this new option earlier will allow a proper deprecation of the old CLEANFILES hack, so that its final removal in Automake 1.14 won't be too abrupt. Opinions, objections? OK, so here is the first patch for maint, that I hope to get into Automake 1.13.2. I will push it in a couple of days if there is no review by then. The deprecation of the obsolescent CLEANFILES hack (that too for maint) and its removal (that for master only, to appear as part of 1.14) will follow at leisure. Thanks, Stefano 8 8 8 8 8 8 8 8 8 From 36ee783a1000b5a1e52b81e5564de19ffb99fd37 Mon Sep 17 00:00:00 2001 Message-Id: 36ee783a1000b5a1e52b81e5564de19ffb99fd37.1357081425.git.stefano.lattar...@gmail.com From: Stefano Lattarini stefano.lattar...@gmail.com Date: Tue, 3 Apr 2012 22:02:55 +0200 Subject: [PATCH] texi: info files can be generated in the builddir User can now ask info files to be built in the $(builddir), rather than the $(srcdir), by specifying the Automake option 'info-in-builddir'. This feature was requested by the developers of GCC, GDB, GNU binutils and the GNU bfd library. See the extensive discussion about automake bug#11034 for more details. OK, to be honest, having '.info' files built in the builddir was *already* possible, but only using ugly and undocumented hacks involving definition of the CLEANFILES and/or DISTCLEANFILES. For example, the binutils project did something like this in the relevant 'Makefile.am': # Automake 1.9 will only build info files in the objdir if they are # mentioned in DISTCLEANFILES. It doesn't have to be unconditional, # though, so we use a bogus condition. if GENINSRC_NEVER DISTCLEANFILES = binutils.info endif See also the extensive discussion about automake bug#11034; in particular, the following messages: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#65 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#80 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#86 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#101 * lib/Automake/Options.pm (_is_valid_easy_option): Recognize the new 'info-in-builddir' option. * automake.in (handle_texinfo_helper): If that option is set, initialize '$insrc' to '0', so that info files will be generated in the builddir. Adjust comments to match. * t/txinfo-builddir.sh: New test. * t/list-of-tests.mk: Add it. * NEWS: Update. * doc/automake.texi: Document the new options. Signed-off-by: Stefano Lattarini stefano.lattar...@gmail.com --- NEWS| 9 automake.in | 38 +-- doc/automake.texi | 13 + lib/Automake/Options.pm | 1 + t/list-of-tests.mk | 1 + t/txinfo-builddir.sh| 127 6 files changed, 174 insertions(+), 15 deletions(-) create mode 100755 t/txinfo-builddir.sh diff --git a/NEWS b/NEWS index c5b6514..804805e 100644 --- a/NEWS +++ b/NEWS @@ -49,6 +49,15 @@ New in 1.13.2: should take precedence over the same-named automake-provided macro (defined in '/usr/local/share/aclocal-1.14/vala.m4'). +* Texinfo support: + + - Automake can now be instructed to place '.info' files generated from +Texinfo input in the builddir rather than in the srcdir; this is done +specifying the new automake option 'info-in-builddir'. This feature +was requested by the developers of GCC, GDB, GNU binutils and the GNU +bfd library. See the extensive discussion about automake bug#11034 +for more details. + New in 1.13.1: diff --git a/automake.in b/automake.in index 0764258..e56ea65 100644 --- a/automake.in +++ b/automake.in @@ -3269,23 +3269,31 @@ sub handle_texinfo_helper ($) # have a single variable ($INSRC) that controls whether # the current .info file must be built in the source tree # or in the build tree. Actually this variable is switched - # off for .info files that appear to be cleaned; this is - # for backward compatibility with package such as