automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, master, updated. v1.13.1b-1


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.13.1b-135-g5e074aa
Date: Sat, 16 Feb 2013 19:00:54 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=5e074aa5e14c7debc33f01ff9f40283278d06128

The branch, master has been updated
       via  5e074aa5e14c7debc33f01ff9f40283278d06128 (commit)
       via  9829cf24dad4310de0dbfbc3732f6c439b8e6931 (commit)
       via  57b72c4b8e8d5521b0a83aaa445276c2155dc64e (commit)
       via  e7b9d315e6bcb3a3c86042dc5fd58e6f4461ed2d (commit)
       via  283ded7f5b9b7ad97300293cd65f3f1b48c21115 (commit)
       via  6d9e9dd453944cd86ddc530a131bd338f4734638 (commit)
      from  73e9f71c130dd620350553752d63edb761336e0e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 5e074aa5e14c7debc33f01ff9f40283278d06128
Merge: 73e9f71 9829cf2
Author: Stefano Lattarini <address@hidden>
Date:   Sat Feb 16 19:39:07 2013 +0100

    Merge branch 'maint'
    
    * maint:
      style: call perl functions 'like_this()', not '&like_this()'
      maint: use more perl subroutines prototypes in the automake script
      build: auto-generate perl subroutines prototypes for automake and aclocal
      refactor: rip module Automake::Language out of automake script
    
    Signed-off-by: Stefano Lattarini <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 HACKING                     |    5 +-
 Makefile.am                 |   14 +-
 aclocal.in                  |   22 +--
 automake.in                 |  750 +++++++++++++++++++------------------------
 bootstrap.sh                |   11 +-
 lib/Automake/Language.pm    |  122 +++++++
 lib/gen-perl-protos         |   36 ++
 maintainer/syntax-checks.mk |   19 +-
 8 files changed, 521 insertions(+), 458 deletions(-)
 create mode 100644 lib/Automake/Language.pm
 create mode 100755 lib/gen-perl-protos

diff --git a/HACKING b/HACKING
index 8f51ff4..a4f89bd 100644
--- a/HACKING
+++ b/HACKING
@@ -96,11 +96,8 @@
   default), and other portions using the GNU style (cperl-mode's
   default).  Write new code using GNU style.
 
-* Don't use & for function calls, unless required.
+* Don't use & for function calls, unless really required.
   The use of & prevents prototypes from being checked.
-  Just as above, don't change massively all the code to strip the
-  &, just convert the old code as you work on it, and write new
-  code without.
 
 ============================================================================
 = Working with git
diff --git a/Makefile.am b/Makefile.am
index 8990648..e481726 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -96,13 +96,18 @@ uninstall-hook:
 # $(datadir) or other do_subst'ituted variables change.
 automake: automake.in
 aclocal: aclocal.in
-automake aclocal: Makefile
-       $(AM_V_at)rm -f $@ address@hidden
-       $(AM_V_GEN)address@hidden; $(do_subst) <$(srcdir)/address@hidden 
>address@hidden
+automake aclocal: Makefile lib/gen-perl-protos
+       $(AM_V_GEN)rm -f $@ address@hidden address@hidden \
+## Common substitutions.
+         && address@hidden && $(do_subst) <$(srcdir)/$$in >address@hidden \
+## Auto-compute prototypes of perl subroutines.
+         && $(PERL) -w $(srcdir)/lib/gen-perl-protos address@hidden > 
address@hidden \
+         && mv -f address@hidden address@hidden \
 ## We can't use '$(generated_file_finalize)' here, because currently
 ## Automake contains occurrences of unexpanded @substitutions@ in
 ## comments, and that is perfectly legit.
-       $(AM_V_at)chmod a+x,a-w address@hidden && mv -f address@hidden $@
+         && chmod a+x,a-w address@hidden && mv -f address@hidden $@
+EXTRA_DIST += lib/gen-perl-protos
 
 # The master location for INSTALL is lib/INSTALL.
 # This is where "make fetch" will install new versions.
@@ -187,6 +192,7 @@ dist_perllib_DATA = \
   lib/Automake/Getopt.pm \
   lib/Automake/Item.pm \
   lib/Automake/ItemDef.pm \
+  lib/Automake/Language.pm \
   lib/Automake/Location.pm \
   lib/Automake/Options.pm \
   lib/Automake/Rule.pm \
diff --git a/aclocal.in b/aclocal.in
index 42eb2e1..98f606f 100644
--- a/aclocal.in
+++ b/aclocal.in
@@ -169,27 +169,7 @@ my $erase_me;
 
 # Prototypes for all subroutines.
 
-sub unlink_tmp (;$);
-sub xmkdir_p ($);
-sub check_acinclude ();
-sub reset_maps ();
-sub install_file ($$);
-sub list_compare (address@hidden@);
-sub scan_m4_dirs ($$@);
-sub scan_m4_files ();
-sub add_macro ($);
-sub scan_configure_dep ($);
-sub add_file ($);
-sub scan_file ($$$);
-sub strip_redundant_includes (%);
-sub trace_used_macros ();
-sub scan_configure ();
-sub write_aclocal ($@);
-sub usage ($);
-sub version ();
-sub handle_acdir_option ($$);
-sub parse_arguments ();
-sub parse_ACLOCAL_PATH ();
+#! Prototypes here will automatically be generated by the build system.
 
 ################################################################
 
diff --git a/automake.in b/automake.in
index 70214e4..02c6d41 100644
--- a/automake.in
+++ b/automake.in
@@ -25,7 +25,9 @@ eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S 
"$0" "$@";; esac'
 # Perl reimplementation by Tom Tromey <address@hidden>, and
 # Alexandre Duret-Lutz <address@hidden>.
 
-package Language;
+package Automake;
+
+use strict;
 
 BEGIN
 {
@@ -34,93 +36,6 @@ BEGIN
   unshift @INC, @Automake::perl_libdirs;
 }
 
