
                Notes on enabling maintainer mode

Note that if you configure with --enable-maintainer-mode, you will need
special versions of automake, autoconf, libtool and gettext. You will
find the sources for these in the respective upstream directories:

  ftp://ftp.gnu.org/gnu/autoconf
  ftp://ftp.gnu.org/gnu/automake
  ftp://ftp.gnu.org/gnu/libtool
  ftp://ftp.gnu.org/gnu/gettext

The required versions of the tools for this tree are
  autoconf 2.69
  automake 1.15.1
  libtool 2.2.6
  gettext 0.14.5

Note - "make distclean" does not work with maintainer mode enabled.
The Makefiles in the some of the po/ subdirectories depend upon the
Makefiles in their parent directories, and distclean will delete the
Makefiles in the parent directories before running the Makefiles in
the child directories.  There is no easy way around this (short of
changing the automake macros) as these dependencies need to exist in
order to correctly build the NLS files.
