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