summaryrefslogtreecommitdiff
path: root/Build/source/README.layout
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2009-03-27 09:51:14 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2009-03-27 09:51:14 +0000
commit030ac93ac520631dcf2cbe20591fe6031c42b24a (patch)
treecd9783b3141875c93afff7c2698e854427b85556 /Build/source/README.layout
parent906ce7f27518260132771f3d1a4243ead37e9efd (diff)
new build system: minor cleanup
git-svn-id: svn://tug.org/texlive/trunk@12527 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/README.layout')
-rw-r--r--Build/source/README.layout77
1 files changed, 77 insertions, 0 deletions
diff --git a/Build/source/README.layout b/Build/source/README.layout
new file mode 100644
index 00000000000..406154adf44
--- /dev/null
+++ b/Build/source/README.layout
@@ -0,0 +1,77 @@
+ Layout of the teTeX / TeX Live (TL) build system
+ ================================================
+
+The TL 2009 build system has been completely restructured, using Autoconf,
+Automake, and Libtool. The main purpose was to configure and build each
+library before configuring any module (program or other library) depending
+on that library. This allows to check for properties and features of a
+library built as part of the TL tree in much the same as for an installed
+(system) version of that library.
+
+This should simplify upgrading of modules maintained independently and/or
+integrating new modules into the TL build system.
+
+1. Layout of directories
+========================
+
+1.1. Overall layout
+-------------------
+
+libs/*/* various libraries
+texk/kpathsea/* the Kpathsea library
+
+texk/*/* programs (mostly using Kpathsea)
+utils/*/* utility programs (not using Kpathsea)
+
+texk/am/* Makefile.am fragments
+texk/web2c/am/* for the Kpathsea library
+texk/web2c/*/am/* and the Web2C programs
+
+libs/Lib/* library Lib (zlib, libpng, t1lib, etc.)
+texk/Prog/* program package Prog (web2c, afm2pl, bibtex8, etc.)
+utils/Util/* utility program package Util (dialog, pdfopen, ps2eps, etc.)
+
+libs/dummy/* dummy modules
+texk/dummy/* used to configure
+utils/dummy/* the real modules
+
+ac/* various configure.ac fragments (configure options)
+*/ac/* for the whole TL tree
+*/*/ac/* or for a particular component
+
+build-aux/* auxiliary build scripts (config.guess etc.)
+
+m4/kpse-pkgs.m4 Autoconf macros defining the lists of Lib, Prog, and Util
+ modules and handling loops over these lists
+m4/* other Autoconf macros
+
+1.2. A library `Lib'
+--------------------
+
+libs/Lib/ac/withenable.ac defines libraries required by Lib
+libs/Lib/ac/Lib.ac defines basic tests for a system version of Lib
+m4/kpse-Lib-flags.m4 defines Autoconf macros for configure options
+ as well as KPSE_LIB_FLAGS, to be used in configure.ac
+ files and defining Make variables
+
+Several libraries use an unmodified source tree supplemented by a proxy
+build system (bypassing that of the source tree, e.g.,
+
+libs/zlib/zlib-1.2.3/* (almost) unmodified source tree
+libs/zlib/Makefile.am proxy Makefile.am
+libs/zlib/configure.ac and configure.ac
+
+1.3. A program `Prog'
+---------------------
+
+texk/Prog/ac/withenable.ac defines libraries required by Prog, provides the
+ configure option --disable-Prog
+texk/Prog/ac/Prog.ac defines Prog specific configure option that should
+ be seen at the top-level
+
+1.4. A utility program `Util'
+-----------------------------
+
+utils/Util/ac/withenable.ac defines libraries required by Util, provides the
+ configure option --disable-Util
+