automake-1.16: Upgrading

 
 25 Upgrading a Package to a Newer Automake Version
 **************************************************
 
 Automake maintains three kinds of files in a package.
 
    • ‘aclocal.m4’
    • ‘Makefile.in’s
    • auxiliary tools like ‘install-sh’ or ‘py-compile’
 
    ‘aclocal.m4’ is generated by ‘aclocal’ and contains some
 Automake-supplied M4 macros.  Auxiliary tools are installed by ‘automake
 --add-missing’ when needed.  ‘Makefile.in’s are built from ‘Makefile.am’
 by ‘automake’, and rely on the definitions of the M4 macros put in
 ‘aclocal.m4’ as well as the behavior of the auxiliary tools installed.
 
    Because all of these files are closely related, it is important to
 regenerate all of them when upgrading to a newer Automake release.  The
 usual way to do that is
 
      aclocal # with any option needed (such as -I m4)
      autoconf
      automake --add-missing --force-missing
 
 or more conveniently:
 
      autoreconf -vfi
 
    The use of ‘--force-missing’ ensures that auxiliary tools will be
 overridden by new versions (⇒automake Invocation).
 
    It is important to regenerate all of these files each time Automake
 is upgraded, even between bug fix releases.  For instance, it is not
 unusual for a bug fix to involve changes to both the rules generated in
 ‘Makefile.in’ and the supporting M4 macros copied to ‘aclocal.m4’.
 
    Presently ‘automake’ is able to diagnose situations where
 ‘aclocal.m4’ has been generated with another version of ‘aclocal’.
 However it never checks whether auxiliary scripts are up-to-date.  In
 other words, ‘automake’ will tell you when ‘aclocal’ needs to be rerun,
 but it will never diagnose a missing ‘--force-missing’.
 
    Before upgrading to a new major release, it is a good idea to read
 the file ‘NEWS’.  This file lists all changes between releases: new
 features, obsolete constructs, known incompatibilities, and workarounds.