-use Class::Struct ();
-Class::Struct::struct (
-       # Short name of the language (c, f77...).
-       'name' => "\$",
-       # Nice name of the language (C, Fortran 77...).
-       'Name' => "\$",
-
-       # List of configure variables which must be defined.
-       'config_vars' => '@',
-
-       # 'pure' is '1' or ''.  A 'pure' language is one where, if
-       # all the files in a directory are of that language, then we
-       # do not require the C compiler or any code to call it.
-       'pure'   => "\$",
-
-       'autodep' => "\$",
-
-       # Name of the compiling variable (COMPILE).
-       'compiler'  => "\$",
-       # Content of the compiling variable.
-       'compile'  => "\$",
-       # Flag to require compilation without linking (-c).
-       'compile_flag' => "\$",
-       'extensions' => '@',
-       # A subroutine to compute a list of possible extensions of
-       # the product given the input extensions.
-       # (defaults to a subroutine which returns ('.$(OBJEXT)', '.lo'))
-       'output_extensions' => "\$",
-       # A list of flag variables used in 'compile'.
-       # (defaults to [])
-       'flags' => "@",
-
-       # Any tag to pass to libtool while compiling.
-       'libtool_tag' => "\$",
-
-       # The file to use when generating rules for this language.
-       # The default is 'depend2'.
-       'rule_file' => "\$",
-
-       # Name of the linking variable (LINK).
-       'linker' => "\$",
-       # 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)).
-       'ld' => "\$",
-
-       # Flag to specify the output file (-o).
-       'output_flag' => "\$",
-       '_finish' => "\$",
-
-       # This is a subroutine which is called whenever we finally
-       # determine the context in which a source file will be
-       # compiled.
-       '_target_hook' => "\$",
-
-       # If TRUE, nodist_ sources will be compiled using specific rules
-       # (i.e. not inference rules).  The default is FALSE.
-       'nodist_specific' => "\$");
-
-
-sub finish ($)
-{
-  my ($self) = @_;
-  if (defined $self->_finish)
-    {
-      &{$self->_finish} (@_);
-    }
-}
-
-sub target_hook ($$$$%)
-{
-    my ($self) = @_;
-    if (defined $self->_target_hook)
-    {
-       &{$self->_target_hook} (@_);
-    }
-}
-
-package Automake;
-
-use strict;
 use Automake::Config;
 BEGIN
 {
@@ -146,10 +61,18 @@ use Automake::VarDef;
 use Automake::Rule;
 use Automake::RuleDef;
 use Automake::Wrap 'makefile_wrap';
+use Automake::Language;
 use File::Basename;
 use File::Spec;
 use Carp;
 
+## ----------------------- ##
+## Subroutine prototypes.  ##
+## ----------------------- ##
+
+#! Prototypes here will automatically be generated by the build system.
+
+
 ## ----------- ##
 ## Constants.  ##
 ## ----------- ##
@@ -332,7 +255,7 @@ my %ac_config_files_location = ();
 my %ac_config_files_condition = ();
 
 # Directory to search for configure-required files.  This
-# will be computed by &locate_aux_dir and can be set using
+# will be computed by locate_aux_dir() and can be set using
 # AC_CONFIG_AUX_DIR in configure.ac.
 # $CONFIG_AUX_DIR is the 'raw' directory, valid only in the source-tree.
 my $config_aux_dir = '';
@@ -606,16 +529,9 @@ Automake::Variable::hook ('SUFFIXES', 
\&var_SUFFIXES_trigger);
 
 ################################################################
 
-## --------------------------------- ##
-## Forward subroutine declarations.  ##
-## --------------------------------- ##
-sub register_language (%);
-sub file_contents_internal ($$$%);
-sub define_files_variable (address@hidden);
-
 
-# &initialize_per_input ()
-# ------------------------
+# initialize_per_input ()
+# -----------------------
 # (Re)-Initialize per-Makefile.am variables.
 sub initialize_per_input ()
 {
@@ -1023,7 +939,7 @@ register_language ('name' => 'java',
 # Uncategorized errors about the current Makefile.am.
 sub err_am ($;%)
 {
-  msg_am ('error', @_);
+  msg_am ('error', shift, @_);
 }
 
 # err_ac ($MESSAGE, [%OPTIONS])
@@ -1031,7 +947,7 @@ sub err_am ($;%)
 # Uncategorized errors about configure.ac.
 sub err_ac ($;%)
 {
-  msg_ac ('error', @_);
+  msg_ac ('error', shift, @_);
 }
 
 # msg_am ($CHANNEL, $MESSAGE, [%OPTIONS])
@@ -1070,8 +986,8 @@ sub subst ($)
 
 
 # $BACKPATH
-# &backname ($RELDIR)
-# --------------------
+# backname ($RELDIR)
+# -------------------
 # If I "cd $RELDIR", then to come back, I should "cd $BACKPATH".
 # For instance 'src/foo' => '../..'.
 # Works with non strictly increasing paths, i.e., 'src/../lib' => '..'.
@@ -1221,7 +1137,7 @@ sub handle_silent ()
 
 
 # Handle AUTOMAKE_OPTIONS variable.  Return 1 on error, 0 otherwise.
-sub handle_options
+sub handle_options ()
 {
   my $var = var ('AUTOMAKE_OPTIONS');
   if ($var)
@@ -1294,7 +1210,7 @@ sub check_user_variables (@)
 }
 
 # Call finish function for each language that was used.
-sub handle_languages
+sub handle_languages ()
 {
     if (! option 'no-dependencies')
     {
@@ -1303,10 +1219,10 @@ sub handle_languages
        if (keys %extension_seen && keys %dep_files)
        {
            # Set location of depcomp.
-           &define_variable ('depcomp',
-                             "\$(SHELL) $am_config_aux_dir/depcomp",
-                             INTERNAL);
-           &define_variable ('am__depfiles_maybe', 'depfiles', INTERNAL);
+           define_variable ('depcomp',
+                            "\$(SHELL) $am_config_aux_dir/depcomp",
+                            INTERNAL);
+           define_variable ('am__depfiles_maybe', 'depfiles', INTERNAL);
 
            require_conf_file ("$am_file.am", FOREIGN, 'depcomp');
 
@@ -1329,15 +1245,15 @@ sub handle_languages
 
            # Compute the set of directories to remove in distclean-depend.
            my @depdirs = uniq (map { dirname ($_) } @deplist);
-           $output_rules .= &file_contents ('depend',
-                                            new Automake::Location,
-                                            DEPDIRS => "@depdirs");
+           $output_rules .= file_contents ('depend',
+                                           new Automake::Location,
+                                           DEPDIRS => "@depdirs");
        }
     }
     else
     {
-       &define_variable ('depcomp', '', INTERNAL);
-       &define_variable ('am__depfiles_maybe', '', INTERNAL);
+       define_variable ('depcomp', '', INTERNAL);
+       define_variable ('am__depfiles_maybe', '', INTERNAL);
     }
 
     my %done;
@@ -1372,7 +1288,7 @@ sub handle_languages
                         'FASTDEP' => $FASTDEP,
                         '-c'      => $lang->compile_flag || '',
                         # These are not used, but they need to be defined
-                        # so &transform do not complain.
+                        # so transform() do not complain.
                         SUBDIROBJ     => 0,
                         'DERIVED-EXT' => 'BUG',
                         DIST_SOURCE   => 1,
@@ -1395,7 +1311,7 @@ sub handle_languages
 
            # Compute a possible derived extension.
            # This is not used by depend2.am.
-           my $der_ext = (&{$lang->output_extensions} ($ext))[0];
+           my $der_ext = ($lang->output_extensions->($ext))[0];
 
            # When we output an inference rule like '.c.o:' we
            # have two cases to consider: either subdir-objects
@@ -1565,7 +1481,7 @@ sub handle_languages
 
     if ($needs_c)
       {
-       &define_compiler_variable ($languages{'c'})
+       define_compiler_variable ($languages{'c'})
          unless defined $done{$languages{'c'}};
        define_linker_variable ($languages{'c'});
       }
@@ -1601,7 +1517,7 @@ sub append_exeext (&$)
 # mentioned.  This is a separate function (as opposed to being inlined
 # in handle_source_transform) because it isn't always appropriate to
 # do this check.
-sub check_libobjs_sources
+sub check_libobjs_sources ($$)
 {
   my ($one_file, $unxformed) = @_;
 
@@ -1700,13 +1616,13 @@ sub handle_single_transform ($$$$$%)
        # language function.
        my $aggregate = 'AM';
 
-       $extension = &derive_suffix ($extension, $obj);
+       $extension = derive_suffix ($extension, $obj);
        my $lang;
        if ($extension_map{$extension} &&
            ($lang = $languages{$extension_map{$extension}}))
        {
            # Found the language, so see what it says.
-           &saw_extension ($extension);
+           saw_extension ($extension);
 
            # Do we have per-executable flags for this executable?
            my $have_per_exec_flags = 0;
@@ -1946,7 +1862,7 @@ EOF
            unshift (@files, $object);
            # Distribute derived sources unless the source they are
            # derived from is not.
-           &push_dist_common ($object)
+           push_dist_common ($object)
              unless ($topparent =~ /^(?:nobase_)?nodist_/);
            next;
          }
@@ -2001,7 +1917,7 @@ EOF
                  unless option 'no-dependencies';
            }
 
-           &pretty_print_rule ($object . ':', "\t", @dep_list)
+           pretty_print_rule ($object . ':', "\t", @dep_list)
                if scalar @dep_list > 0;
        }
 
@@ -2131,7 +2047,7 @@ sub handle_source_transform ($$$$%)
     }
     if ($needlinker)
     {
-       $linker ||= &resolve_linker (%linkers_used);
+       $linker ||= resolve_linker (%linkers_used);
     }
 
     my @keys = sort keys %used_pfx;
@@ -2171,7 +2087,7 @@ sub handle_source_transform ($$$$%)
            $default_source = '$(srcdir)/' . $default_source;
          }
 
-       &define_variable ($one_file . "_SOURCES", $default_source, $where);
+       define_variable ($one_file . "_SOURCES", $default_source, $where);
        push (@sources, $default_source);
        push (@dist_sources, $default_source);
 
@@ -2181,7 +2097,7 @@ sub handle_source_transform ($$$$%)
                                   $one_file . '_SOURCES',
                                   $one_file, $obj,
                                   $default_source, %transform);
-       $linker ||= &resolve_linker (%linkers_used);
+       $linker ||= resolve_linker (%linkers_used);
        define_pretty_variable ($one_file . '_OBJECTS', TRUE, $where, @result);
     }
     else
@@ -2208,7 +2124,7 @@ sub handle_source_transform ($$$$%)
 #   transformed name of object being built, or empty string if no object
 #   name of _LDADD/_LIBADD-type variable to examine
 # Returns 1 if LIBOBJS seen, 0 otherwise.
