tlbuild: Build system tools

 
 6.1 Build system tools
 ======================
 
 As mentioned above (⇒Prerequisites), a normal build has few
 requirements.  On the other hand, if you want to modify the TeX Live
 infrastructure sources, such as 'configure.ac' or 'Makefile.am' files,
 you will need to have several additional tools installed.
 
    In general, the TL build system uses the latest released versions of
 the GNU build tools, installed directly from the original GNU releases
 (e.g., by building them with 'configure --prefix=/usr/local/gnu' and
 having 'PATH' start with '/usr/local/gnu/bin').  We have found that
 trying to use the versions of these tools packaged for distros causes
 many extra hassles, so don't do that, tempting as it may be.
 
    Currently the versions we use are:
 
      autoconf (GNU Autoconf) 2.69
      automake (GNU automake) 1.16.2
      bison (GNU Bison) 3.7.4
      flex 2.6.0
      ltmain.sh (GNU libtool) 2.4.6
      m4 (GNU M4) 1.4.18
      makeinfo (GNU texinfo) 6.7
 
    These versions should be used to update the generated files (e.g.,
 'configure' or 'Makefile.in') in all or parts of the TL tree after their
 dependencies have been changed.  This can be done explicitly with the
 top-level 'reautoconf' script or implicitly by using the configure
 option '--enable-maintainer-mode'.
 
    It has often turned out that the bison and flex versions are not
 critical; however, the autotools versions are.  If you don't have the
 given versions, get them before modifying the build infrastructure.
 
    The files in the Subversion repository (see
 <https://tug.org/texlive/svn>) are all up to date (barring bugs).  For
 this to be reflected by their timestamps in your checkout, be sure to
 set 'use-commit-times=yes' in '~/.subversion/config' or the equivalent.
 
    If timestamps are wrong, you may also be able to avoid unnecessary
 runs of 'bison', 'flex', or 'makeinfo' with 'touch' of the generated
 ('.c', '.h', or '.info') files.  With '--enable-maintainer-mode' it may
 also be necessary to 'touch' first 'aclocal.m4', then 'configure' and
 'config.h.in' (or 'c-auto.in'), and finally all 'Makefile.in' files.