automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: automake less verbose (iter 3)


From: Ralf Wildenhues
Subject: Re: automake less verbose (iter 3)
Date: Mon, 22 Dec 2008 22:28:56 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

[ from <http://thread.gmane.org/gmane.comp.sysutils.automake.general/9995> ]

First, a couple of general comments:

in order for a patch to be applicable, it needs

- to be based against git master,
- have a ChangeLog entry,
- add new tests for new functionality and/or for bugs fixed,
- pass the testsuite, and more generally ensure that current functionality
  is not broken,
- document new functionality (in the manual, and in NEWS).
- Also, copyright assignment needs to be complete (which is the case
  here).
- There are more, less formal requirements, in that the current/intended
  coding style should be adhered to, and so on.  HACKING has some
  details.

These requirements might sound harsh, but they are necessary.
(I'm not saying you need to do all of this, but it certainly helps
getting the patch in faster the less I need to do; I've tried to
fix a few of them below.)

* Jan Engelhardt wrote on Wed, Nov 05, 2008 at 09:38:39AM CET:
> 
> third round here of the automake-tranquility patch from me.
> Updates from previous attempts:
> 1. using am__ prefix
> 2. removed the strange find_link_verbose() function
> 3. verbosity selectable in configure.ac too
>    defaulting to maximum versbosity by default
>    Currently:
>    make V=0:        CC foo.o
>    make V=1:        CC foo.o <- foo.c
>    make V=infinity: long ugly command line
> 4. get rid of the extra \<\n> that appeared (and added new \ns ;).
> 5. yacc/lex now silenced

> ===<<<===
> automake: silenced operation

> Previous attempts always either were POSIX-incompliant due to the use of
> $(if ...), were limited to selecting verbosity at configure-time, or
> involved the costly use of $(shell ...). This patch does it without any
> of these three, and instead relies on variable-in-a-variable
> ${${variable}}, which seems supported by many make programs.

But it is still not POSIX compliant (neither 2001 nor 2008).

There are two possible ways to solve this:

1) We add an Automake option to enable the new functionality, default
off.  That way, a package author can optionally decide to support it
and not support make implementations that do not provide recursive
variables.  It is important to realize this in a way that, when the
option is off, then no $(var1$(var2)) construct appears in the resulting
Makefile; otherwise, that would still not work with some make
implementations.

2) We replace it with a functionality that is compliant.

I thought I finally had an idea to remain compliant:  you can legally
have macros on the left hand side of macro assignments.  For example,
you can have
  foo$(var) = bar

where $(var) is evaluated at the time this line is parsed.  Of course
this allows to pass only one bit of information per $(var).

I have reworked the patch a bit to this end; see below.  Unfortunately,
while this is Posix-compliant AFAICS, it is rather unportable and fails
silently with several vendor makes (e.g., IRIX, HP-UX).

I haven't found another way yet.  If we can't find one, then your choice
of $(var1$(var2)) is certainly better than nothing, in combination with
(1).

> Verbosity level is changable via a configure.ac macro
> AM_VERBOSITY([level]) and at runtime through `make V=level`

> --- automake-1.10.1.orig/automake.in
> +++ automake-1.10.1/automake.in
> @@ -51,6 +51,9 @@ struct (# Short name of the language (c,
>          # Nice name of the language (C, Fortran 77...).
>          'Name' => "\$",
>  
> +     "verbose_compile" => '$',
> +     "verbose_link"    => '$',

Nice idea of making this part of the language definition.
OTOH, let's just factor a bit more, add a variable for the
compiler name here.  We already have one for the linker name
('lder'), and can just reuse that.

> @@ -1329,7 +1359,7 @@ sub handle_languages
>           $ptltflags = 'AM_LIBTOOLFLAGS' unless set_seen $ptltflags;
>  
>           my $obj_ltcompile =
> -           "\$(LIBTOOL) $libtool_tag\$($ptltflags) \$(LIBTOOLFLAGS) "
> +           "\$(LIBTOOL) \${am__libtool_silent} $libtool_tag\$($ptltflags) 
> \$(LIBTOOLFLAGS) "
>             . "--mode=compile $obj_compile";

>           # We _need_ `-o' for per object rules.

> @@ -2472,7 +2504,12 @@ sub handle_programs
>        set_seen ($xname . '_LDFLAGS');
>  
>        # Determine program to use for link.
> -      my $xlink = &define_per_target_linker_variable ($linker, $xname);
> +      my($xlink, $vlink) = &define_per_target_linker_variable ($linker, 
> $xname);
> +      $vlink ||= "";

Ewww.  :-)

> +      if ($vlink eq "") {
> +       # it really should not happen, but be safe...
> +       print STDERR "internal-warning: no vlink for $xname\n";
> +      }

Automake has elaborate warning and error channels, and these have to be
used, for several reasons: so the user can control them via -W(no-)foo,
so the output is stable with parallel (git master can operate threaded)
execution, etc.

Luckily, we don't really need to warn here, but can just use a default
value; I chose 'GEN'.

> @@ -2761,7 +2800,11 @@ sub handle_ltlibraries
>                                            NONLIBTOOL => 0, LIBTOOL => 1);
>  
>        # Determine program to use for link.
> -      my $xlink = &define_per_target_linker_variable ($linker, $xlib);
> +      my($xlink, $vlink) = &define_per_target_linker_variable ($linker, 
> $xlib);
> +      $vlink ||= "";
> +      if ($vlink eq "") {
> +       print STDERR "internal-warning: no (libtoolean) vlink for $xlib\n";
> +      }

Likewise.