-sub handle_lib_objects
+sub handle_lib_objects ($$)
 {
   my ($xname, $varname) = @_;
 
@@ -2340,8 +2256,8 @@ sub handle_LIBOBJS ($$$)
     {
       if ($iter =~ /\.[cly]$/)
        {
-         &saw_extension ($&);
-         &saw_extension ('.c');
+         saw_extension ($&);
+         saw_extension ('.c');
        }
 
       if ($iter =~ /\.h$/)
@@ -2374,11 +2290,11 @@ sub handle_ALLOCA ($$$)
   $var->requires_variables ("address@hidden@ used", $lt . 'ALLOCA');
   $dep_files{$dir . '$(DEPDIR)/alloca.P' . $myobjext} = 1;
   require_libsource_with_macro ($cond, $var, FOREIGN, 'alloca.c');
-  &saw_extension ('.c');
+  saw_extension ('.c');
 }
 
 # Canonicalize the input parameter
-sub canonicalize
+sub canonicalize ($)
 {
     my ($string) = @_;
     $string =~ tr/A-Za-z0-9_\@/_/c;
@@ -2388,11 +2304,11 @@ sub canonicalize
 # Canonicalize a name, and check to make sure the non-canonical name
 # is never used.  Returns canonical name.  Arguments are name and a
 # list of suffixes to check for.
-sub check_canonical_spelling
+sub check_canonical_spelling ($@)
 {
   my ($name, @suffixes) = @_;
 
-  my $xname = &canonicalize ($name);
+  my $xname = canonicalize ($name);
   if ($xname ne $name)
     {
       foreach my $xt (@suffixes)
@@ -2452,11 +2368,11 @@ sub handle_compile ()
     }
 
     my ($coms, $vars, $rules) =
-      &file_contents_internal (1, "$libdir/am/compile.am",
-                              new Automake::Location,
-                              ('DEFAULT_INCLUDES' => $default_includes,
-                               'MOSTLYRMS' => join ("\n", @mostly_rms),
-                               'DISTRMS' => join ("\n", @dist_rms)));
+      file_contents_internal (1, "$libdir/am/compile.am",
+                             new Automake::Location,
+                             'DEFAULT_INCLUDES' => $default_includes,
+                             'MOSTLYRMS' => join ("\n", @mostly_rms),
+                             'DISTRMS' => join ("\n", @dist_rms));
     $output_vars .= $vars;
     $output_rules .= "$coms$rules";
 }
@@ -2464,7 +2380,7 @@ sub handle_compile ()
 # handle_libtool ()
 # -----------------
 # Handle libtool rules.
-sub handle_libtool
+sub handle_libtool ()
 {
   return unless var ('LIBTOOL');
 
@@ -2485,24 +2401,24 @@ sub handle_libtool
   check_user_variables 'LIBTOOLFLAGS';
 
   # Output the libtool compilation rules.
-  $output_rules .= &file_contents ('libtool',
-                                  new Automake::Location,
+  $output_rules .= file_contents ('libtool',
+                                 new Automake::Location,
                                   LTRMS => join ("\n", @libtool_rms));
 }
 
 # handle_programs ()
 # ------------------
 # Handle C programs.
-sub handle_programs
+sub handle_programs ()
 {
-  my @proglist = &am_install_var ('progs', 'PROGRAMS',
-                                 'bin', 'sbin', 'libexec', 'pkglibexec',
-                                 'noinst', 'check');
+  my @proglist = am_install_var ('progs', 'PROGRAMS',
+                                'bin', 'sbin', 'libexec', 'pkglibexec',
+                                'noinst', 'check');
   return if ! @proglist;
   $must_handle_compiled_objects = 1;
 
   my $seen_global_libobjs =
-    var ('LDADD') && &handle_lib_objects ('', 'LDADD');
+    var ('LDADD') && handle_lib_objects ('', 'LDADD');
 
   foreach my $pair (@proglist)
     {
@@ -2514,30 +2430,30 @@ sub handle_programs
       $known_programs{$one_file} = $where;
 
       # Canonicalize names and check for misspellings.
-      my $xname = &check_canonical_spelling ($one_file, '_LDADD', '_LDFLAGS',
-                                            '_SOURCES', '_OBJECTS',
-                                            '_DEPENDENCIES');
+      my $xname = check_canonical_spelling ($one_file, '_LDADD', '_LDFLAGS',
+                                            '_SOURCES', '_OBJECTS',
+                                            '_DEPENDENCIES');
 
       $where->push_context ("while processing program '$one_file'");
       $where->set (INTERNAL->get);
 
-      my $linker = &handle_source_transform ($xname, $one_file, $obj, $where,
-                                            NONLIBTOOL => 1, LIBTOOL => 0);
+      my $linker = handle_source_transform ($xname, $one_file, $obj, $where,
+                                            NONLIBTOOL => 1, LIBTOOL => 0);
 
       if (var ($xname . "_LDADD"))
        {
-         $seen_libobjs = &handle_lib_objects ($xname, $xname . '_LDADD');
+         $seen_libobjs = handle_lib_objects ($xname, $xname . '_LDADD');
        }
       else
        {
          # User didn't define prog_LDADD override.  So do it.
-         &define_variable ($xname . '_LDADD', '$(LDADD)', $where);
+         define_variable ($xname . '_LDADD', '$(LDADD)', $where);
 
          # This does a bit too much work.  But we need it to
          # generate _DEPENDENCIES when appropriate.
          if (var ('LDADD'))
            {
-             $seen_libobjs = &handle_lib_objects ($xname, 'LDADD');
+             $seen_libobjs = handle_lib_objects ($xname, 'LDADD');
            }
        }
 
@@ -2549,7 +2465,7 @@ sub handle_programs
       set_seen ($xname . '_LDFLAGS');
 
       # Determine program to use for link.
-      my($xlink, $vlink) = &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 in a subdirectory,
@@ -2558,24 +2474,24 @@ sub handle_programs
 
       $libtool_clean_directories{dirname ($one_file)} = 1;
 
-      $output_rules .= &file_contents ('program',
-                                      $where,
-                                      PROGRAM  => $one_file,
-                                      XPROGRAM => $xname,
-                                      XLINK    => $xlink,
-                                      VERBOSE  => $vlink,
-                                      DIRSTAMP => $dirstamp,
-                                      EXEEXT   => '$(EXEEXT)');
+      $output_rules .= file_contents ('program',
+                                      $where,
+                                      PROGRAM  => $one_file,
+                                      XPROGRAM => $xname,
+                                      XLINK    => $xlink,
+                                      VERBOSE  => $vlink,
+                                      DIRSTAMP => $dirstamp,
+                                      EXEEXT   => '$(EXEEXT)');
 
       if ($seen_libobjs || $seen_global_libobjs)
        {
          if (var ($xname . '_LDADD'))
            {
-             &check_libobjs_sources ($xname, $xname . '_LDADD');
+             check_libobjs_sources ($xname, $xname . '_LDADD');
            }
          elsif (var ('LDADD'))
            {
-             &check_libobjs_sources ($xname, 'LDADD');
+             check_libobjs_sources ($xname, 'LDADD');
            }
        }
     }
@@ -2585,10 +2501,10 @@ sub handle_programs
 # handle_libraries ()
 # -------------------
 # Handle libraries.
-sub handle_libraries
+sub handle_libraries ()
 {
-  my @liblist = &am_install_var ('libs', 'LIBRARIES',
-                                'lib', 'pkglib', 'noinst', 'check');
+  my @liblist = am_install_var ('libs', 'LIBRARIES',
+                                'lib', 'pkglib', 'noinst', 'check');
   return if ! @liblist;
   $must_handle_compiled_objects = 1;
 
@@ -2601,9 +2517,9 @@ sub handle_libraries
       $var->requires_variables ('library used', 'RANLIB');
     }
 
-  &define_variable ('AR', 'ar', INTERNAL);
-  &define_variable ('ARFLAGS', 'cru', INTERNAL);
-  &define_verbose_tagvar ('AR');
+  define_variable ('AR', 'ar', INTERNAL);
+  define_variable ('ARFLAGS', 'cru', INTERNAL);
+  define_verbose_tagvar ('AR');
 
   foreach my $pair (@liblist)
     {
@@ -2630,27 +2546,27 @@ sub handle_libraries
       my $obj = '.$(OBJEXT)';
 
       # Canonicalize names and check for misspellings.
-      my $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_SOURCES',
-                                           '_OBJECTS', '_DEPENDENCIES',
-                                           '_AR');
+      my $xlib = check_canonical_spelling ($onelib, '_LIBADD', '_SOURCES',
+                                           '_OBJECTS', '_DEPENDENCIES',
+                                           '_AR');
 
       if (! var ($xlib . '_AR'))
        {
-         &define_variable ($xlib . '_AR', '$(AR) $(ARFLAGS)', $where);
+         define_variable ($xlib . '_AR', '$(AR) $(ARFLAGS)', $where);
        }
 
       # Generate support for conditional object inclusion in
       # libraries.
       if (var ($xlib . '_LIBADD'))
        {
-         if (&handle_lib_objects ($xlib, $xlib . '_LIBADD'))
+         if (handle_lib_objects ($xlib, $xlib . '_LIBADD'))
            {
              $seen_libobjs = 1;
            }
        }
       else
        {
-         &define_variable ($xlib . "_LIBADD", '', $where);
+         define_variable ($xlib . "_LIBADD", '', $where);
        }
 
       reject_var ($xlib . '_LDADD',
@@ -2660,8 +2576,8 @@ sub handle_libraries
       set_seen ($xlib . '_DEPENDENCIES');
       set_seen ('EXTRA_' . $xlib . '_DEPENDENCIES');
 
-      &handle_source_transform ($xlib, $onelib, $obj, $where,
-                               NONLIBTOOL => 1, LIBTOOL => 0);
+      handle_source_transform ($xlib, $onelib, $obj, $where,
+                               NONLIBTOOL => 1, LIBTOOL => 0);
 
       # If the resulting library lies in a subdirectory,
       # make sure this directory will exist.
@@ -2669,19 +2585,19 @@ sub handle_libraries
       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);
+      $output_rules .= file_contents ('library',
+                                       $where,
+                                       VERBOSE  => $verbose,
+                                       SILENT   => $silent,
+                                       LIBRARY  => $onelib,
+                                       XLIBRARY => $xlib,
+                                       DIRSTAMP => $dirstamp);
 
       if ($seen_libobjs)
        {
          if (var ($xlib . '_LIBADD'))
            {
-             &check_libobjs_sources ($xlib, $xlib . '_LIBADD');
+             check_libobjs_sources ($xlib, $xlib . '_LIBADD');
            }
        }
 
@@ -2698,10 +2614,10 @@ sub handle_libraries
 # handle_ltlibraries ()
 # ---------------------
 # Handle shared libraries.
-sub handle_ltlibraries
+sub handle_ltlibraries ()
 {
-  my @liblist = &am_install_var ('ltlib', 'LTLIBRARIES',
-                                'noinst', 'lib', 'pkglib', 'check');
+  my @liblist = am_install_var ('ltlib', 'LTLIBRARIES',
+                                'noinst', 'lib', 'pkglib', 'check');
   return if ! @liblist;
   $must_handle_compiled_objects = 1;
 
@@ -2803,9 +2719,9 @@ sub handle_ltlibraries
       my $obj = '.lo';
 
       # Canonicalize names and check for misspellings.
-      my $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_LDFLAGS',
-                                           '_SOURCES', '_OBJECTS',
-                                           '_DEPENDENCIES');
+      my $xlib = check_canonical_spelling ($onelib, '_LIBADD', '_LDFLAGS',
+                                           '_SOURCES', '_OBJECTS',
+                                           '_DEPENDENCIES');
 
       # Check that the library fits the standard naming convention.
       my $libname_rx = '^lib.*\.la';
@@ -2852,25 +2768,25 @@ sub handle_ltlibraries
       # libraries.
       if (var ($xlib . '_LIBADD'))
        {
-         if (&handle_lib_objects ($xlib, $xlib . '_LIBADD'))
+         if (handle_lib_objects ($xlib, $xlib . '_LIBADD'))
            {
              $seen_libobjs = 1;
            }
        }
       else
        {
-         &define_variable ($xlib . "_LIBADD", '', $where);
+         define_variable ($xlib . "_LIBADD", '', $where);
        }
 
       reject_var ("${xlib}_LDADD",
                  "use '${xlib}_LIBADD', not '${xlib}_LDADD'");
 
 
-      my $linker = &handle_source_transform ($xlib, $onelib, $obj, $where,
-                                            NONLIBTOOL => 0, LIBTOOL => 1);
+      my $linker = handle_source_transform ($xlib, $onelib, $obj, $where,
+                                            NONLIBTOOL => 0, LIBTOOL => 1);
 
       # Determine program to use for link.
-      my($xlink, $vlink) = &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";
@@ -2915,19 +2831,19 @@ sub handle_ltlibraries
       my $dirname = dirname $onelib;
       $libtool_clean_directories{$dirname} = 1;
 
-      $output_rules .= &file_contents ('ltlibrary',
-                                      $where,
-                                      LTLIBRARY  => $onelib,
-                                      XLTLIBRARY => $xlib,
-                                      RPATH      => $rpath,
-                                      XLINK      => $xlink,
-                                      VERBOSE    => $vlink,
-                                      DIRSTAMP   => $dirstamp);
+      $output_rules .= file_contents ('ltlibrary',
+                                      $where,
+                                      LTLIBRARY  => $onelib,
+                                      XLTLIBRARY => $xlib,
+                                      RPATH      => $rpath,
+                                      XLINK      => $xlink,
+                                      VERBOSE    => $vlink,
+                                      DIRSTAMP   => $dirstamp);
       if ($seen_libobjs)
        {
          if (var ($xlib . '_LIBADD'))
            {
-             &check_libobjs_sources ($xlib, $xlib . '_LIBADD');
+             check_libobjs_sources ($xlib, $xlib . '_LIBADD');
            }
        }
 
@@ -2968,14 +2884,14 @@ sub check_typos ()
 
 
 # Handle scripts.
-sub handle_scripts
+sub handle_scripts ()
 {
     # NOTE we no longer automatically clean SCRIPTS, because it is
     # useful to sometimes distribute scripts verbatim.  This happens
     # e.g. in Automake itself.
-    &am_install_var ('-candist', 'scripts', 'SCRIPTS',
-                    'bin', 'sbin', 'libexec', 'pkglibexec', 'pkgdata',
-                    'noinst', 'check');
+    am_install_var ('-candist', 'scripts', 'SCRIPTS',
+                    'bin', 'sbin', 'libexec', 'pkglibexec', 'pkgdata',
+                    'noinst', 'check');
 }
 
 
@@ -2986,8 +2902,8 @@ sub handle_scripts
 ## ------------------------ ##
 
 # ($OUTFILE, $VFILE)
-# &scan_texinfo_file ($FILENAME)
-# ------------------------------
+# scan_texinfo_file ($FILENAME)
+# -----------------------------
 # $OUTFILE     - name of the info file produced by $FILENAME.
 # $VFILE       - name of the version.texi file used (undef if none).
 sub scan_texinfo_file ($)
@@ -3491,7 +3407,7 @@ sub handle_texinfo ()
 
 
 # Handle any man pages.
-sub handle_man_pages
+sub handle_man_pages ()
 {
   reject_var 'MANS', "'MANS' is an anachronism; use 'man_MANS'";
 
@@ -3525,7 +3441,7 @@ sub handle_man_pages
                      $trans_sect_vars{$varname} = 1;
                    }
 
-                 &push_dist_common ($varname)
+                 push_dist_common ($varname)
                    if $pfx eq 'dist_';
                }
            }
@@ -3560,7 +3476,7 @@ sub handle_man_pages
                {
                  $trans_vars{$varname} = 1;
                }
-             &push_dist_common ($varname)
+             push_dist_common ($varname)
                if $pfx eq 'dist_';
            }
        }
