On Wed, Sep 23, 2009 at 2:02 PM, Ralf Wildenhues <ralf.wildenh...@gmx.de> wrote:
> Uh, oh, more bikeshed color questions.  Let's try to find answers that
> follow some principle ...  ;-)
>
> -snip-
>
> What if you just give up the alignment of the target for tags longer
> than 6 characters?  Too ugly shed color?  Or we go to 8, that might
> still be tolerable, maybe let's see an example build.

Sure. I added silent rules to my libfake437 Makefile.am and built it:

$ make all ps pdf html dvi
make  all-am
make[1]: Entering directory `/home/endgame/code/libfake437'
  GEN      doc/fake437-primitive.texi
  GEN      doc/fake437-surface.texi
  GEN      doc/fake437-types.texi
  MAKEINFO doc/libfake437.info
  CC       src/libfake437/chars.lo
  CC       src/libfake437/primitive.lo
  CC       src/libfake437/surface.lo
  CCLD     src/libfake437/libfake437.la
  CXX      src/libfake437++/surface.lo
  CXXLD    src/libfake437++/libfake437++.la
make[1]: Leaving directory `/home/endgame/code/libfake437'
  TEXI2DVI doc/libfake437.dvi
  DVIPS    doc/libfake437.ps
  TEXI2PDF doc/libfake437.pdf
  INFOHTML doc/libfake437.html
make: Nothing to be done for `dvi'.

If I drop it back to 6, it looks like this:

$ make all ps pdf html dvi
make  all-am
make[1]: Entering directory `/home/endgame/code/libfake437'
  GEN    doc/fake437-primitive.texi
  GEN    doc/fake437-surface.texi
  GEN    doc/fake437-types.texi
  MAKEINFO doc/libfake437.info
  CC     src/libfake437/chars.lo
  CC     src/libfake437/primitive.lo
  CC     src/libfake437/surface.lo
  CCLD   src/libfake437/libfake437.la
  CXX    src/libfake437++/surface.lo
  CXXLD  src/libfake437++/libfake437++.la
make[1]: Leaving directory `/home/endgame/code/libfake437'
  TEXI2DVI doc/libfake437.dvi
  DVIPS  doc/libfake437.ps
  TEXI2PDF doc/libfake437.pdf
  INFOHTML doc/libfake437.html
make: Nothing to be done for `dvi'.

I personally prefer it with 8, but I'd rather get something I don't
like committed over a long bikeshed argument.

Revised patch attached. If you're happy with it, I'll cook up some
tests and we can try to get this committed soonish.
From 6ba77498485395acc5b3eb91ef346244dc29b03b Mon Sep 17 00:00:00 2001
From: Jack Kelly <endgame....@gmail.com>
Date: Tue, 22 Sep 2009 12:24:04 +1000
Subject: [PATCH] Add silent rules support for texinfo outputs.

* automake.in (define_verbose_texinfo): Define several new verbose
tagvars and verbose vars.
* automake.in (define_verbose_tagvar): Increase spacing to 8 to
accommodate INFOHTML, MAKEINFO, TEXI2DVI, TEXI2PDF.
* automake.in (handle_texinfo): Additional substitution for
silencing dvips.
* automake.in (output_texinfo_build_rules): Additional
substitutions for silencing texi2dvi and texi2pdf.
* lib/am/texibuild.am: Add silencing to makeinfo, makeinfo --html,
texi2dvi and texi2pdf rules.
* lib/am/texinfos.am: Add silencing to .dvi.ps rule.
---
 NEWS                |    4 ++++
 automake.in         |   22 ++++++++++++++++++++--
 lib/am/texibuild.am |   26 +++++++++++++++++---------
 lib/am/texinfos.am  |    5 +++--
 4 files changed, 44 insertions(+), 13 deletions(-)

diff --git a/NEWS b/NEWS
index 7e14ed8..26a8b31 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,9 @@
 New in 1.11a:
 
