tlbuild: Prerequisites

 
 3 Prerequisites
 ***************
 
 Overall, building the TeX Live programs, when using all libraries from
 the TL source tree, requires C and C++11 compilers and GNU 'make'.  If
 'make' from your 'PATH' is not GNU make, you can set the 'MAKE'
 environment variable to whatever is necessary.
 
    GNU 'make' is required only because of some third-party libraries,
 notably FreeType; all the TL-maintained directories (and
 Automake/Autoconf output in general) work with any reasonable 'make'.
 
    A C++11 compiler is similarly required because of the third-party
 library ICU; the program 'dvisvgm' also requires C++11.  It is possible
 to build everything else with older compilers, but you have to remove
 the C++11-dependent sources.  ⇒Build one package.
 
    A few programs in the tree have additional requirements:
 
 'web2c'
      requires 'perl' for some tests run by 'make check'.
 
 'xdvik'
 'xpdfopen'
      require X11 headers and libraries, typically in "development"
      packages that are not installed by default.
 
 'xetex'
      requires 'fontconfig' (again both headers and library), or, for
      MacOSX only, the 'ApplicationServices' and 'Cocoa' frameworks.
 
 'xindy'
      requires GNU 'clisp', 'libsigsegv', and 'libiconv'; additionally,
      to build the rules and/or documentation: 'perl', 'latex',
      'pdflatex'.
 
 Lacking the required tools, building these programs must avoided, e.g.,
 'configure --without-x --disable-xetex --disable-xindy'
 
    Modifying source files induces more requirements, as one might
 expect:
 
    * Modification of any '.y' or '.l' source files requires 'bison' or
      'flex' to update the corresponding C sources.
 
    * Modification of the sources for '.info' files requires 'makeinfo'.
 
    * Modification of any part of the build system (M4 macros,
      'configure.ac', 'Makefile.am', or their fragments) requires GNU M4,
      GNU Autoconf, GNU Automake, and GNU Libtool to update the generated
      files.  Furthermore, to reliably reproduce the build files, the
      original GNU releases of these tools must be used, not any distro
      packaging of them.  ⇒Build system tools, for more
      discussion.
 
    If you haven't modified any source files, and infrastructure tools
 such as 'autoconf' or 'makeinfo' are still being run, check your
 timestamps--notably, 'use-commit-times' must be set to 'yes' in your
 Subversion configuration (⇒Build system tools).  Barring buggy
 commits, no infrastructure tools are needed to do a normal build.