@@ -3604,18 +3520,18 @@ sub handle_man_pages
       @unsorted_deps = (keys %notrans_vars, keys %trans_vars,
                         keys %notrans_this_sect, keys %trans_this_sect);
       my @deps = sort @unsorted_deps;
-      $output_rules .= &file_contents ('mans',
-                                      new Automake::Location,
-                                      SECTION           => $section,
-                                      DEPS              => "@deps",
-                                      NOTRANS_MANS      => $notrans_mans,
-                                      NOTRANS_SECT_LIST => 
"@notrans_sect_list",
-                                      HAVE_NOTRANS      => $have_notrans,
-                                      NOTRANS_LIST      => "@notrans_list",
-                                      TRANS_MANS        => $trans_mans,
-                                      TRANS_SECT_LIST   => "@trans_sect_list",
-                                      HAVE_TRANS        => $have_trans,
-                                      TRANS_LIST        => "@trans_list");
+      $output_rules .= file_contents ('mans',
+                                      new Automake::Location,
+                                      SECTION           => $section,
+                                      DEPS              => "@deps",
+                                      NOTRANS_MANS      => $notrans_mans,
+                                      NOTRANS_SECT_LIST => 
"@notrans_sect_list",
+                                      HAVE_NOTRANS      => $have_notrans,
+                                      NOTRANS_LIST      => "@notrans_list",
+                                      TRANS_MANS        => $trans_mans,
+                                      TRANS_SECT_LIST   => "@trans_sect_list",
+                                      HAVE_TRANS        => $have_trans,
+                                      TRANS_LIST        => "@trans_list");
     }
 
   @unsorted_deps  = (keys %notrans_vars, keys %trans_vars,
@@ -3630,16 +3546,16 @@ sub handle_man_pages
 }
 
 # Handle DATA variables.
-sub handle_data
+sub handle_data ()
 {
-    &am_install_var ('-noextra', '-candist', 'data', 'DATA',
-                    'data', 'dataroot', 'doc', 'dvi', 'html', 'pdf',
-                    'ps', 'sysconf', 'sharedstate', 'localstate',
-                    'pkgdata', 'lisp', 'noinst', 'check');
+    am_install_var ('-noextra', '-candist', 'data', 'DATA',
+                    'data', 'dataroot', 'doc', 'dvi', 'html', 'pdf',
+                    'ps', 'sysconf', 'sharedstate', 'localstate',
+                    'pkgdata', 'lisp', 'noinst', 'check');
 }
 
 # Handle TAGS.
-sub handle_tags
+sub handle_tags ()
 {
     my @config;
     foreach my $spec (@config_headers)
@@ -3661,7 +3577,7 @@ sub handle_tags
     if (rvar('am__tagged_files')->value_as_list_recursive
           || var ('ETAGS_ARGS') || var ('SUBDIRS'))
       {
-       $output_rules .= &file_contents ('tags', new Automake::Location);
+       $output_rules .= file_contents ('tags', new Automake::Location);
        set_seen 'TAGS_DEPENDENCIES';
       }
     else
@@ -3770,7 +3686,7 @@ sub handle_dist ()
   if ($relative_dir eq '.'
       && $config_aux_dir_set_in_configure_ac)
     {
-      if (! &is_make_dir ($config_aux_dir))
+      if (! is_make_dir ($config_aux_dir))
        {
          $check_aux = 1;
        }
@@ -3781,14 +3697,14 @@ sub handle_dist ()
          # The file might be absent, but if it can be built it's ok.
          || rule $cfile)
        {
-         &push_dist_common ($cfile);
+         push_dist_common ($cfile);
        }
 
       # Don't use 'elsif' here because a file might meaningfully
       # appear in both directories.
       if ($check_aux && dir_has_case_matching_file ($config_aux_dir, $cfile))
        {
-         &push_dist_common ("$config_aux_dir/$cfile")
+         push_dist_common ("$config_aux_dir/$cfile")
        }
     }
 
@@ -3816,7 +3732,7 @@ sub handle_dist ()
   # Files to distributed.  Don't use ->value_as_list_recursive
   # as it recursively expands '$(dist_pkgdata_DATA)' etc.
   my @dist_common = split (' ', rvar ('DIST_COMMON')->variable_value);
-  @dist_common = uniq @dist_common;
+  @dist_common = uniq (@dist_common);
   variable_delete 'DIST_COMMON';
   define_pretty_variable ('DIST_COMMON', TRUE, INTERNAL, @dist_common);
 
@@ -3837,10 +3753,10 @@ sub handle_dist ()
   my $flm = option ('filename-length-max');
   my $filename_filter = $flm ? '.' x $flm->[1] : '';
 
-  $output_rules .= &file_contents ('distdir',
-                                  new Automake::Location,
-                                  %transform,
-                                  FILENAME_FILTER => $filename_filter);
+  $output_rules .= file_contents ('distdir',
+                                 new Automake::Location,
+                                 %transform,
+                                 FILENAME_FILTER => $filename_filter);
 }
 
 
@@ -3900,8 +3816,8 @@ sub check_directories_in_var ($)
      skip_ac_subst => 1);
 }
 
-# &handle_subdirs ()
-# ------------------
+# handle_subdirs ()
+# -----------------
 # Handle subdirectories.
 sub handle_subdirs ()
 {
@@ -3915,14 +3831,14 @@ sub handle_subdirs ()
   check_directories_in_var $dsubdirs
     if $dsubdirs;
 
-  $output_rules .= &file_contents ('subdirs', new Automake::Location);
+  $output_rules .= file_contents ('subdirs', new Automake::Location);
   rvar ('RECURSIVE_TARGETS')->rdef (TRUE)->{'pretty'} = VAR_SORTED; # Gross!
 }
 
 
 # ($REGEN, @DEPENDENCIES)
