fix getsup (HH)
[luatex.git] / source / README.0overview
blobefdd1e87a12964b0429b6c4be12cc353deb2ae32
1 (This file was generated by makeinfo and splitinfo.gawk.)
2 (Released under the old-style GNU documentation license;
3  see sources or other output files for full text.)
5 2 Overview of build system
6 **************************
8 The TeX Live build system was redesigned in 2009, consistently using
9 Autoconf, Automake, and Libtool.  Thus
10    'configure && make && make check && make install'
11 or the basically-equivalent top-level 'Build' script suffice to build
12 and install the TL programs.  The 'make check' clause performs various
13 tests of the generated programs--not strictly required but strongly
14 recommended.  Running 'configure --help' will display a comprehensive
15 list of all 'configure' options.
17    The main components of the TL build system are:
19 'libs/LIB'
20      Generic libraries.
22 'texk/LIB'
23      TeX-specific libraries in subdirectories, notably LIB='kpathsea'.
24      (The other one is 'texk/ptexenc'.)
26 'texk/PROG'
27      TeX-specific programs (that use Kpathsea).
29 'utils/PROG'
30      Other programs (that don't use Kpathsea).
32    The primary design goal of the build system is modularity.  Each
33 program and library module (or package) specifies its own requirements
34 and properties, such as required libraries, whether an installed
35 (system) version of a library can be used, 'configure' options to be
36 seen at the top-level, and more.  An explicit list of all available
37 modules is kept in only one, central, place ('m4/kpse-pkgs.m4').
39    A second, related goal is to configure and build each library before
40 configuring any other (program or library) module which uses that
41 library.  This allows checking for properties and features of a library
42 built as part of the TL tree in much the same way as for a system
43 version of that library.
45    All generic libraries and several programs are maintained
46 independently.  The corresponding modules use (most of) the distributed
47 source tree and document any modifications of that source.
49    All this is for the sake of simplifying both upgrading of modules
50 maintained independently and integrating new modules into the TL build
51 system.  (Not to say that either task is trivial.)