> @@ -3941,7 +3985,8 @@ sub handle_configure ($$$@)
>       'USE-DEPS'            => global_option 'no-dependencies'
>                                  ? ' --ignore-deps' : '',
>       'MAKEFILE-AM-SOURCES' => "$makefile$colon_infile",
> -     'REGEN-ACLOCAL-M4'    => $regen_aclocal_m4);
> +     'REGEN-ACLOCAL-M4'    => $regen_aclocal_m4,
> +     VERBOSE               => '${am__verbose_GEN}');

Hmm.  This has no corresponding change in lib/am/configure.am (yet).

> @@ -5872,7 +5917,6 @@ sub define_pretty_variable ($$$@)
>      }
>  }
>  
> -

Let's not remove lines arbitrarily.

> @@ -6355,6 +6399,76 @@ sub read_main_am_file
>      $output_vars .= '# ' . subst ('configure_input') . "\n";
>      $output_vars .= $gen_copyright;
>  
> +     # We are using an indirection via am__1verbose_* here so that
> +     # ${V} is not used in any files but automake.in itself,
> +     # especially avoiding the use of ${V} template files (lib/am/).
> +     #
> +     # GEN is for generate, which you can use for any manual rules.
> +     $output_vars .= join("\n",
> +             'V = ${AUTOMAKE_VERBOSITY}',
> +             'am__1libtool_silent_0 = --silent',
> +             'am__1libtool_silent_1 = --silent',
> +             'am__1verbose_CC_0     = @echo "  CC      " $@;',
> +             'am__1verbose_CCLD_0   = @echo "  CCLD    " $@;',
[...]

Now, this is pretty ugly.  First, the variables could be nicely
pretty-printed like the rest of the automake output.  Then, let's
not have bloat: drop variable we don't need in this Makefile.in.
And really it's much simpler to generate these variables along with
the code that uses them.

> +             'am__1verbose_CC_1     = @echo "  CC      " $@ "<-" $<;',
> +             'am__1verbose_CCLD_1   = @echo "  CCLD    " $@ "<-" $<;',
> +             'am__1verbose_CXX_1    = @echo "  CXX     " $@ "<-" $<;',

As hinted before, '$<' works only with GNU make.


Now, we get to some more meaty things:

> --- automake-1.10.1.orig/lib/am/depend2.am
> +++ automake-1.10.1/lib/am/depend2.am
> @@ -65,12 +65,13 @@ if %?NONLIBTOOL%
>  if %FASTDEP%
>  ## In fast-dep mode, we can always use -o.
>  ## For non-suffix rules, we must emulate a VPATH search on %SOURCE%.
> -?!GENERIC?   %COMPILE% -MT %OBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o %OBJ% 
> `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE% && \
> -?GENERIC??!SUBDIROBJ?        %COMPILE% -MT %OBJ% -MD -MP -MF %DEPBASE%.Tpo 
> %-c% -o %OBJ% %SOURCE% && \
> -?GENERIC??SUBDIROBJ? depbase=`echo %OBJ% | sed 
> 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
> +?!GENERIC?   %VERBOSE%%COMPILE% -MT %OBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o 
> %OBJ% `test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE% && \
> +?GENERIC??!SUBDIROBJ?        %VERBOSE%%COMPILE% -MT %OBJ% -MD -MP -MF 
> %DEPBASE%.Tpo %-c% -o %OBJ% %SOURCE% && \
> +?GENERIC??SUBDIROBJ? %VERBOSE%depbase=`echo %OBJ% | sed 
> 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
>  ?GENERIC??SUBDIROBJ? %COMPILE% -MT %OBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o 
> %OBJ% %SOURCE% &&\
>       mv -f %DEPBASE%.Tpo %DEPBASE%.Po

Have you read the comment at the top of lib/am/depend2.am?
Please read it.  There has been lots of discussion on this
topic already, ignoring that will only get us back to those
discussions.

Another minor issue I don't quite like yet: before this change,
the code was quite carefully laid out to be performant in the
generic fastdep case: GNU make can avoid spawning a shell for
a command, when the command line to be executed can be shown
to be free of shell special variables.  (For precise heuristics
see the GNU make sources.)  Breaking this means one more shell
fork per source file.  Not nice; however, I don't see a good way
around this either, at least not in the silent case, and without
introducing new newlines in the output in the non-silent case.

In my attempt below I added a %SILENT% flag to get the 'mv' to be
silent, at the cost of some added lines in the .am file, though.

>  else !%FASTDEP%
> +     %VERBOSE% @AMDEPBACKSLASH@

Bzzt.  Untested change.  AMDEPBACKSLASH is not substituted in the
non-AMDEP case, and tests/ansi3b.test and tests/fort4.test expose
that, too.  What you meant here a literal backslash, except
that you must hide it from the .am file parser here.

I must admit I don't like this added line in the output of the verbose
case.  However, I don't see good fixes without lots of duplication
below.

>  if %AMDEP%
>       source='%SOURCE%' object='%OBJ%' libtool=no @AMDEPBACKSLASH@
>       DEPDIR=$(DEPDIR) $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@

> @@ -90,12 +91,13 @@ endif !%FASTDEP%
>  if %FASTDEP%
>  ## In fast-dep mode, we can always use -o.
>  ## For non-suffix rules, we must emulate a VPATH search on %SOURCE%.
> -?!GENERIC?   %COMPILE% -MT %OBJOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o 
> %OBJOBJ% `if test -f '%SOURCE%'; then $(CYGPATH_W) '%SOURCE%'; else 
> $(CYGPATH_W) '$(srcdir)/%SOURCE%'; fi` && \
> -?GENERIC??!SUBDIROBJ?        %COMPILE% -MT %OBJOBJ% -MD -MP -MF 
> %DEPBASE%.Tpo %-c% -o %OBJOBJ% `$(CYGPATH_W) '%SOURCE%'` && \
> -?GENERIC??SUBDIROBJ? depbase=`echo %OBJ% | sed 
> 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
> +?!GENERIC?   %VERBOSE%%COMPILE% -MT %OBJOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% 
> -o %OBJOBJ% `if test -f '%SOURCE%'; then $(CYGPATH_W) '%SOURCE%'; else 
> $(CYGPATH_W) '$(srcdir)/%SOURCE%'; fi` && \
> +?GENERIC??!SUBDIROBJ?        %VERBOSE%%COMPILE% -MT %OBJOBJ% -MD -MP -MF 
> %DEPBASE%.Tpo %-c% -o %OBJOBJ% `$(CYGPATH_W) '%SOURCE%'` && \
> +?GENERIC??SUBDIROBJ? %VERBOSE%depbase=`echo %OBJ% | sed 
> 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
>  ?GENERIC??SUBDIROBJ? %COMPILE% -MT %OBJOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% 
> -o %OBJOBJ% `$(CYGPATH_W) '%SOURCE%'` &&\
>       mv -f %DEPBASE%.Tpo %DEPBASE%.Po

> --- /dev/null
> +++ automake-1.10.1/m4/silent.m4
> @@ -0,0 +1,7 @@
> +
> +dnl If the developer does not specify AM_VERBOSITY at all,
> +dnl automake will proceed as if AUTOMAKE_VERBOSITY="".

New files need a copyright header, as in all the other files.

> +AC_DEFUN([AM_VERBOSITY], [
> +     AC_SUBST([AUTOMAKE_VERBOSITY], [$1])
> +])


This whole thing is still lacking all testing, documentation.  It still
has the wrong default (needs to be opt-in, not opt-out), and still
causes a couple of test failures (I've tried to fix them in the patch
below).  There is the question how users can adjust their own rules to
fit (and we should have public macros/variables for that, not am__*
ones).

Probably in order to be real thorough about testing, the whole suite
should be run once with V=1 and once without.  :-/

There are a couple of sore points: I had to ease up the check within
Variable::define.  I would like to fix this before committing.
Also, I had to use the AM_BACKSLASH workaround; another "global"
variable that should be unneeded.  :-/

Good thing about this approach is that in the packages I tested,
it increased Makefile.in size by 1% up to 7% only.  Feedback welcome.
It'll be some more days before I can get back to this.

Cheers,
Ralf

2008-12-22  Jan Engelhardt  <address@hidden>
            Ralf Wildenhues  <address@hidden>

        Implement silenced build rules.
        * automake.in (Automake::Struct): New tag 'ccer'.
        (verbose_var, verbose_flag, silent_flag)
        (define_verbose_tagvar, define_verbose_libtool): New functions.
        (handle_languages): Use them, for %VERBOSE% and %SILENT%.
        (handle_programs, handle_libraries, handle_ltlibraries)
        (handle_configure, define_compiler_variable)
        (define_linker_variable, define_per_target_linker_variable):
        Likewise, deal with verbose and silent flags.  Define the
        respective expansion variables.
        * lib/Automake/Variable.pm (Automake::Variable): Do not warn
        about `$' in variable names.
        * lib/am/depend2.am: Use %VERBOSE% and %SILENT% for Linux
        kernel-like output when `V' is not set.
        * lib/am/lex.am: Likewise.
        * lib/am/library.am: Likewise.
        * lib/am/ltlibrary.am: Likewise.
        * lib/am/program.am: Likewise.
        * lib/am/yacc.am: Likewise.
        * m4/init.m4 (AM_INIT_AUTOMAKE) [AM_BACKSLASH]: New
        substitution, not a make variable.
        * m4/silent.m4 (AM_VERBOSITY): New file, new macro.
        * m4/Makefile.am: Adjust.
        * tests/pr300-ltlib.test: Adjust test.

diff --git a/automake.in b/automake.in
index 6abc1a5..7926da7 100755
--- a/automake.in
+++ b/automake.in
@@ -87,6 +87,9 @@ struct (# Short name of the language (c, f77...).
        # Content of the linking variable.
        'link' => "\$",
 
+       # Name of the compiler variable (CC).
+       'ccer' => "\$",
+
        # Name of the linker variable (LD).
        'lder' => "\$",
        # Content of the linker variable ($(CC)).
@@ -725,6 +728,7 @@ register_language ('name' => 'c',
                   'ansi' => 1,
                   'autodep' => '',
                   'flags' => ['CFLAGS', 'CPPFLAGS'],
+                  'ccer' => 'CC',
                   'compiler' => 'COMPILE',
                   'compile' => '$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)',
                   'lder' => 'CCLD',
@@ -745,6 +749,7 @@ register_language ('name' => 'cxx',
                   'autodep' => 'CXX',
                   'flags' => ['CXXFLAGS', 'CPPFLAGS'],
                   'compile' => '$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)',
+                  'ccer' => 'CXX',
                   'compiler' => 'CXXCOMPILE',
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
@@ -763,6 +768,7 @@ register_language ('name' => 'objc',
                   'autodep' => 'OBJC',
                   'flags' => ['OBJCFLAGS', 'CPPFLAGS'],
                   'compile' => '$(OBJC) $(DEFS) $(DEFAULT_INCLUDES) 
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS)',
+                  'ccer' => 'OBJC',
                   'compiler' => 'OBJCCOMPILE',
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
@@ -780,6 +786,7 @@ register_language ('name' => 'upc',
                   'autodep' => 'UPC',
                   'flags' => ['UPCFLAGS', 'CPPFLAGS'],
                   'compile' => '$(UPC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_UPCFLAGS) $(UPCFLAGS)',
+                  'ccer' => 'UPC',
                   'compiler' => 'UPCCOMPILE',
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
@@ -804,6 +811,7 @@ register_language ('name' => 'vala',
                   'config_vars' => ['VALAC'],
                   'flags' => ['VALAFLAGS'],
                   'compile' => '$(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS)',
+                  'ccer' => 'VALAC',
                   'compiler' => 'VALACOMPILE',
                   'extensions' => ['.vala'],
                   'output_extensions' => sub { (my $ext1 = $_[0]) =~ 
s/vala$/c/;
@@ -820,6 +828,7 @@ register_language ('name' => 'yacc',
                   'config_vars' => ['YACC'],
                   'flags' => ['YFLAGS'],
                   'compile' => '$(YACC) $(YFLAGS) $(AM_YFLAGS)',
+                  'ccer' => 'YACC',
                   'compiler' => 'YACCCOMPILE',
                   'extensions' => ['.y'],
                   'output_extensions' => sub { (my $ext = $_[0]) =~ tr/y/c/;
@@ -833,6 +842,7 @@ register_language ('name' => 'yaccxx',
                   'config_vars' => ['YACC'],
                   'rule_file' => 'yacc',
                   'flags' => ['YFLAGS'],
+                  'ccer' => 'YACC',
                   'compiler' => 'YACCCOMPILE',
                   'compile' => '$(YACC) $(YFLAGS) $(AM_YFLAGS)',
                   'extensions' => ['.y++', '.yy', '.yxx', '.ypp'],
@@ -880,6 +890,7 @@ register_language ('name' => 'asm',
                   # or anything else required.  They can also set CCAS.
                   # Or simply use Preprocessed Assembler.
                   'compile' => '$(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)',
+                  'ccer' => 'CCAS',
                   'compiler' => 'CCASCOMPILE',
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
@@ -896,6 +907,7 @@ register_language ('name' => 'cppasm',
                   'autodep' => 'CCAS',
                   'flags' => ['CCASFLAGS', 'CPPFLAGS'],
                   'compile' => '$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) 
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)',
+                  'ccer' => 'CPPAS',
                   'compiler' => 'CPPASCOMPILE',
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
@@ -912,6 +924,7 @@ register_language ('name' => 'f77',
                   'link' => '$(F77LD) $(AM_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) 
$(LDFLAGS) -o $@',
                   'flags' => ['FFLAGS'],
                   'compile' => '$(F77) $(AM_FFLAGS) $(FFLAGS)',
+                  'ccer' => 'F77',
                   'compiler' => 'F77COMPILE',
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
@@ -929,6 +942,7 @@ register_language ('name' => 'fc',
                   'link' => '$(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) 
$(LDFLAGS) -o $@',
                   'flags' => ['FCFLAGS'],
                   'compile' => '$(FC) $(AM_FCFLAGS) $(FCFLAGS)',
+                  'ccer' => 'FC',
                   'compiler' => 'FCCOMPILE',
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
@@ -946,6 +960,7 @@ register_language ('name' => 'ppfc',
                   'lder' => 'FCLD',
                   'ld' => '$(FC)',
                   'flags' => ['FCFLAGS', 'CPPFLAGS'],
+                  'ccer' => 'PPFC',
                   'compiler' => 'PPFCCOMPILE',
                   'compile' => '$(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)',
                   'compile_flag' => '-c',
@@ -977,6 +992,7 @@ register_language ('name' => 'ppf77',
                   'lder' => 'F77LD',
                   'ld' => '$(F77)',
                   'flags' => ['FFLAGS', 'CPPFLAGS'],
+                  'ccer' => 'PPF77',
                   'compiler' => 'PPF77COMPILE',
                   'compile' => '$(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS)',
                   'compile_flag' => '-c',
@@ -996,6 +1012,7 @@ register_language ('name' => 'ratfor',
                   'flags' => ['RFLAGS', 'FFLAGS'],
                   # FIXME also FFLAGS.
                   'compile' => '$(F77) $(AM_FFLAGS) $(FFLAGS) $(AM_RFLAGS) 
$(RFLAGS)',
+                  'ccer' => 'F77',
                   'compiler' => 'RCOMPILE',
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
@@ -1012,6 +1029,7 @@ register_language ('name' => 'java',
                   'autodep' => 'GCJ',
                   'flags' => ['GCJFLAGS'],
                   'compile' => '$(GCJ) $(AM_GCJFLAGS) $(GCJFLAGS)',
+                  'ccer' => 'GCJ',
                   'compiler' => 'GCJCOMPILE',
                   'compile_flag' => '-c',
                   'output_flag' => '-o',
@@ -1102,6 +1120,44 @@ sub backname ($)
     return join ('/', @res) || '.';
 }
 
+sub verbose_var ($)
+{
+    my ($name) = @_;
+    return 'am__v_' . $name;
+}
+
+sub verbose_flag ($)
+{
+    my ($name) = @_;
+    return '$(' . verbose_var ($name) . ')';
+}
+
+sub silent_flag ()
+{
+    return verbose_flag ('at');
+}
+
+sub define_verbose_tagvar ($)
+{
+    my ($name) = @_;
+    my $var = verbose_var ($name) . '$V';
+    Automake::Variable::define ($var, VAR_AUTOMAKE, '', TRUE,
+                               '@echo "  '. $name . ' ' x (6 - length ($name)) 
. '" $@;',
+                               '', INTERNAL, VAR_ASIS)
+      unless vardef ($var, TRUE);
+    my $silent = verbose_var ('at') . '$V';
+    define_variable ($silent, '@', INTERNAL);
+}
+
+sub define_verbose_libtool ()
+{
+    my $var = verbose_var ('lt') . '$V';
+    my $flag = verbose_flag ('lt');
+    define_variable ($var, '--silent', INTERNAL);
+    return $flag;
+}
+
+
 ################################################################
 
 
@@ -1263,6 +1319,9 @@ sub handle_languages
          (option 'no-dependencies' || $lang->autodep eq 'no')
          ? ('FALSE', 'FALSE') : ('AMDEP', "am__fastdep$fpfx");
 
+       my $verbose = verbose_flag ($lang->ccer || 'GEN');
+       my $silent = silent_flag ();
+
        my %transform = ('EXT'     => $ext,
                         'PFX'     => $pfx,
                         'FPFX'    => $fpfx,
@@ -1274,6 +1333,8 @@ sub handle_languages
                         SUBDIROBJ     => 0,
                         'DERIVED-EXT' => 'BUG',
                         DIST_SOURCE   => 1,
+                        VERBOSE   => $verbose,
+                        SILENT    => $silent,
                        );
 
        # Generate the appropriate rules for this extension.
@@ -1371,8 +1432,9 @@ sub handle_languages
            my $ptltflags = "${derived}_LIBTOOLFLAGS";
            $ptltflags = 'AM_LIBTOOLFLAGS' unless set_seen $ptltflags;
 
+           my $ltverbose = define_verbose_libtool ();
            my $obj_ltcompile =
-             "\$(LIBTOOL) $libtool_tag\$($ptltflags) \$(LIBTOOLFLAGS) "
+             "\$(LIBTOOL) $ltverbose $libtool_tag\$($ptltflags) 
\$(LIBTOOLFLAGS) "
              . "--mode=compile $obj_compile";
 
            # We _need_ `-o' for per object rules.
@@ -1493,6 +1555,8 @@ sub handle_languages
                             OBJOBJ    => "$obj.obj",
                             LTOBJ     => "$obj.lo",
 
+                            VERBOSE   => $verbose,
+                            SILENT    => $silent,
                             COMPILE   => $obj_compile,
                             LTCOMPILE => $obj_ltcompile,
                             -o        => $output_flag,
@@ -2524,7 +2588,8 @@ sub handle_programs
       set_seen ($xname . '_LDFLAGS');
 
       # Determine program to use for link.
-      my $xlink = &define_per_target_linker_variable ($linker, $xname);
+      my($xlink, $vlink) = &define_per_target_linker_variable ($linker, 
$xname);
+      $vlink = verbose_flag ($vlink || 'GEN');
 
       # If the resulting program lies into a subdirectory,
       # make sure this directory will exist.
@@ -2539,6 +2604,7 @@ sub handle_programs
                                       PROGRAM  => $one_file,
                                       XPROGRAM => $xname,
                                       XLINK    => $xlink,
+                                      VERBOSE  => $vlink,
                                       DIRSTAMP => $dirstamp,
                                       SPACE    => $space,
                                       EXEEXT   => '$(EXEEXT)');
@@ -2578,6 +2644,7 @@ sub handle_libraries
 
   &define_variable ('AR', 'ar', INTERNAL);
   &define_variable ('ARFLAGS', 'cru', INTERNAL);
+  &define_verbose_tagvar ('AR');
 
   foreach my $pair (@liblist)
     {
@@ -2640,9 +2707,13 @@ sub handle_libraries
       # make sure this directory will exist.
       my $dirstamp = require_build_directory_maybe ($onelib);
       my $space = $dirstamp ? ' ' : '';
+      my $verbose = verbose_flag ('AR');
+      my $silent = silent_flag ();
 
       $output_rules .= &file_contents ('library',
                                       $where,
+                                      VERBOSE  => $verbose,
+                                      SILENT   => $silent,
                                       LIBRARY  => $onelib,
                                       XLIBRARY => $xlib,
                                       DIRSTAMP => $dirstamp,
@@ -2832,7 +2903,8 @@ sub handle_ltlibraries
                                             NONLIBTOOL => 0, LIBTOOL => 1);
 
       # Determine program to use for link.
-      my $xlink = &define_per_target_linker_variable ($linker, $xlib);
+      my($xlink, $vlink) = &define_per_target_linker_variable ($linker, $xlib);
+      $vlink = verbose_flag ($vlink || 'GEN');
 
       my $rpathvar = "am_${xlib}_rpath";
       my $rpath = "\$($rpathvar)";
@@ -2883,6 +2955,7 @@ sub handle_ltlibraries
                                       XLTLIBRARY => $xlib,
                                       RPATH      => $rpath,
                                       XLINK      => $xlink,
+                                      VERBOSE    => $vlink,
                                       DIRSTAMP   => $dirstamp,
                                       SPACE      => $space);
       if ($seen_libobjs)
@@ -4092,7 +4165,8 @@ sub handle_configure ($$$@)
      'USE-DEPS'            => global_option 'no-dependencies'
                                ? ' --ignore-deps' : '',
      'MAKEFILE-AM-SOURCES' => "$makefile$colon_infile",
-     'REGEN-ACLOCAL-M4'    => $regen_aclocal_m4);
+     'REGEN-ACLOCAL-M4'    => $regen_aclocal_m4,
+     VERBOSE               => verbose_flag ('GEN'));
 
   if ($relative_dir eq '.')
     {
@@ -6258,7 +6332,6 @@ sub define_pretty_variable ($$$@)
     }
 }
 
-
 # define_variable ($VAR, $VALUE, $WHERE)
 # --------------------------------------
 # Define a new Automake Makefile variable VAR to VALUE, but only if
@@ -6321,11 +6394,15 @@ sub define_compiler_variable ($)
     $libtool_tag = '--tag=' . $lang->libtool_tag . ' '
       if $lang->libtool_tag && exists $libtool_tags{$lang->libtool_tag};
     &define_variable ($var, $value, INTERNAL);
-    &define_variable ("LT$var",
-                     "\$(LIBTOOL) $libtool_tag\$(AM_LIBTOOLFLAGS) "
-                     . "\$(LIBTOOLFLAGS) --mode=compile $value",
-                     INTERNAL)
-      if var ('LIBTOOL');
+    if (var ('LIBTOOL'))
+      {
+       my $verbose = define_verbose_libtool ();
+       &define_variable ("LT$var",
+                         "\$(LIBTOOL) $verbose $libtool_tag\$(AM_LIBTOOLFLAGS) 
"
+                         . "\$(LIBTOOLFLAGS) --mode=compile $value",
+                         INTERNAL);
+      }
+    define_verbose_tagvar ($lang->ccer || 'GEN');
 }
 
 
@@ -6342,12 +6419,16 @@ sub define_linker_variable ($)
     # CCLD = $(CC).
     &define_variable ($lang->lder, $lang->ld, INTERNAL);
     # CCLINK = $(CCLD) blah blah...
-    &define_variable ($lang->linker,
-                     ((var ('LIBTOOL') ?
-                       "\$(LIBTOOL) $libtool_tag\$(AM_LIBTOOLFLAGS) "
-                       . "\$(LIBTOOLFLAGS) --mode=link " : '')
-                      . $lang->link),
-                     INTERNAL);
+    my $link = '';
+    if (var ('LIBTOOL'))
+      {
+       my $verbose = define_verbose_libtool ();
+       $link = "\$(LIBTOOL) $verbose $libtool_tag\$(AM_LIBTOOLFLAGS) "
+               . "\$(LIBTOOLFLAGS) --mode=link ";
+      }
+    &define_variable ($lang->linker, $link . $lang->link, INTERNAL);
+    &define_variable ($lang->compiler,  $lang);
+    &define_verbose_tagvar ($lang->lder || 'GEN');
 }
 
 sub define_per_target_linker_variable ($$)
@@ -6371,8 +6452,9 @@ sub define_per_target_linker_variable ($$)
       $libtool_tag = '--tag=' . $lang->libtool_tag . ' '
        if $lang->libtool_tag && exists $libtool_tags{$lang->libtool_tag};
 
+      my $verbose = define_verbose_libtool ();
       $link_command =
-       "\$(LIBTOOL) $libtool_tag\$(AM_LIBTOOLFLAGS) \$(LIBTOOLFLAGS) "
+       "\$(LIBTOOL) $verbose $libtool_tag\$(AM_LIBTOOLFLAGS) \$(LIBTOOLFLAGS) "
        . "--mode=link " . $link_command;
     }
 
@@ -6390,11 +6472,11 @@ sub define_per_target_linker_variable ($$)
 
   # If the computed command is the same as the generic command, use
   # the command linker variable.
-  return $lang->linker
+  return ($lang->linker, $lang->lder)
     if $link_command eq $orig_command;
 
   &define_variable ("${target}_LINK", $link_command, INTERNAL);
-  return "${target}_LINK";
+  return ("${target}_LINK", $lang->lder);
 }
 
 ################################################################
diff --git a/lib/Automake/Variable.pm b/lib/Automake/Variable.pm
index 79bb42c..1e86981 100644
--- a/lib/Automake/Variable.pm
+++ b/lib/Automake/Variable.pm
@@ -128,7 +128,7 @@ non-object).
 
 =cut
 
-my $_VARIABLE_PATTERN = 'address@hidden' . "\$";
+my $_VARIABLE_PATTERN = 'address@hidden' . "\$";
 
 # The order in which variables should be output.  (May contain
 # duplicates -- only the first occurrence matters.)
diff --git a/lib/am/depend2.am b/lib/am/depend2.am
index 1a13bd2..a8a2be8 100644
--- a/lib/am/depend2.am
+++ b/lib/am/depend2.am
@@ -63,12 +63,15 @@ if %?NONLIBTOOL%
 if %FASTDEP%
 ## In fast-dep mode, we can always use -o.
 ## For non-suffix rules, we must emulate a VPATH search on %SOURCE%.
-?!GENERIC?     %COMPILE% -MT %OBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o %OBJ% 
%SOURCEFLAG%`test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
-?GENERIC??!SUBDIROBJ?  %COMPILE% -MT %OBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o 
%OBJ% %SOURCEFLAG%%SOURCE%
-?GENERIC??SUBDIROBJ?   depbase=`echo %OBJ% | sed 
's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+?!GENERIC?     %VERBOSE%%COMPILE% -MT %OBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o 
%OBJ% %SOURCEFLAG%`test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
+?!GENERIC?     %SILENT%$(am__mv) %DEPBASE%.Tpo %DEPBASE%.Po
+?GENERIC??!SUBDIROBJ?  %VERBOSE%%COMPILE% -MT %OBJ% -MD -MP -MF %DEPBASE%.Tpo 
%-c% -o %OBJ% %SOURCEFLAG%%SOURCE%
+?GENERIC??!SUBDIROBJ?  %SILENT%$(am__mv) %DEPBASE%.Tpo %DEPBASE%.Po
+?GENERIC??SUBDIROBJ?   %VERBOSE%depbase=`echo %OBJ% | sed 
's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
 ?GENERIC??SUBDIROBJ?   %COMPILE% -MT %OBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o 
%OBJ% %SOURCEFLAG%%SOURCE% &&\
-       $(am__mv) %DEPBASE%.Tpo %DEPBASE%.Po
+?GENERIC??SUBDIROBJ?   $(am__mv) %DEPBASE%.Tpo %DEPBASE%.Po
 else !%FASTDEP%
+       %VERBOSE% @AM_BACKSLASH@
 if %AMDEP%
        source='%SOURCE%' object='%OBJ%' libtool=no @AMDEPBACKSLASH@
        DEPDIR=$(DEPDIR) $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
@@ -88,12 +91,15 @@ endif !%FASTDEP%
 if %FASTDEP%
 ## In fast-dep mode, we can always use -o.
 ## For non-suffix rules, we must emulate a VPATH search on %SOURCE%.
-?!GENERIC?     %COMPILE% -MT %OBJOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o 
%OBJOBJ% %SOURCEFLAG%`if test -f '%SOURCE%'; then $(CYGPATH_W) '%SOURCE%'; else 
$(CYGPATH_W) '$(srcdir)/%SOURCE%'; fi`
-?GENERIC??!SUBDIROBJ?  %COMPILE% -MT %OBJOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% 
-o %OBJOBJ% %SOURCEFLAG%`$(CYGPATH_W) '%SOURCE%'`
-?GENERIC??SUBDIROBJ?   depbase=`echo %OBJ% | sed 
's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+?!GENERIC?     %VERBOSE%%COMPILE% -MT %OBJOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% 
-o %OBJOBJ% %SOURCEFLAG%`if test -f '%SOURCE%'; then $(CYGPATH_W) '%SOURCE%'; 
else $(CYGPATH_W) '$(srcdir)/%SOURCE%'; fi`
+?!GENERIC?     %SILENT%$(am__mv) %DEPBASE%.Tpo %DEPBASE%.Po
+?GENERIC??!SUBDIROBJ?  %VERBOSE%%COMPILE% -MT %OBJOBJ% -MD -MP -MF 
%DEPBASE%.Tpo %-c% -o %OBJOBJ% %SOURCEFLAG%`$(CYGPATH_W) '%SOURCE%'`
+?GENERIC??!SUBDIROBJ?  %SILENT%$(am__mv) %DEPBASE%.Tpo %DEPBASE%.Po
+?GENERIC??SUBDIROBJ?   %VERBOSE%depbase=`echo %OBJ% | sed 
's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
 ?GENERIC??SUBDIROBJ?   %COMPILE% -MT %OBJOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% 
-o %OBJOBJ% %SOURCEFLAG%`$(CYGPATH_W) '%SOURCE%'` &&\
-       $(am__mv) %DEPBASE%.Tpo %DEPBASE%.Po
+?GENERIC??SUBDIROBJ?   $(am__mv) %DEPBASE%.Tpo %DEPBASE%.Po
 else !%FASTDEP%
+       %VERBOSE% @AM_BACKSLASH@
 if %AMDEP%
        source='%SOURCE%' object='%OBJOBJ%' libtool=no @AMDEPBACKSLASH@
        DEPDIR=$(DEPDIR) $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
@@ -115,12 +121,15 @@ if %?LIBTOOL%
 if %FASTDEP%
 ## In fast-dep mode, we can always use -o.
 ## For non-suffix rules, we must emulate a VPATH search on %SOURCE%.
-?!GENERIC?     %LTCOMPILE% -MT %LTOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% -o 
%LTOBJ% %SOURCEFLAG%`test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
-?GENERIC??!SUBDIROBJ?  %LTCOMPILE% -MT %LTOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% 
-o %LTOBJ% %SOURCEFLAG%%SOURCE%
-?GENERIC??SUBDIROBJ?   depbase=`echo %OBJ% | sed 
's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+?!GENERIC?     %VERBOSE%%LTCOMPILE% -MT %LTOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% 
-o %LTOBJ% %SOURCEFLAG%`test -f '%SOURCE%' || echo '$(srcdir)/'`%SOURCE%
+?!GENERIC?     %SILENT%$(am__mv) %DEPBASE%.Tpo %DEPBASE%.Plo
+?GENERIC??!SUBDIROBJ?  %VERBOSE%%LTCOMPILE% -MT %LTOBJ% -MD -MP -MF 
%DEPBASE%.Tpo %-c% -o %LTOBJ% %SOURCEFLAG%%SOURCE%
+?GENERIC??!SUBDIROBJ?  %SILENT%$(am__mv) %DEPBASE%.Tpo %DEPBASE%.Plo
+?GENERIC??SUBDIROBJ?   %VERBOSE%depbase=`echo %OBJ% | sed 
's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
 ?GENERIC??SUBDIROBJ?   %LTCOMPILE% -MT %LTOBJ% -MD -MP -MF %DEPBASE%.Tpo %-c% 
-o %LTOBJ% %SOURCEFLAG%%SOURCE% &&\
-       $(am__mv) %DEPBASE%.Tpo %DEPBASE%.Plo
+?GENERIC??SUBDIROBJ?   $(am__mv) %DEPBASE%.Tpo %DEPBASE%.Plo
 else !%FASTDEP%
+       %VERBOSE% @AM_BACKSLASH@
 if %AMDEP%
        source='%SOURCE%' object='%LTOBJ%' libtool=yes @AMDEPBACKSLASH@
        DEPDIR=$(DEPDIR) $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
diff --git a/lib/am/lex.am b/lib/am/lex.am
index b44daf1..19b36ee 100644
--- a/lib/am/lex.am
+++ b/lib/am/lex.am
@@ -23,7 +23,8 @@ endif %?MAINTAINER-MODE%
 
 ?GENERIC?%EXT%%DERIVED-EXT%:
 ?!GENERIC?%OBJ%: %SOURCE%
-?GENERIC?      $(am__skiplex) $(SHELL) $(YLWRAP) %SOURCE% $(LEX_OUTPUT_ROOT).c 
%OBJ% -- %COMPILE%
+?GENERIC?      %VERBOSE%$(am__skiplex) $(SHELL) $(YLWRAP) %SOURCE% 
$(LEX_OUTPUT_ROOT).c %OBJ% -- %COMPILE%
+?!GENERIC?     %VERBOSE% \
 ?!GENERIC??DIST_SOURCE?        $(am__skiplex) \
 ## For non-suffix rules, we must emulate a VPATH search on %SOURCE%.
 ?!GENERIC?     $(SHELL) $(YLWRAP) `test -f '%SOURCE%' || echo 
'$(srcdir)/'`%SOURCE% $(LEX_OUTPUT_ROOT).c %OBJ% -- %COMPILE%
diff --git a/lib/am/library.am b/lib/am/library.am
index deb33d5..594d8cd 100644
--- a/lib/am/library.am
+++ b/lib/am/library.am
@@ -15,6 +15,6 @@
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 %LIBRARY%: $(%XLIBRARY%_OBJECTS) $(%XLIBRARY%_DEPENDENCIES)%SPACE%%DIRSTAMP%
-       -rm -f %LIBRARY%
-       $(%XLIBRARY%_AR) %LIBRARY% $(%XLIBRARY%_OBJECTS) $(%XLIBRARY%_LIBADD)
-       $(RANLIB) %LIBRARY%
+       %SILENT%-rm -f %LIBRARY%
+       %VERBOSE%$(%XLIBRARY%_AR) %LIBRARY% $(%XLIBRARY%_OBJECTS) 
$(%XLIBRARY%_LIBADD)
+       %SILENT%$(RANLIB) %LIBRARY%
diff --git a/lib/am/ltlibrary.am b/lib/am/ltlibrary.am
index 1046cea..691a3c4 100644
--- a/lib/am/ltlibrary.am
+++ b/lib/am/ltlibrary.am
@@ -15,4 +15,4 @@
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 %LTLIBRARY%: $(%XLTLIBRARY%_OBJECTS) 
$(%XLTLIBRARY%_DEPENDENCIES)%SPACE%%DIRSTAMP%
-       $(%XLINK%) %RPATH% $(%XLTLIBRARY%_OBJECTS) $(%XLTLIBRARY%_LIBADD) 
$(LIBS)
+       %VERBOSE%$(%XLINK%) %RPATH% $(%XLTLIBRARY%_OBJECTS) 
$(%XLTLIBRARY%_LIBADD) $(LIBS)
diff --git a/lib/am/program.am b/lib/am/program.am
index 0955cd8..e4ab3d4 100644
--- a/lib/am/program.am
+++ b/lib/am/program.am
@@ -21,4 +21,4 @@
 ## Or maybe not... sadly, incremental linkers are rarer than losing
 ## systems.
        @rm -f %PROGRAM%%EXEEXT%
-       $(%XLINK%) $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_LDADD) $(LIBS)
+       %VERBOSE%$(%XLINK%) $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_LDADD) $(LIBS)
diff --git a/lib/am/yacc.am b/lib/am/yacc.am
index 50fd7fa..d16a2c4 100644
--- a/lib/am/yacc.am
+++ b/lib/am/yacc.am
@@ -41,7 +41,8 @@ endif %?MAINTAINER-MODE%
 
 ?GENERIC?%EXT%%DERIVED-EXT%:
 ?!GENERIC?%OBJ%: %SOURCE%
-?GENERIC?      $(am__skipyacc) $(SHELL) $(YLWRAP) %SOURCE% y.tab.c %OBJ% 
y.tab.h %BASE%.h y.output %BASE%.output -- %COMPILE%
+?GENERIC?      %VERBOSE%$(am__skipyacc) $(SHELL) $(YLWRAP) %SOURCE% y.tab.c 
%OBJ% y.tab.h %BASE%.h y.output %BASE%.output -- %COMPILE%
+?!GENERIC?     %VERBOSE% \
 ?!GENERIC??DIST_SOURCE?        $(am__skipyacc) \
 ## For non-suffix rules, we must emulate a VPATH search on %SOURCE%.
 ?!GENERIC?     $(SHELL) $(YLWRAP) `test -f '%SOURCE%' || echo 
'$(srcdir)/'`%SOURCE% y.tab.c %OBJ% y.tab.h %BASE%.h y.output %BASE%.output -- 
%COMPILE%
diff --git a/m4/Makefile.am b/m4/Makefile.am
index fd7c71c..478201c 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -52,6 +52,7 @@ python.m4 \
 regex.m4 \
 runlog.m4 \
 sanity.m4 \
+silent.m4 \
 strip.m4 \
 substnot.m4 \
 tar.m4 \
diff --git a/m4/init.m4 b/m4/init.m4
index 7104dd3..9de3d0b 100644
--- a/m4/init.m4
+++ b/m4/init.m4
@@ -100,6 +100,9 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJC],
                  [define([AC_PROG_OBJC],
                          defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
 ])
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
 
diff --git a/m4/silent.m4 b/m4/silent.m4
new file mode 100644
index 0000000..43b8828
--- /dev/null
+++ b/m4/silent.m4
@@ -0,0 +1,13 @@
+# Set rule verbosity.                             -*- Autoconf -*-
+
+# Copyright (C) 2008  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+AC_DEFUN([AM_VERBOSITY],
+[AC_SUBST([AUTOMAKE_VERBOSITY], [$1])
+])
diff --git a/tests/pr300-ltlib.test b/tests/pr300-ltlib.test
index 99c03da..7aa0818 100755
--- a/tests/pr300-ltlib.test
+++ b/tests/pr300-ltlib.test
@@ -48,7 +48,7 @@ $ACLOCAL
 $AUTOCONF
 $AUTOMAKE --copy --add-missing
 ./configure --prefix "`pwd`/inst"
-$MAKE >stdout
+$MAKE V=1 >stdout
 cat stdout
 
 grep 'liba.la .*-rpath .*lib' stdout




reply via email to

[Prev in Thread] Current Thread [Next in Thread]