-# &scan_aclocal_m4
-# ----------------
+# scan_aclocal_m4
+# ---------------
 # If aclocal.m4 creation is automated, return the list of its dependencies.
 sub scan_aclocal_m4 ()
 {
@@ -3933,7 +3849,7 @@ sub scan_aclocal_m4 ()
 
   if (-f 'aclocal.m4')
     {
-      &define_variable ("ACLOCAL_M4", '$(top_srcdir)/aclocal.m4', INTERNAL);
+      define_variable ("ACLOCAL_M4", '$(top_srcdir)/aclocal.m4', INTERNAL);
 
       my $aclocal = new Automake::XFile "< aclocal.m4";
       my $line = $aclocal->getline;
@@ -3965,13 +3881,13 @@ sub substitute_ac_subst_variables_worker($)
 sub substitute_ac_subst_variables ($)
 {
   my ($text) = @_;
-  $text =~ s/\${([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
+  $text =~ s/\${([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
   return $text;
 }
 
 # @DEPENDENCIES
-# &prepend_srcdir (@INPUTS)
-# -------------------------
+# prepend_srcdir (@INPUTS)
+# ------------------------
 # Prepend $(srcdir) or $(top_srcdir) to all @INPUTS.  The idea is that
 # if an input file has a directory part the same as the current
 # directory, then the directory part is simply replaced by $(srcdir).
@@ -4044,8 +3960,8 @@ sub rewrite_inputs_into_dependencies ($@)
 
 
 
-# &handle_configure ($MAKEFILE_AM, $MAKEFILE_IN, $MAKEFILE, @INPUTS)
-# ------------------------------------------------------------------
+# handle_configure ($MAKEFILE_AM, $MAKEFILE_IN, $MAKEFILE, @INPUTS)
+# -----------------------------------------------------------------
 # Handle remaking and configure stuff.
 # We need the name of the input file, to do proper remaking rules.
 sub handle_configure ($$$@)
@@ -4090,7 +4006,7 @@ sub handle_configure ($$$@)
 
   if ($relative_dir eq '.')
     {
-      &push_dist_common ('acconfig.h')
+      push_dist_common ('acconfig.h')
        if -f 'acconfig.h';
     }
 
@@ -4109,7 +4025,7 @@ sub handle_configure ($$$@)
       # directory and the header's directory doesn't have a
       # Makefile, then we also want to build the header.
       if ($relative_dir eq $config_h_dir
-         || ($relative_dir eq '.' && ! &is_make_dir ($config_h_dir)))
+         || ($relative_dir eq '.' && ! is_make_dir ($config_h_dir)))
        {
          my ($cn_sans_dir, $stamp_dir);
          if ($relative_dir eq $config_h_dir)
@@ -4256,7 +4172,7 @@ sub handle_configure ($$$@)
       my $fd = dirname ($file);
       if ($fd ne $relative_dir)
        {
-         if ($relative_dir eq '.' && ! &is_make_dir ($fd))
+         if ($relative_dir eq '.' && ! is_make_dir ($fd))
            {
              $local = $file;
            }
@@ -4311,7 +4227,7 @@ sub handle_configure ($$$@)
          my $fd = dirname ($link);
          if ($fd ne $relative_dir)
            {
-             if ($relative_dir eq '.' && ! &is_make_dir ($fd))
+             if ($relative_dir eq '.' && ! is_make_dir ($fd))
                {
                  $local = $link;
                }
@@ -4339,7 +4255,7 @@ sub handle_configure ($$$@)
          # At the top-level ('.') we also distribute files whose
          # directory does not have a Makefile.
          if (($fd eq $relative_dir)
-             || ($relative_dir eq '.' && ! &is_make_dir ($fd)))
+             || ($relative_dir eq '.' && ! is_make_dir ($fd)))
            {
              # The following will distribute $file as a side-effect when
              # it is appropriate (i.e., when $file is not already an output).
@@ -4357,19 +4273,19 @@ sub handle_configure ($$$@)
 }
 
 # Handle C headers.
-sub handle_headers
+sub handle_headers ()
 {
-    my @r = &am_install_var ('-defaultdist', 'header', 'HEADERS', 'include',
-                            'oldinclude', 'pkginclude',
-                            'noinst', 'check');
+    my @r = am_install_var ('-defaultdist', 'header', 'HEADERS', 'include',
+                           'oldinclude', 'pkginclude',
+                           'noinst', 'check');
     foreach (@r)
     {
       next unless $_->[1] =~ /\..*$/;
-      &saw_extension ($&);
+      saw_extension ($&);
     }
 }
 
-sub handle_gettext
+sub handle_gettext ()
 {
   return if ! $seen_gettext || $relative_dir ne '.';
 
@@ -4426,7 +4342,7 @@ sub handle_gettext
 }
 
 # Handle footer elements.
-sub handle_footer
+sub handle_footer ()
 {
     reject_rule ('.SUFFIXES',
                 "use variable 'SUFFIXES', not target '.SUFFIXES'");
@@ -4464,7 +4380,7 @@ sub handle_footer
 # Generate 'make install' rules.
 sub handle_install ()
 {
-  $output_rules .= &file_contents
+  $output_rules .= file_contents
     ('install',
      new Automake::Location,
      maybe_BUILT_SOURCES => (set_seen ('BUILT_SOURCES')
@@ -4500,8 +4416,8 @@ sub handle_all ($)
     push (@all, "all-local")
       if user_phony_rule "all-local";
 
-    &pretty_print_rule ("all-am:", "\t\t", @all);
-    &depend ('.PHONY', 'all-am', 'all');
+    pretty_print_rule ("all-am:", "\t\t", @all);
+    depend ('.PHONY', 'all-am', 'all');
 
 
     # Output 'all'.
@@ -4557,7 +4473,7 @@ sub handle_user_recursion ()
       # associated 'foo-local' rule; we define it as an empty rule by
       # default, so that the user can transparently extend it in his
       # own Makefile.am.
-      pretty_print_rule ("$target-local:");
+      pretty_print_rule ("$target-local:", '', '');
       # $target-recursive might as well be undefined, so do not add
       # it here; it's taken care of in subdirs.am anyway.
       depend (".PHONY", "$target-am", "$target-local");
@@ -4565,8 +4481,8 @@ sub handle_user_recursion ()
 }
 
 
-# &do_check_merge_target ()
-# -------------------------
+# do_check_merge_target ()
+# ------------------------
 # Handle check merge target specially.
 sub do_check_merge_target ()
 {
@@ -4644,7 +4560,7 @@ sub handle_clean ($)
       push @{$rms{$when}}, "\t-$rm\n";
     }
 
-  $output_rules .= &file_contents
+  $output_rules .= file_contents
     ('clean',
      new Automake::Location,
      MOSTLYCLEAN_RMS      => join ('', sort @{$rms{&MOSTLY_CLEAN}}),
@@ -4656,10 +4572,9 @@ sub handle_clean ($)
 }
 
 
-# &target_cmp ($A, $B)
-# --------------------
-# Subroutine for &handle_factored_dependencies to let '.PHONY' and
-# other '.TARGETS' be last.
+# Subroutine for handle_factored_dependencies() to let '.PHONY' and
+# other '.TARGETS' be last.  This is meant to be used as a comparison
+# subroutine passed to the sort built-int.
 sub target_cmp
 {
   return 0 if $a eq $b;
@@ -4675,10 +4590,10 @@ sub target_cmp
 }
 
 
-# &handle_factored_dependencies ()
-# --------------------------------
+# handle_factored_dependencies ()
+# -------------------------------
 # Handle everything related to gathered targets.
-sub handle_factored_dependencies
+sub handle_factored_dependencies ()
 {
   # Reject bad hooks.
   foreach my $utarg ('uninstall-data-local', 'uninstall-data-hook',
@@ -4755,7 +4670,7 @@ sub handle_factored_dependencies
       foreach my $cond (@undefined_conds)
        {
          my $condstr = $cond->subst_string;
-         &pretty_print_rule ("$condstr$_:", "$condstr\t", @uniq_deps);
+         pretty_print_rule ("$condstr$_:", "$condstr\t", @uniq_deps);
          $output_rules .= $actions{$_} if defined $actions{$_};
          $output_rules .= "\n";
        }
@@ -4763,15 +4678,15 @@ sub handle_factored_dependencies
 }
 
 
-# &handle_tests_dejagnu ()
-# ------------------------
-sub handle_tests_dejagnu
+# handle_tests_dejagnu ()
+# -----------------------
+sub handle_tests_dejagnu ()
 {
     push (@check_tests, 'check-DEJAGNU');
     $output_rules .= file_contents ('dejagnu', new Automake::Location);
 }
 
-sub handle_per_suffix_test
+sub handle_per_suffix_test ($%)
 {
   my ($test_suffix, %transform) = @_;
   my ($pfx, $generic, $am_exeext);
@@ -4835,11 +4750,11 @@ sub is_valid_test_extension ($)
 }
 
 # Handle TESTS variable and other checks.
-sub handle_tests
+sub handle_tests ()
 {
   if (option 'dejagnu')
     {
-      &handle_tests_dejagnu;
+      handle_tests_dejagnu;
     }
   else
     {
@@ -4854,9 +4769,9 @@ sub handle_tests
     {
       push (@check_tests, 'check-TESTS');
       my $check_deps = "@check";
-      $output_rules .= &file_contents ('check', new Automake::Location,
-                                      SERIAL_TESTS => !! option 'serial-tests',
-                                       CHECK_DEPS => $check_deps);
+      $output_rules .= file_contents ('check', new Automake::Location,
+                                      SERIAL_TESTS => !! option 'serial-tests',
+                                      CHECK_DEPS => $check_deps);
 
       # Tests that are known programs should have $(EXEEXT) appended.
       # For matching purposes, we need to adjust XFAIL_TESTS as well.
@@ -4969,10 +4884,10 @@ sub handle_tests
 }
 
 # Handle Emacs Lisp.
-sub handle_emacs_lisp
+sub handle_emacs_lisp ()
 {
-  my @elfiles = &am_install_var ('-candist', 'lisp', 'LISP',
-                                'lisp', 'noinst');
+  my @elfiles = am_install_var ('-candist', 'lisp', 'LISP',
+                                'lisp', 'noinst');
 
   return if ! @elfiles;
 
@@ -4990,23 +4905,23 @@ sub handle_emacs_lisp
 }
 
 # Handle Python
-sub handle_python
+sub handle_python ()
 {
-  my @pyfiles = &am_install_var ('-defaultdist', 'python', 'PYTHON',
-                                'noinst');
+  my @pyfiles = am_install_var ('-defaultdist', 'python', 'PYTHON',
+                                'noinst');
   return if ! @pyfiles;
 
   require_variables ($pyfiles[0][0], "Python sources seen", TRUE, 'PYTHON');
   require_conf_file ($pyfiles[0][0], FOREIGN, 'py-compile');
-  &define_variable ('py_compile', "$am_config_aux_dir/py-compile", INTERNAL);
+  define_variable ('py_compile', "$am_config_aux_dir/py-compile", INTERNAL);
 }
 
 # Handle Java.
-sub handle_java
+sub handle_java ()
 {
-    my @sourcelist = &am_install_var ('-candist',
-                                     'java', 'JAVA',
-                                     'noinst', 'check');
+    my @sourcelist = am_install_var ('-candist',
+                                     'java', 'JAVA',
+                                     'noinst', 'check');
     return if ! @sourcelist;
 
     my @prefixes = am_primary_prefixes ('JAVA', 1,
@@ -5047,7 +4962,7 @@ sub handle_java
 
 
 # Handle some of the minor options.
-sub handle_minor_options
+sub handle_minor_options ()
 {
   if (option 'readme-alpha')
     {
@@ -5072,8 +4987,8 @@ sub handle_minor_options
 ################################################################
 
 # ($OUTPUT, @INPUTS)
-# &split_config_file_spec ($SPEC)
-# -------------------------------
+# split_config_file_spec ($SPEC)
+# ------------------------------
 # Decode the Autoconf syntax for config files (files, headers, links
 # etc.).
 sub split_config_file_spec ($)
@@ -5110,8 +5025,8 @@ sub locate_am (@)
 
 my %make_list;
 
-# &scan_autoconf_config_files ($WHERE, $CONFIG-FILES)
-# ---------------------------------------------------
+# scan_autoconf_config_files ($WHERE, $CONFIG-FILES)
+# --------------------------------------------------
 # Study $CONFIG-FILES which is the first argument to AC_CONFIG_FILES
 # (or AC_OUTPUT).
 sub scan_autoconf_config_files ($$)
@@ -5152,8 +5067,8 @@ sub scan_autoconf_config_files ($$)
 }
 
 
-# &scan_autoconf_traces ($FILENAME)
-# ---------------------------------
+# scan_autoconf_traces ($FILENAME)
+# --------------------------------
 sub scan_autoconf_traces ($)
 {
   my ($filename) = @_;
@@ -5449,7 +5364,7 @@ EOF
 }
 
 
-# &scan_autoconf_files ()
+# scan_autoconf_files ()
 # -----------------------
 # Scan it (and possibly 'aclocal.m4') for interesting things.
 # We must scan aclocal.m4 because there might be AC_SUBSTs and such there.
@@ -5535,7 +5450,7 @@ sub scan_autoconf_files ()
 ################################################################
 
 # Do any extra checking for GNU standards.
-sub check_gnu_standards
+sub check_gnu_standards ()
 {
   if ($relative_dir eq '.')
     {
@@ -5567,7 +5482,7 @@ sub check_gnu_standards
 }
 
 # Do any extra checking for GNITS standards.
-sub check_gnits_standards
+sub check_gnits_standards ()
 {
   if ($relative_dir eq '.')
     {
@@ -5593,7 +5508,7 @@ sub check_gnits_standards
 
 # This is just a convenience function that can be used to determine
 # when a subdir object should be used.
-sub lang_sub_obj
+sub lang_sub_obj ()
 {
     return option 'subdir-objects' ? LANG_SUBDIR : LANG_PROCESS;
 }
@@ -5619,7 +5534,7 @@ sub lang_yacc_rewrite
 {
     my ($directory, $base, $ext) = @_;
 
-    my $r = &lang_sub_obj;
+    my $r = lang_sub_obj;
     (my $newext = $ext) =~ tr/y/c/;
     return ($r, $newext);
 }
@@ -5630,7 +5545,7 @@ sub lang_lex_rewrite
 {
     my ($directory, $base, $ext) = @_;
 
-    my $r = &lang_sub_obj;
+    my $r = lang_sub_obj;
     (my $newext = $ext) =~ tr/l/c/;
     return ($r, $newext);
 }
@@ -5742,7 +5657,7 @@ sub lang_vala_finish_target ($$)
 # Add output rules to invoke valac and create stamp file as a witness
 # to handle multiple outputs. This function is called after all source
 # file processing is done.
-sub lang_vala_finish
+sub lang_vala_finish ()
 {
   my ($self) = @_;
 
@@ -5760,7 +5675,7 @@ sub lang_vala_finish
 # The built .c files should be cleaned only on maintainer-clean
 # as the .c files are distributed. This function is called for each
 # .vala source file.
-sub lang_vala_target_hook
+sub lang_vala_target_hook ($$$$%)
 {
   my ($self, $aggregate, $output, $input, %transform) = @_;
 
@@ -5769,7 +5684,7 @@ sub lang_vala_target_hook
 
 # This is a yacc helper which is called whenever we have decided to
 # compile a yacc file.
-sub lang_yacc_target_hook
+sub lang_yacc_target_hook ($$$$%)
 {
     my ($self, $aggregate, $output, $input, %transform) = @_;
 
@@ -5828,9 +5743,9 @@ sub lang_yacc_target_hook
              . "address@hidden test ! -f \$@; then \$(MAKE) \$(AM_MAKEFLAGS) 
$output; else :; fi\n";
          }
        # Distribute the generated file, unless its .y source was
-       # listed in a nodist_ variable.  (&handle_source_transform
+       # listed in a nodist_ variable.  (handle_source_transform()
        # will set DIST_SOURCE.)
-       &push_dist_common ($header)
+       push_dist_common ($header)
          if $transform{'DIST_SOURCE'};
 
        # The GNU rules say that yacc/lex output files should be removed
@@ -5845,7 +5760,7 @@ sub lang_yacc_target_hook
 
 # This is a lex helper which is called whenever we have decided to
 # compile a lex file.
-sub lang_lex_target_hook
+sub lang_lex_target_hook ($$$$%)
 {
     my ($self, $aggregate, $output, $input, %transform) = @_;
     # The GNU rules say that yacc/lex output files should be removed
@@ -5856,17 +5771,17 @@ sub lang_lex_target_hook
 }
 
 # This is a helper for both lex and yacc.
-sub yacc_lex_finish_helper
+sub yacc_lex_finish_helper ()
 {
   return if defined $language_scratch{'lex-yacc-done'};
   $language_scratch{'lex-yacc-done'} = 1;
 
   # FIXME: for now, no line number.
   require_conf_file ($configure_ac, FOREIGN, 'ylwrap');
-  &define_variable ('YLWRAP', "$am_config_aux_dir/ylwrap", INTERNAL);
+  define_variable ('YLWRAP', "$am_config_aux_dir/ylwrap", INTERNAL);
 }
 
-sub lang_yacc_finish
+sub lang_yacc_finish ()
 {
   return if defined $language_scratch{'yacc-done'};
   $language_scratch{'yacc-done'} = 1;
@@ -5877,7 +5792,7 @@ sub lang_yacc_finish
 }
 
 
-sub lang_lex_finish
+sub lang_lex_finish ()
 {
   return if defined $language_scratch{'lex-done'};
   $language_scratch{'lex-done'} = 1;
@@ -5890,7 +5805,7 @@ sub lang_lex_finish
 # precedence.  This is lame, but something has to have global
 # knowledge in order to eliminate the conflict.  Add more linkers as
 # required.
-sub resolve_linker
+sub resolve_linker (%)
 {
     my (%linkers) = @_;
 
@@ -5902,7 +5817,7 @@ sub resolve_linker
 }
 
 # Called to indicate that an extension was used.
-sub saw_extension
+sub saw_extension ($)
 {
     my ($ext) = @_;
     $extension_seen{$ext} = 1;
@@ -5928,7 +5843,7 @@ sub register_language (%)
   $option{'nodist_specific'} = 0
     unless defined $option{'nodist_specific'};
 
-  my $lang = new Language (%option);
+  my $lang = new Automake::Language (%option);
 
   # Fill indexes.
   $extension_map{$_} = $lang->name foreach @{$lang->extensions};
@@ -5954,7 +5869,7 @@ sub register_language (%)
   # Update the $suffix_rule map.
   foreach my $suffix (@{$lang->extensions})
     {
-      foreach my $dest (&{$lang->output_extensions} ($suffix))
+      foreach my $dest ($lang->output_extensions->($suffix))
        {
          register_suffix_rule (INTERNAL, $suffix, $dest);
        }
@@ -5984,9 +5899,9 @@ sub derive_suffix ($$)
 ################################################################
 
 # Pretty-print something and append to output_rules.
-sub pretty_print_rule
+sub pretty_print_rule ($$@)
 {
-    $output_rules .= &makefile_wrap (@_);
+    $output_rules .= makefile_wrap (shift, shift, @_);
 }
 
 
@@ -6124,8 +6039,8 @@ sub cond_stack_endif ($$$)
 ## ------------------------ ##
 
 
-# &define_pretty_variable ($VAR, $COND, $WHERE, @VALUE)
-# -----------------------------------------------------
+# define_pretty_variable ($VAR, $COND, $WHERE, @VALUE)
+# ----------------------------------------------------
 # Like define_variable, but the value is a list, and the variable may
 # be defined conditionally.  The second argument is the condition
 # under which the value should be defined; this should be the empty
@@ -6195,14 +6110,14 @@ sub define_compiler_variable ($)
     my $libtool_tag = '';
     $libtool_tag = '--tag=' . $lang->libtool_tag . ' '
       if $lang->libtool_tag && exists $libtool_tags{$lang->libtool_tag};
-    &define_variable ($var, $value, INTERNAL);
+    define_variable ($var, $value, INTERNAL);
     if (var ('LIBTOOL'))
       {
        my $verbose = define_verbose_libtool ();
-       &define_variable ("LT$var",
-                         "\$(LIBTOOL) $verbose $libtool_tag\$(AM_LIBTOOLFLAGS) 
"
-                         . "\$(LIBTOOLFLAGS) --mode=compile $value",
-                         INTERNAL);
+       define_variable ("LT$var",
+                         "\$(LIBTOOL) $verbose $libtool_tag\$(AM_LIBTOOLFLAGS)"
+                         . " \$(LIBTOOLFLAGS) --mode=compile $value",
+                         INTERNAL);
       }
     define_verbose_tagvar ($lang->ccer || 'GEN');
 }
@@ -6219,7 +6134,7 @@ sub define_linker_variable ($)
     $libtool_tag = '--tag=' . $lang->libtool_tag . ' '
       if $lang->libtool_tag && exists $libtool_tags{$lang->libtool_tag};
     # CCLD = $(CC).
-    &define_variable ($lang->lder, $lang->ld, INTERNAL);
+    define_variable ($lang->lder, $lang->ld, INTERNAL);
     # CCLINK = $(CCLD) blah blah...
     my $link = '';
     if (var ('LIBTOOL'))
@@ -6228,9 +6143,9 @@ sub define_linker_variable ($)
        $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');
+    define_variable ($lang->linker, $link . $lang->link, INTERNAL);
+    define_variable ($lang->compiler, $lang, INTERNAL);
+    define_verbose_tagvar ($lang->lder || 'GEN');
 }
 
 sub define_per_target_linker_variable ($$)
@@ -6277,14 +6192,14 @@ sub define_per_target_linker_variable ($$)
   return ($lang->linker, $lang->lder)
     if $link_command eq $orig_command;
 
-  &define_variable ("${target}_LINK", $link_command, INTERNAL);
+  define_variable ("${target}_LINK", $link_command, INTERNAL);
   return ("${target}_LINK", $lang->lder);
 }
 
 ################################################################
 
-# &check_trailing_slash ($WHERE, $LINE)
-# -------------------------------------
+# check_trailing_slash ($WHERE, $LINE)
+# ------------------------------------
 # Return 1 iff $LINE ends with a slash.
 # Might modify $LINE.
 sub check_trailing_slash ($\$)
@@ -6302,8 +6217,8 @@ sub check_trailing_slash ($\$)
 }
 
 
-# &read_am_file ($AMFILE, $WHERE)
-# -------------------------------
+# read_am_file ($AMFILE, $WHERE)
+# ------------------------------
 # Read Makefile.am and set up %contents.  Simultaneously copy lines
 # from Makefile.am into $output_trailer, or define variables as
 # appropriate.  NOTE we put rules in the trailer section.  We want
@@ -6557,7 +6472,7 @@ sub read_am_file ($$)
                $path = $relative_dir . "/" . $path if $relative_dir ne '.';
              }
            $where->push_context ("'$path' included from here");
-           &read_am_file ($path, $where);
+           read_am_file ($path, $where);
            $where->pop_context;
        }
        else
@@ -6594,7 +6509,7 @@ sub read_am_file ($$)
 # ----------------------------
 # A helper for read_main_am_file which initializes configure variables
 # and variables from header-vars.am.
-sub define_standard_variables
+sub define_standard_variables ()
 {
   my $saved_output_vars = $output_vars;
   my ($comments, undef, $rules) =
@@ -6603,7 +6518,7 @@ sub define_standard_variables
 
   foreach my $var (sort keys %configure_vars)
     {
-      &define_configure_variable ($var);
+      define_configure_variable ($var);
     }
 
   $output_vars .= $comments . $rules;
@@ -6627,10 +6542,10 @@ sub read_main_am_file ($$)
 
     # We want to predefine as many variables as possible.  This lets
     # the user set them with '+=' in Makefile.am.
-    &define_standard_variables;
+    define_standard_variables;
 
     # Read user file, which might override some of our values.
-    &read_am_file ($amfile, new Automake::Location);
+    read_am_file ($amfile, new Automake::Location);
 }
 
 
@@ -6638,10 +6553,10 @@ sub read_main_am_file ($$)
 ################################################################
 
 # $FLATTENED
-# &flatten ($STRING)
-# ------------------
+# flatten ($STRING)
+# -----------------
 # Flatten the $STRING and return the result.
-sub flatten
+sub flatten ($)
 {
   $_ = shift;
 
@@ -6771,8 +6686,8 @@ sub preprocess_file ($%)
 
 
 # @PARAGRAPHS
-# &make_paragraphs ($MAKEFILE, [%TRANSFORM])
-# ------------------------------------------
+# make_paragraphs ($MAKEFILE, [%TRANSFORM])
+# -----------------------------------------
 # Load a $MAKEFILE, apply the %TRANSFORM, and return it as a list of
 # paragraphs.
 sub make_paragraphs ($%)
@@ -6817,8 +6732,8 @@ sub make_paragraphs ($%)
 
 
 # ($COMMENT, $VARIABLES, $RULES)
-# &file_contents_internal ($IS_AM, $FILE, $WHERE, [%TRANSFORM])
-# -------------------------------------------------------------
+# file_contents_internal ($IS_AM, $FILE, $WHERE, [%TRANSFORM])
+# ------------------------------------------------------------
 # Return contents of a file from $libdir/am, automatically skipping
 # macros or rules which are already known. $IS_AM iff the caller is
 # reading an Automake file (as opposed to the user's Makefile.am).
@@ -6916,7 +6831,7 @@ sub file_contents_internal ($$$%)
          my ($targets, $dependencies) = ($1, $2);
          # Remove the escaped new lines.
          # I don't know why, but I have to use a tmp $flat_deps.
-         my $flat_deps = &flatten ($dependencies);
+         my $flat_deps = flatten ($dependencies);
          my @deps = split (' ', $flat_deps);
 
          foreach (split (' ', $targets))
@@ -6940,7 +6855,7 @@ sub file_contents_internal ($$$%)
              # Output only if not in FALSE.
              if (defined $dependencies{$_} && $cond != FALSE)
                {
-                 &depend ($_, @deps);
+                 depend ($_, @deps);
                  register_action ($_, $actions);
                }
              else
@@ -7010,8 +6925,8 @@ sub file_contents_internal ($$$%)
 
 
 # $CONTENTS
-# &file_contents ($BASENAME, $WHERE, [%TRANSFORM])
-# ------------------------------------------------
+# file_contents ($BASENAME, $WHERE, [%TRANSFORM])
+# -----------------------------------------------
 # Return contents of a file from $libdir/am, automatically skipping
 # macros or rules which are already known.
 sub file_contents ($$%)
@@ -7025,8 +6940,8 @@ sub file_contents ($$%)
 
 
 # @PREFIX
-# &am_primary_prefixes ($PRIMARY, $CAN_DIST, @PREFIXES)
-# -----------------------------------------------------
+# am_primary_prefixes ($PRIMARY, $CAN_DIST, @PREFIXES)
+# ----------------------------------------------------
 # Find all variable prefixes that are used for install directories.  A
 # prefix 'zar' qualifies iff:
 #
@@ -7115,7 +7030,7 @@ sub am_primary_prefixes ($$@)
 # up into multiple functions.
 #
 # Usage is: am_install_var (OPTION..., file, HOW, where...)
-sub am_install_var
+sub am_install_var (@)
 {
   my (@args) = @_;
 
@@ -7219,11 +7134,12 @@ sub am_install_var
            }
          else
            {
-             # Strip any $(EXEEXT) suffix the user might have added, or this
-             # will confuse &handle_source_transform and 
&check_canonical_spelling.
+             # Strip any $(EXEEXT) suffix the user might have added,
+              # or this will confuse handle_source_transform() and
+              # check_canonical_spelling().
              # We'll add $(EXEEXT) back later anyway.
-             # Do it here rather than in handle_programs so the uniquifying at 
the
-             # end of this function works.
+             # Do it here rather than in handle_programs so the
+              # uniquifying at the end of this function works.
              ${$locvals}[1] =~ s/\$\(EXEEXT\)$//
                if $primary eq 'PROGRAMS';
 
@@ -7267,18 +7183,17 @@ sub am_install_var
 
       # Singular form of $PRIMARY.
       (my $one_primary = $primary) =~ s/S$//;
-      $output_rules .= &file_contents ($file, $where,
-                                      PRIMARY     => $primary,
-                                      ONE_PRIMARY => $one_primary,
-                                      DIR         => $X,
-                                      NDIR        => $nodir_name,
-                                      BASE        => $strip_subdir,
-
-                                      EXEC      => $exec_p,
-                                      INSTALL   => $install_p,
-                                      DIST      => $dist_p,
-                                      DISTVAR   => $distvar,
-                                      'CK-OPTS' => $check_options_p);
+      $output_rules .= file_contents ($file, $where,
+                                      PRIMARY     => $primary,
+                                      ONE_PRIMARY => $one_primary,
+                                      DIR         => $X,
+                                      NDIR        => $nodir_name,
+                                      BASE        => $strip_subdir,
+                                      EXEC        => $exec_p,
+                                      INSTALL     => $install_p,
+                                      DIST        => $dist_p,
+                                      DISTVAR     => $distvar,
+                                      'CK-OPTS'   => $check_options_p);
     }
 
   # The JAVA variable is used as the name of the Java interpreter.
@@ -7321,7 +7236,7 @@ sub am_install_var
 my %make_dirs = ();
 my $make_dirs_set = 0;
 
-sub is_make_dir
+sub is_make_dir ($)
 {
     my ($dir) = @_;
     if (! $make_dirs_set)
@@ -7372,10 +7287,10 @@ sub locate_aux_dir ()
 }
 
 
-# &push_required_file ($DIR, $FILE, $FULLFILE)
-# --------------------------------------------------
+# push_required_file ($DIR, $FILE, $FULLFILE)
+# -------------------------------------------------
 # Push the given file onto DIST_COMMON.
-sub push_required_file
+sub push_required_file ($$$)
 {
   my ($dir, $file, $fullfile) = @_;
 
@@ -7409,7 +7324,7 @@ sub push_required_file
       $am_config_libobj_dir =~ s|/*$||;
       push_dist_common ("$am_config_libobj_dir/$file");
     }
-  elsif ($relative_dir eq '.' && ! &is_make_dir ($dir))
+  elsif ($relative_dir eq '.' && ! is_make_dir ($dir))
     {
       # If we are doing the topmost directory, and the file is in a
       # subdir which does not have a Makefile, then we distribute it
@@ -7459,8 +7374,8 @@ sub push_required_file
 # than once.
 my %required_file_not_found = ();
 
-# &required_file_check_or_copy ($WHERE, $DIRECTORY, $FILE)
-# --------------------------------------------------------
+# required_file_check_or_copy ($WHERE, $DIRECTORY, $FILE)
+# -------------------------------------------------------
 # Verify that the file must exist in $DIRECTORY, or install it.
 sub required_file_check_or_copy ($$$)
 {
@@ -7568,8 +7483,8 @@ sub required_file_check_or_copy ($$$)
 }
 
 
-# &require_file_internal ($WHERE, $MYSTRICT, $DIRECTORY, $QUEUE, @FILES)
-# ----------------------------------------------------------------------
+# require_file_internal ($WHERE, $MYSTRICT, $DIRECTORY, $QUEUE, @FILES)
+# ---------------------------------------------------------------------
 # Verify that the file must exist in $DIRECTORY, or install it.
 # $MYSTRICT is the strictness level at which this file becomes required.
 # Worker threads may queue up the action to be serialized by the master,
@@ -7597,16 +7512,16 @@ sub require_file_internal ($$$@)
     }
 }
 
-# &require_file ($WHERE, $MYSTRICT, @FILES)
-# -----------------------------------------
+# require_file ($WHERE, $MYSTRICT, @FILES)
+# ----------------------------------------
 sub require_file ($$@)
 {
     my ($where, $mystrict, @files) = @_;
     require_file_internal ($where, $mystrict, $relative_dir, 0, @files);
 }
 
-# &require_file_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
-# -----------------------------------------------------------
+# require_file_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
+# ----------------------------------------------------------
 sub require_file_with_macro ($$$@)
 {
     my ($cond, $macro, $mystrict, @files) = @_;
@@ -7614,8 +7529,8 @@ sub require_file_with_macro ($$$@)
     require_file ($macro->rdef ($cond)->location, $mystrict, @files);
 }
 
-# &require_libsource_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
-# ----------------------------------------------------------------
+# require_libsource_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
+# ---------------------------------------------------------------
 # Require an AC_LIBSOURCEd file.  If AC_CONFIG_LIBOBJ_DIR was called, it
 # must be in that directory.  Otherwise expect it in the current directory.
 sub require_libsource_with_macro ($$$@)
@@ -7633,9 +7548,9 @@ sub require_libsource_with_macro ($$$@)
       }
 }
 
-# &queue_required_file_check_or_copy ($QUEUE, $KEY, $DIR, $WHERE,
+# queue_required_file_check_or_copy ($QUEUE, $KEY, $DIR, $WHERE,
 #                                     $MYSTRICT, @FILES)
-# ---------------------------------------------------------------
+# --------------------------------------------------------------
 sub queue_required_file_check_or_copy ($$$$@)
 {
     my ($queue, $key, $dir, $where, $mystrict, @files) = @_;
@@ -7651,8 +7566,8 @@ sub queue_required_file_check_or_copy ($$$$@)
     $queue->enqueue ($key, $dir, @serial_loc, $mystrict, 0 + @files, @files);
 }
 
-# &require_queued_file_check_or_copy ($QUEUE)
-# -------------------------------------------
+# require_queued_file_check_or_copy ($QUEUE)
+# ------------------------------------------
 sub require_queued_file_check_or_copy ($)
 {
     my ($queue) = @_;
@@ -7684,8 +7599,8 @@ sub require_queued_file_check_or_copy ($)
       }
 }
 
-# &require_conf_file ($WHERE, $MYSTRICT, @FILES)
-# ----------------------------------------------
+# require_conf_file ($WHERE, $MYSTRICT, @FILES)
+# ---------------------------------------------
 # Looks in configuration path, as specified by AC_CONFIG_AUX_DIR.
 sub require_conf_file ($$@)
 {
@@ -7696,8 +7611,8 @@ sub require_conf_file ($$@)
 }
 
 
-# &require_conf_file_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
-# ----------------------------------------------------------------
+# require_conf_file_with_macro ($COND, $MACRO, $MYSTRICT, @FILES)
+# ---------------------------------------------------------------
 sub require_conf_file_with_macro ($$$@)
 {
     my ($cond, $macro, $mystrict, @files) = @_;
@@ -7707,8 +7622,8 @@ sub require_conf_file_with_macro ($$$@)
 
 ################################################################
 
-# &require_build_directory ($DIRECTORY)
-# -------------------------------------
+# require_build_directory ($DIRECTORY)
+# ------------------------------------
 # Emit rules to create $DIRECTORY if needed, and return
 # the file that any target requiring this directory should be made
 # dependent upon.
@@ -7747,8 +7662,8 @@ sub require_build_directory ($)
   return $dirstamp;
 }
 
-# &require_build_directory_maybe ($FILE)
-# --------------------------------------
+# require_build_directory_maybe ($FILE)
+# -------------------------------------
 # If $FILE lies in a subdirectory, emit a rule to create this
 # directory and return the file that $FILE should be made
 # dependent upon.  Otherwise, just return the empty string.
@@ -7770,7 +7685,7 @@ sub require_build_directory_maybe ($)
 ################################################################
 
 # Push a list of files onto dist_common.
-sub push_dist_common
+sub push_dist_common (@)
 {
   prog_error "push_dist_common run after handle_dist"
     if $handle_dist_run;
@@ -7800,8 +7715,8 @@ sub generate_makefile ($$)
   # $OUTPUT is encoded.  If it contains a ":" then the first element
   # is the real output file, and all remaining elements are input
   # files.  We don't scan or otherwise deal with these input files,
-  # other than to mark them as dependencies.  See
-  # &scan_autoconf_files for details.
+  # other than to mark them as dependencies.  See the subroutine
+  # 'scan_autoconf_files' for details.
   my ($makefile, @inputs) = split (/:/, $output_files{$makefile_in});
 
   $relative_dir = dirname ($makefile);
@@ -7862,9 +7777,9 @@ sub generate_makefile ($$)
 
   handle_silent;
 
-  # These must be run after all the sources are scanned.  They
-  # use variables defined by &handle_libraries, &handle_ltlibraries,
-  # or &handle_programs.
+  # These must be run after all the sources are scanned.  They use
+  # variables defined by handle_libraries(), handle_ltlibraries(),
+  # or handle_programs().
   handle_compile;
   handle_languages;
   handle_libtool;
@@ -7975,6 +7890,9 @@ sub generate_makefile ($$)
 # Helper function for usage().
 sub print_autodist_files (@)
 {
+  # NOTE: we need to call our 'uniq' function with the leading '&'
+  # here, because otherwise perl complains that "Unquoted string
+  # 'uniq' may clash with future reserved word".
   my @lcomm = sort (&uniq (@_));
 
   my @four;
@@ -8067,8 +7985,8 @@ General help using GNU software: 
<http://www.gnu.org/gethelp/>.
 }
 
 
-# &version ()
-# -----------
+# version ()
+# ----------
 # Print version information
 sub version ()
 {
@@ -8122,7 +8040,7 @@ sub parse_arguments ()
   set_global_option ('no-dependencies', $cli_where) if $ignore_deps;
   for my $warning (@warnings)
     {
-      &parse_warnings ('-W', $warning);
+      parse_warnings ('-W', $warning);
     }
 
   return unless @ARGV;
@@ -8190,7 +8108,7 @@ sub handle_makefiles_serial ()
 # get_number_of_threads ()
 # ------------------------
 # Logic for deciding how many worker threads to use.
-sub get_number_of_threads
+sub get_number_of_threads ()
 {
   my $nthreads = $ENV{'AUTOMAKE_JOBS'} || 0;
 
diff --git a/bootstrap.sh b/bootstrap.sh
index bb4221d..6e49d27 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -88,14 +88,15 @@ dosubst ()
 dosubst automake-$APIVERSION/Automake/Config.in \
         automake-$APIVERSION/Automake/Config.pm
 
-# Create temporary replacement for aclocal.
-dosubst aclocal.in aclocal.tmp
-
 # Overwrite amversion.m4.
 dosubst m4/amversion.in m4/amversion.m4
 
-# Create temporary replacement for automake.
-dosubst automake.in automake.tmp
+# Create temporary replacement for aclocal and automake.
+for p in aclocal automake; do
+  dosubst $p.in $p.tmp
+  $PERL -w lib/gen-perl-protos $p.tmp > $p.tmp2
+  mv -f $p.tmp2 $p.tmp
+done
 
 # Create required makefile snippets.
 $PERL ./gen-testsuite-part > t/testsuite-part.tmp
diff --git a/lib/Automake/Language.pm b/lib/Automake/Language.pm
new file mode 100644
index 0000000..a678e1e
--- /dev/null
+++ b/lib/Automake/Language.pm
@@ -0,0 +1,122 @@
+# Copyright (C) 2013 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+package Automake::Language;
+
+use 5.006;
+use strict;
+
+use Class::Struct ();
+Class::Struct::struct (
+       # Short name of the language (c, f77...).
+       'name' => "\$",
+       # Nice name of the language (C, Fortran 77...).
+       'Name' => "\$",
+
+       # List of configure variables which must be defined.
+       'config_vars' => '@',
+
+       # 'pure' is '1' or ''.  A 'pure' language is one where, if
+       # all the files in a directory are of that language, then we
+       # do not require the C compiler or any code to call it.
+       'pure'   => "\$",
+
+       'autodep' => "\$",
+
+       # Name of the compiling variable (COMPILE).
+       'compiler'  => "\$",
+       # Content of the compiling variable.
+       'compile'  => "\$",
+       # Flag to require compilation without linking (-c).
+       'compile_flag' => "\$",
+       'extensions' => '@',
+       # A subroutine to compute a list of possible extensions of
+       # the product given the input extensions.
+       # (defaults to a subroutine which returns ('.$(OBJEXT)', '.lo'))
+       'output_extensions' => "\$",
+       # A list of flag variables used in 'compile'.
+       # (defaults to [])
+       'flags' => "@",
+
+       # Any tag to pass to libtool while compiling.
+       'libtool_tag' => "\$",
+
+       # The file to use when generating rules for this language.
+       # The default is 'depend2'.
+       'rule_file' => "\$",
+
+       # Name of the linking variable (LINK).
+       'linker' => "\$",
+       # 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)).
+       'ld' => "\$",
+
+       # Flag to specify the output file (-o).
+       'output_flag' => "\$",
+       '_finish' => "\$",
+
+       # This is a subroutine which is called whenever we finally
+       # determine the context in which a source file will be
+       # compiled.
+       '_target_hook' => "\$",
+
+       # If TRUE, nodist_ sources will be compiled using specific rules
+       # (i.e. not inference rules).  The default is FALSE.
+       'nodist_specific' => "\$");
+
+
+sub finish ($)
+{
+  my ($self) = @_;
+  if (defined $self->_finish)
+    {
+      &{$self->_finish} (@_);
+    }
+}
+
+sub target_hook ($$$$%)
+{
+    my ($self) = @_;
+    if (defined $self->_target_hook)
+    {
+       $self->_target_hook->(@_);
+    }
+}
+
+1;
+
+### Setup "GNU" style for perl-mode and cperl-mode.
+## Local Variables:
+## perl-indent-level: 2
+## perl-continued-statement-offset: 2
+## perl-continued-brace-offset: 0
+## perl-brace-offset: 0
+## perl-brace-imaginary-offset: 0
+## perl-label-offset: -2
+## cperl-indent-level: 2
+## cperl-brace-offset: 0
+## cperl-continued-brace-offset: 0
+## cperl-label-offset: -2
+## cperl-extra-newline-before-brace: t
+## cperl-merge-trailing-else: nil
+## cperl-continued-statement-offset: 2
+## End:
diff --git a/lib/gen-perl-protos b/lib/gen-perl-protos
new file mode 100755
index 0000000..9e73d8d
--- /dev/null
+++ b/lib/gen-perl-protos
@@ -0,0 +1,36 @@
+#!/usr/bin/env perl
+#
+# Copyright (C) 2013 Free Software Foundation, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+use warnings;
+use strict;
+
+my @lines = <>;
+my @protos = map { /^(sub \w+\s*\(.*\))/ ? ("$1;") : () } @lines;
+
+while (defined ($_ = shift @lines))
+  {
+    if (/^#!.* prototypes/i)
+      {
+        print "# BEGIN AUTOMATICALLY GENERATED PROTOTYPES\n";
+        print join ("\n", sort @protos) . "\n";
+        print "# END AUTOMATICALLY GENERATED PROTOTYPES\n";
+      }
+    else
+      {
+        print;
+      }
+  }
diff --git a/maintainer/syntax-checks.mk b/maintainer/syntax-checks.mk
index e1d5e6b..1f72085 100644
--- a/maintainer/syntax-checks.mk
+++ b/maintainer/syntax-checks.mk
@@ -86,19 +86,22 @@ sc_at_in_texi
 automake_diff_no = 7
 aclocal_diff_no = 9
 sc_diff_automake sc_diff_aclocal: sc_diff_% :
-       @set +e; tmp=$*-diffs.tmp; \
-        diff -u $(srcdir)/$*.in $* > $$tmp; test $$? -eq 1 || exit 1; \
-        added=`grep -v '^+++ ' $$tmp | grep -c '^+'` || exit 1; \
-        removed=`grep -v '^--- ' $$tmp | grep -c '^-'` || exit 1; \
-        test $$added,$$removed = $($*_diff_no),$($*_diff_no) \
+       @set +e; \
+       in=$*-in.tmp out=$*-out.tmp diffs=$*-diffs.tmp \
+         && sed '/^#!.*[pP]rototypes/d' $(srcdir)/$*.in > $$in \
+         && sed '/^# BEGIN.* PROTO/,/^# END.* PROTO/d' $* > $$out \
+         && { diff -u $$in $$out > $$diffs; test $$? -eq 1; } \
+         && added=`grep -v '^+++ ' $$diffs | grep -c '^+'` \
+         && removed=`grep -v '^--- ' $$diffs | grep -c '^-'` \
+         && test $$added,$$removed = $($*_diff_no),$($*_diff_no) \
          || { \
            echo "Found unexpected diffs between $*.in and $*"; \
            echo "Lines added:   $$added"  ; \
            echo "Lines removed: $$removed"; \
-           cat $$tmp >&2; \
+           cat $$diffs; \
            exit 1; \
-         } >&1; \
-       rm -f $$tmp
+         } >&2; \
+       rm -f $$in $$out $$diffs
 
 ## Expect no instances of '${...}'.  However, $${...} is ok, since that
 ## is a shell construct, not a Makefile construct.


hooks/post-receive
-- 
GNU Automake



reply via email to

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