+* Changes to automake:
+
+  - automake now generates silenced rules for texinfo outputs.
+
 Bugs fixed in 1.11a:
 
 * Bugs introduced by 1.11:
diff --git a/automake.in b/automake.in
index bab8c42..936cced 100755
--- a/automake.in
+++ b/automake.in
@@ -1199,11 +1199,25 @@ sub define_verbose_tagvar ($)
     my ($name) = @_;
     if (option 'silent-rules')
       {
-	define_verbose_var ($name, '@echo "  '. $name . ' ' x (6 - length ($name)) . '" $@;');
+	define_verbose_var ($name, '@echo "  '. $name . ' ' x (8 - length ($name)) . '" $@;');
 	define_verbose_var ('at', '@');
       }
 }
 
+# define_verbose_texinfo
+# ----------------------
+# Engage the needed `silent-rules' machinery for assorted texinfo commands.
+sub define_verbose_texinfo ()
+{
+  my @tagvars = ('DVIPS', 'MAKEINFO', 'INFOHTML', 'TEXI2DVI', 'TEXI2PDF');
+  foreach my $tag (@tagvars)
+    {
+      define_verbose_tagvar($tag);
+    }
+  define_verbose_var('texinfo', '-q');
+  define_verbose_var('texidevnull', '> /dev/null');
+}
+
 # define_verbose_libtool
 # ----------------------
 # Engage the needed `silent-rules' machinery for `libtool --silent'.
@@ -3248,6 +3262,8 @@ sub output_texinfo_build_rules ($$$@)
 						       ? '$<' : $source),
 				  SOURCE_REAL      => $source,
 				  SOURCE_SUFFIX    => $ssfx,
+                                  TEXIQUIET        => verbose_flag('texinfo'),
+                                  TEXIDEVNULL      => verbose_flag('texidevnull'),
 				  );
   return ($dirstamp, "$dpfx.dvi", "$dpfx.pdf", "$dpfx.ps", "$dpfx.html");
 }
@@ -3551,6 +3567,7 @@ sub handle_texinfo ()
   reject_var 'TEXINFOS', "`TEXINFOS' is an anachronism; use `info_TEXINFOS'";
   # FIXME: I think this is an obsolete future feature name.
   reject_var 'html_TEXINFOS', "HTML generation not yet supported";
+  define_verbose_texinfo;
 
   my $info_texinfos = var ('info_TEXINFOS');
   my ($mostlyclean, $clean, $maintclean) = ('', '', '');
@@ -3567,7 +3584,8 @@ sub handle_texinfo ()
 				   MOSTLYCLEAN   => $mostlyclean,
 				   TEXICLEAN     => $clean,
 				   MAINTCLEAN    => $maintclean,
-				   'LOCAL-TEXIS' => !!$info_texinfos);
+				   'LOCAL-TEXIS' => !!$info_texinfos,
+                                   TEXIQUIET     => verbose_flag('texinfo'));
 }
 
 
diff --git a/lib/am/texibuild.am b/lib/am/texibuild.am
index dca9ce1..def7d4f 100644
--- a/lib/am/texibuild.am
+++ b/lib/am/texibuild.am
@@ -32,7 +32,8 @@
 ##    to fail, the info files are not removed.  (They are needed by the
 ##    developer while he writes documentation.)
 ## *.iNN files are used on DJGPP.  See the comments in install-info-am
-	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+	$(AM_V_MAKEINFO)
+	$(AM_V_at)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
 ?INSRC?	am__cwd=`pwd` && $(am__cd) $(srcdir) && \
 	rm -rf $$backupdir && mkdir $$backupdir && \
 ## If makeinfo is not installed we must not backup the files so
