summaryrefslogtreecommitdiff
path: root/Build/source/README.0overview
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
commitad547a6b5986815fda458221149728d9d9ab1d87 (patch)
tree16296910eb3eca724371474ea9aea3994dc69614 /Build/source/README.0overview
parent947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff)
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/README.0overview')
-rw-r--r--Build/source/README.0overview52
1 files changed, 52 insertions, 0 deletions
diff --git a/Build/source/README.0overview b/Build/source/README.0overview
new file mode 100644
index 00000000000..c99c50f24b2
--- /dev/null
+++ b/Build/source/README.0overview
@@ -0,0 +1,52 @@
+(This file was generated by makeinfo and splitinfo.gawk.)
+(Released under the old-style GNU documentation license;
+ see sources or other output files for full text.)
+
+2 Overview of build system
+**************************
+
+The TeX Live build system was redesigned in 2009 to consistently use
+Autoconf, Automake, and Libtool. Thus, running
+ 'configure && make && make check && make install'
+or the essentially-equivalent top-level 'Build' script suffices to build
+and install the TL programs. The 'make check' clause performs various
+tests of the generated programs--not strictly required but strongly
+recommended. Running 'configure --help' will display a comprehensive
+list of all 'configure' options.
+
+ The main components of the TL build system are:
+
+'libs/LIB'
+ Generic libraries.
+
+'texk/LIB'
+ TeX-specific libraries in subdirectories, notably LIB='kpathsea'.
+ (The other one is 'texk/ptexenc'.)
+
+'texk/PROG'
+ TeX-specific programs (that use Kpathsea).
+
+'utils/PROG'
+ Other programs (that don't use Kpathsea).
+
+ The primary design goal of the build system is modularity. Each
+program and library module (or package) specifies its own requirements
+and properties, such as required libraries, whether an installed
+(system) version of a library can be used, 'configure' options to be
+seen at the top level, and more. An explicit list of all available
+modules is kept in a single central place: 'm4/kpse-pkgs.m4'.
+
+ A second, related goal is to configure and build each library before
+configuring any other (program or library) module which uses that
+library. This allows checking for properties and features of a library
+built as part of the TL tree in much the same way as for a system
+version of that library.
+
+ All generic libraries and several programs are maintained
+independently. The corresponding modules use (most of) the distributed
+source tree and document any modifications of that source.
+
+ All this is for the sake of simplifying both upgrading of modules and
+integrating new modules into the TL build system. (Despite all efforts,
+neither task is easy.)
+