[FYI] {maint} build: respect silent rules in generation of amhello example tarball

2013-01-01 Thread Stefano Lattarini
* 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

2013-01-01 Thread Stefano Lattarini
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

2013-01-01 Thread Stefano Lattarini
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)

2013-01-01 Thread Stefano Lattarini
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