@@ -62,23 +63,29 @@ INFO_DEPS += %DEST_INFO_PREFIX%%DEST_SUFFIX%
 
 ?GENERIC?%SOURCE_SUFFIX%.dvi:
 ?!GENERIC?%DEST_PREFIX%.dvi: %SOURCE% %DEPS% %DIRSTAMP%
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	$(AM_V_TEXI2DVI)
+	$(AM_V_at)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
 ## Must set MAKEINFO like this so that version.texi will be found even
 ## if it is in srcdir (-I $(srcdir) is set in %MAKEINFOFLAGS%).
 	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) %MAKEINFOFLAGS%' \
 ## Do not use `-o' unless necessary: it is only supported since Texinfo 4.1.
-?GENERIC?	$(TEXI2DVI) %SOURCE%
-?!GENERIC?	$(TEXI2DVI) -o $@ `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
+## texi2dvi doesn't silence everything with -q, redirect to /dev/null instead.
+## We still want -q (%TEXIQUIET%) because it turns on batch mode.
+?GENERIC?	$(TEXI2DVI) %TEXIQUIET% %SOURCE% %TEXIDEVNULL%
+?!GENERIC?	$(TEXI2DVI) %TEXIQUIET% -o $@ `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE% %TEXIDEVNULL%
 
 ?GENERIC?%SOURCE_SUFFIX%.pdf:
 ?!GENERIC?%DEST_PREFIX%.pdf: %SOURCE% %DEPS% %DIRSTAMP%
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	$(AM_V_TEXI2PDF)
+	$(AM_V_at)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
 ## Must set MAKEINFO like this so that version.texi will be found even
 ## if it is in srcdir (-I $(srcdir) is set in %MAKEINFOFLAGS%).
 	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) %MAKEINFOFLAGS%' \
 ## Do not use `-o' unless necessary: it is only supported since Texinfo 4.1.
-?GENERIC?	$(TEXI2PDF) %SOURCE%
-?!GENERIC?	$(TEXI2PDF) -o $@ `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
+## texi2pdf doesn't silence everything with -q, redirect to /dev/null instead.
+## We still want -q (%TEXIQUIET%) because it turns on batch mode.
+?GENERIC?	$(TEXI2PDF) %TEXIQUIET% %SOURCE% %TEXIDEVNULL%
+?!GENERIC?	$(TEXI2PDF) %TEXIQUIET% -o $@ `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE% %TEXIDEVNULL%
 
 ?GENERIC?%SOURCE_SUFFIX%.html:
 ?!GENERIC?%DEST_PREFIX%.html: %SOURCE% %DEPS% %DIRSTAMP%
@@ -88,8 +95,9 @@ INFO_DEPS += %DEST_INFO_PREFIX%%DEST_SUFFIX%
 ## in the manual change, it may leave unused pages.  Our fix
 ## is to build under a temporary name, and replace the target on
 ## success.
-	rm -rf $(@:.html=.htp)
-	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) %MAKEINFOFLAGS% \
+	$(AM_V_INFOHTML)
+	$(AM_V_at)rm -rf $(@:.html=.htp)
+	$(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) %MAKEINFOFLAGS% \
 ?GENERIC?	 -o $(@:.html=.htp) %SOURCE%; \
 ?!GENERIC?	 -o $(@:.html=.htp) `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%; \
 	then \
diff --git a/lib/am/texinfos.am b/lib/am/texinfos.am
index c9dcd9d..16e2218 100644
--- a/lib/am/texinfos.am
+++ b/lib/am/texinfos.am
@@ -55,8 +55,9 @@ endif %?LOCAL-TEXIS%
 if %?LOCAL-TEXIS%
 DVIPS = dvips
 .dvi.ps:
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-	$(DVIPS) -o $@ $<
+	$(AM_V_DVIPS)
+	$(AM_V_at)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	$(DVIPS) %TEXIQUIET% -o $@ $<
 endif %?LOCAL-TEXIS%
 
 .PHONY: dvi dvi-am html html-am info info-am pdf pdf-am ps ps-am
-- 
1.6.0.4

Reply via email to