summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-08-29 18:58:31 +0000
committerKarl Berry <karl@freefriends.org>2011-08-29 18:58:31 +0000
commitbfbd87a0b6c0a2f58a463749e7502f780aaec362 (patch)
treee8f4361d68def893f1caac0c11535213dca602c8 /Build
parentea33782ecfe04d2116e2aaae0762c62d9736c211 (diff)
typos, etc.
git-svn-id: svn://tug.org/texlive/trunk@23748 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/README10
-rw-r--r--Build/source/README.coding15
-rw-r--r--Build/source/README.config25
-rw-r--r--Build/source/README.cross9
-rw-r--r--Build/source/README.hacking49
-rw-r--r--Build/source/README.layout38
6 files changed, 77 insertions, 69 deletions
diff --git a/Build/source/README b/Build/source/README
index 95294336d53..8416cd4c3f9 100644
--- a/Build/source/README
+++ b/Build/source/README
@@ -2,7 +2,7 @@ $Id$
Public domain. Originally written 2005 by Karl Berry.
For a high-level overview of building TeX Live, see
-http://tug.org/texlive/build.html.
+http://tug.org/texlive/build.html. In brief:
To configure and make the source tree, run ./Build.
To build (mostly) without optimization, run ./Build --debug.
@@ -45,13 +45,13 @@ dealing with them is the TeX Live (plain text) database,
Master/tlpkg/texlive.tlpdb, and/or our installer. More information is
under Master/tlpkg. See also http://tug.org/texlive/distro.html.
-For unusual situations:
-
-- If your C++ needs to find the standard library in, say, /usr/local/lib,
+If your C++ needs to find the standard library in, say, /usr/local/lib,
(i.e., configure fails saying the compiler doesn't work), try:
env LD_OPTIONS=-R/usr/local/lib ./Build
-- Running ./reautoconf here reruns auto-tools as needed. Use --help for more.
+Many more details about the TL build system, such as adding new
+programs or libraries, recompiling after fixing problems, etc., are in
+the other README.* files here.
Build information:
diff --git a/Build/source/README.coding b/Build/source/README.coding
index 2252b5f4535..90d17adea3d 100644
--- a/Build/source/README.coding
+++ b/Build/source/README.coding
@@ -1,4 +1,4 @@
-Copyright (C) 2009, 2010 Peter Breitenlohner <tex-live@tug.org>
+Copyright (C) 2009-2011 Peter Breitenlohner <tex-live@tug.org>
You may freely use, modify and/or distribute this file.
TeX Live (TL) coding rules
@@ -38,8 +38,8 @@ that function is defined).
1.4. Variables
--------------
The declaration of global variables should follow analogous rules, they
-should either be static or declared extern in a header and instatiated in
-exectly one file.
+should either be static or declared extern in a header and instantiated in
+exactly one file.
2. Const
========
@@ -47,9 +47,9 @@ exectly one file.
2.1. Function parameters
------------------------
Ideally, a function parameter not modified by the function should be
-declared as const. This is important in particiular for strings (`char *')
-because frequently string literals are used as actual arguments. Note,
-however, that a `char **' value is not assignment compatible with a `const
+declared as const. This is important in particular for strings (`char *')
+because frequently string literals are used as actual arguments.
+However, a `char **' value is not assignment compatible with a `const
char **' variable. Getting all `const's right often is quite involved but
usually can be done. There are, however, a few notable exceptions: the X11
headers are full of declarations that ought to use const but do not and the
@@ -64,7 +64,6 @@ by X11 headers/macros or third party code.
2.3. What should be avoided
---------------------------
A type cast, e.g., from `const char *' to `char *' doesn't solve any
-problems, depending on warning options it only may hide them. Therefore
+problems; depending on warning options, it may only hide them. Therefore
such casts should be avoided whenever possible but some such casts may be
unavoidable.
-
diff --git a/Build/source/README.config b/Build/source/README.config
index 81fb3a87831..6d476f71727 100644
--- a/Build/source/README.config
+++ b/Build/source/README.config
@@ -4,9 +4,9 @@ You may freely use, modify and/or distribute this file.
Configure options for the TeX Live (TL) build system
=====================================================
-The TL 2009 build system contains a collection of program packages, i.e.,
+The TL build system contains a collection of program packages, i.e.,
subdirectories texk/PROG/ (where `PROG' is web2c, afm2pl, bibtex8, etc.) and
-utils/UTIL/ (where `UTIL' is dialog, pdfopen, etc.) as well as library
+utils/UTIL/ (where `UTIL' is biber, xpdfopen, etc.) as well as library
packages, i.e., subdirectories texk/kpathsea/, texk/ptexenc/, and libs/LIB/
(where `LIB' is zlib, libpng, t1lib, etc.) for most of the libraries
required by the program packages. Correspondingly there are plenty of
@@ -17,9 +17,9 @@ global options and a few important package specific ones or run, e.g.,
'texk/lcdf-typetools/configure --help' to also see lcdf-typetools
specific options not shown at the top level.
-Note, however, that the ./Build script used to make the binaries shipped
-with TeX Live invokes the top-level configure with a few additional options.
-Any defaults discussed below are those for the base configure script;
+The ./Build script used to make the binaries shipped with TeX Live
+invokes the top-level configure with a few additional options. Any
+defaults discussed below are those for the base configure script;
invoking configure via ./Build may yield different results.
Defaults for most options are set at the top-level and then propagated
@@ -33,7 +33,7 @@ Options specified on the command line will never be modified.
1.1. --disable-native-texlive-build
-----------------------------------
-If enabled (by default) build for a TeX Live binary distribution as
+If enabled (as default), build for a TeX Live binary distribution as
shipped by the user groups; this implies '--enable-multiplatform' and
'--enable-cxx-runtime-hack' unless they are explicitly disabled and
enforces '--disable-shared'. This also requires GNU make.
@@ -73,7 +73,8 @@ Live build).
1.6. --disable-largefile
------------------------
-Omit support for large files (>=2GB).
+Omit support for large files (>=2GB). Unfortunately, largefile support
+in the TeX engines remains buggy.
1.7. --without-x
----------------
@@ -120,11 +121,11 @@ use this option, but distro builds should specify this as, e.g.,
2.3.1. --with-editor=CMD
Specify the command CMD to invoke from the `e' option, replacing the default
-`vi +%d '%s'' for Unix or `texworks --position=%d "%s"' for Windows..
+`vi +%d '%s'' for Unix or `texworks --position=%d "%s"' for Windows.
2.3.3. --enable-auto-core
This option causes TeX & MF to produce a core dump when a particular
-filename is encountered.
+hacky filename is encountered.
2.3.4. --disable-dump-share
Make the fmt/base/mem dump files architecture dependent (somewhat faster
@@ -159,14 +160,14 @@ Do not build the WEB programs bibtex ... weave, e.g., if you just
want to rebuild engines.
2.3.12. --disable-omfonts
-Build the Web versions of the omega font utilies (ofm2opl, opl2ofm, ovf2ovp,
+Build the Web versions of the omega font utilities (ofm2opl, opl2ofm, ovf2ovp,
and ovp2ovf) instead of the C version, omfonts. The Web and C versions
-should now be roughly equivalent.
+should be roughly equivalent.
2.4. Configure options for texk/xdvik/
--------------------------------------
2.4.1. --with-gs=PATH
-Hardwire the location of GhostScript (gs).
+Hardwire the location of Ghostscript (gs).
2.4.2. --with-xdvi-x-toolkit=KIT
Use toolkit KIT (motif/xaw/xaw3d/neXtaw) for xdvi, default: Motif if
diff --git a/Build/source/README.cross b/Build/source/README.cross
index a4be3620e08..f39f4f4b8d9 100644
--- a/Build/source/README.cross
+++ b/Build/source/README.cross
@@ -1,17 +1,17 @@
-Copyright (C) 2009, 2010 Peter Breitenlohner <tex-live@tug.org>
+Copyright (C) 2009-2011 Peter Breitenlohner <tex-live@tug.org>
You may freely use, modify and/or distribute this file.
Cross compiling
===============
In order to build the TL libraries and programs for a HOST system, e.g.,
-i386-pc-mingw32 on a (different) BUILD system, e.g, x86_64-linux-gnu specify
-the configure options
+i386-pc-mingw32, on a (different) BUILD system, e.g, x86_64-linux-gnu,
+specify the configure options
--host=i386-pc-mingw32 --build=x86_64-linux-gnu
You should have `cross' tools properly installed as, e.g.,
i386-pc-mingw32-cc in your PATH or specify them as configure arguments,
-e.g., CC=<mingw32-cross-compiler>; arguments such as CFLAGS=... refer to
+e.g., CC=<mingw32-cross-compiler>; arguments such as CFLAGS=... refer to
this cross compiler. Here a preliminary list of such tools and
corresponding variables:
ar AR
@@ -35,4 +35,3 @@ and C++ programs required for the build process as configure arguments
Building the Web2C programs requires sufficiently recent installed versions
of tangle, ctangle, and tie (and possibly otangle).
-
diff --git a/Build/source/README.hacking b/Build/source/README.hacking
index 69c2b505e14..a651163bc87 100644
--- a/Build/source/README.hacking
+++ b/Build/source/README.hacking
@@ -1,12 +1,17 @@
-Copyright (C) 2009, 2010 Peter Breitenlohner <tex-live@tug.org>
+Copyright (C) 2009-2011 Peter Breitenlohner <tex-live@tug.org>
You may freely use, modify and/or distribute this file.
Modifying the TeX Live (TL) build system
========================================
-1. Currently used versions of Tools
+1. Currently used versions of tools
===================================
+In general, we use the latest released versions of GNU build tools. We
+install these directly from the original GNU releases (e.g., by building
+them with configure --prefix=/usr/local/gnu and having
+/usr/local/gnu/bin first in our PATH).
+
autoconf (GNU Autoconf) 2.68
automake (GNU automake) 1.11.1
@@ -17,7 +22,7 @@ bison (GNU Bison) 2.4.3
flex 2.5.35
-m4 (GNU M4) 1.4.15
+m4 (GNU M4) 1.4.16
2. Updating the TL build system
===============================
@@ -35,10 +40,13 @@ to avoid due to SVN's handling of timestamps).
Alternatively, you can run the 'reautoconf' script from the top-level.
The 'config.guess', 'config.sub', etc. files for most packages are kept
-centrally in build-aux/. There are, however, independent copies in, e.g.,
-libs/freetype/freetype-1.5/, libs/freetype2/freetype-2.3.8/builds/unix/, and
-similar places that might need updating (not done automatically by the
-'reautoconf' script).
+centrally in build-aux/, sourced from GNU Gnulib
+(http://www.gnu.org/software/gnulib), which in turn pulls them from
+their ultimate upstream source repository. There are, however,
+independent copies in, e.g., libs/freetype2/freetype-*/builds/unix/, and
+similar places. The 'reautoconf' script does not take care of those,
+but a TL cron job does keep them in sync (nightly).
+
3. Extending the TL build system
================================
@@ -50,18 +58,20 @@ To add a new program directory utils/Util/ (not using Kpathsea) or
texk/Prog/ (possibly using Kpathsea and Ptexenc) you must add the directory
Util to the M4 list kpse_utils_pkgs or Prog to the M4 list kpse_texk_pkgs
defined in m4/kpse-pkgs.m4. In addition you must create a configure.ac
-fragment utils/Util/ac/witheanble.ac or texk/Prog/ac/witheanble.ac defining
+fragment utils/Util/ac/withenable.ac or texk/Prog/ac/withenable.ac defining
any required libraries from the TL tree and whether this new program is to
be built by default (in the absence of the corresponding
-'--enable-Util/Prog' or '--disable-Util/Prog' configure options). If a
-program in texk/Prog/ or utils/Util/ requires specific configure options to
-be seen at the top-level, they should be defined in an additional
-configure.ac fragment texk/Prog/ac/Prog.ac or utils/Util/ac/Util.ac
-(included from texk/Prog/ac/withenable.ac and texk/Prog/configure.ac or
-utils/Util/ac/withenable.ac and utils/Util/configure.ac) as, e.g., for
-texk/web2c/, texk/xdvik/, and utils/xindy/.
-
-As example, the file texk/dvipdfmx/ac/withenable.ac contains
+'--enable-Util/Prog' or '--disable-Util/Prog' configure options).
+
+If a program in texk/Prog/ or utils/Util/ requires specific configure
+options to be seen at the top-level, they should be defined in an
+additional configure.ac fragment texk/Prog/ac/Prog.ac or
+utils/Util/ac/Util.ac (included from texk/Prog/ac/withenable.ac and
+texk/Prog/configure.ac or utils/Util/ac/withenable.ac and
+utils/Util/configure.ac) as, e.g., for texk/web2c/, texk/xdvik/, and
+utils/xindy/.
+
+As an example, the file texk/dvipdfmx/ac/withenable.ac contains
KPSE_ENABLE_PROG([dvipdfmx], [kpathsea libpng])
where KPSE_ENABLE_PROG, defined in m4/kpse-setup.m4, has one required
argument -- the name of the subdirectory -- and three optional arguments: a
@@ -76,7 +86,7 @@ or enable configure option for this program.
To add a new generic library directory libs/Lib/ you must add the directory
Lib to the M4 list kpse_libs_pkgs defined in m4/kpse-pkgs.m4. In addition
-you must create a configure.ac fragment libs/Lib/ac/witheanble.ac defining
+you must create a configure.ac fragment libs/Lib/ac/withenable.ac defining
any required libraries from the TL tree and whether an installed (system)
version of this library can be used. If that is the case, another
configure.ac fragment libs/Lib/ac/Lib.ac should specify a small program as
@@ -126,7 +136,7 @@ generic library (described above) with these exceptions:
(*) Add the directory Lib to the M4 list kpse_texlibs_pkgs (also defined in
m4/kpse-pkgs.m4) instead of kpse_libs_pkgs.
-(*) The configure.ac fragment libs/Lib/ac/witheanble.ac must use
+(*) The configure.ac fragment libs/Lib/ac/withenable.ac must use
KPSE_WITH_TEXLIB instead of KPSE_WITH_LIB.
(*) The new library must not depend on any generic libraries.
@@ -174,4 +184,3 @@ that rebuilding zlib and/or libpng causes the target to be rebuilt.
Two lines containing @ZLIB_RULE@ and @LIBPNG_RULE@ create the rules required
to (re-)build zlib and libpng when necessary.
-
diff --git a/Build/source/README.layout b/Build/source/README.layout
index 96565d10296..f4ae3e1adbf 100644
--- a/Build/source/README.layout
+++ b/Build/source/README.layout
@@ -1,10 +1,10 @@
-Copyright (C) 2009, 2010 Peter Breitenlohner <tex-live@tug.org>
+Copyright (C) 2009-2011 Peter Breitenlohner <tex-live@tug.org>
You may freely use, modify and/or distribute this file.
Design of the TeX Live (TL) build system
========================================
-The TL 2009 build system has been completely redesigned, using Autoconf,
+The TL build system has been completely redesigned, using Autoconf,
Automake, and Libtool. The main components are TeX specific or utility
program modules (directories texk/*/ and utils/*/), and TeX specific or
generic library modules (directories texk/kpathsea/, texk/ptexenc/, and
@@ -21,9 +21,9 @@ configuring any (program or other library) module 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 way as for a system version of that library.
-Most generic libraries and several programs that are mintained independently
-use the distributed source tree, any modifications of that source tree are
-kept as patches.
+Most generic libraries and several programs that are maintained independently
+use the distributed source tree, with any patches to that source tree
+also kept separately as precise documentation of our changes.
All this should simplify upgrading of modules maintained independently
and/or integrating new modules into the TL build system.
@@ -37,8 +37,8 @@ and/or integrating new modules into the TL build system.
1.1. Overall layout
-------------------
-texk/kpathsea/ the two TeX specific Kpathsea
-texk/ptexenc/ and Ptexenc libraries
+texk/kpathsea/ the two TeX specific libraries, Kpathsea
+texk/ptexenc/ and Ptexenc
libs/Lib/ generic library Lib (zlib, libpng, t1lib, etc.)
texk/Prog/ TeX specific program package Prog (web2c, afm2pl, etc.)
utils/Util/ utility program package Util (dialog, ps2eps, etc.)
@@ -63,8 +63,9 @@ texk/web2c/*/am/*.am and the Web2C programs
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
+ as well as KPSE_LIB_FLAGS, to be used
+ in configure.ac files and defining
+ Make variables
Several libraries use an (almost) unmodified source tree supplemented by a
proxy build system (bypassing that of the source tree), e.g.,
@@ -82,16 +83,16 @@ The same structure is used for the TeX specific libraries.
1.3. A TeX specific program `Prog'
----------------------------------
-texk/Prog/ac/withenable.ac defines libraries required by Prog, provides the
- configure option --disable-Prog
-texk/Prog/ac/Prog.ac optionally defines Prog specific configure option
- that should be seen at the top-level
+texk/Prog/ac/withenable.ac defines libraries required by Prog,
+ provides the configure option --disable-Prog
+texk/Prog/ac/Prog.ac optionally 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
+utils/Util/ac/withenable.ac defines libraries required by Util, provides
+ the configure option --disable-Util
2. Running `configure'
======================
@@ -140,7 +141,7 @@ up to 50 compilations in parallel.
--------------------------------
Further speed up of a TL build can be achieved by using a configure cache
-file, e.g., running 'configure -C' at the top-level.
+file, e.g., running 'configure -C' at the top level.
3.5 Comments
------------
@@ -164,7 +165,7 @@ fix the problem, and once again run 'make' from the top-level.
3.5.3 Comment 3
---------------
-The build system allows to successfully run 'make dist' and 'make distcheck'
+The TL build system successfully runs 'make dist' and 'make distcheck'
(at least on my {i686,x86_64}-linux-gnu systems), producing tarballs
tex-live-20YY-MM-DD.tar.{gz,xz} from which everything can be (re-)built;
please keep it that way!
@@ -178,7 +179,7 @@ and programs not to be built. This is necessary for Make targets such as
the normal targets `all', `check', or `install' only recurse into the
required subdirectories.
-As a side effect, this allows to build all programs 'on demand'. If, e.g.,
+As a side effect, this allows building all programs `on demand'. If, e.g.,
building in utils/Util/ or texk/Prog/ has been disabled, the Makefile in
that directory still contains all build rules. Thus running 'make' and
'make install' in that directory will build and install everything.
@@ -193,4 +194,3 @@ i.e., no programs and consequently no libraries are to be built. Running
nothing; similarly 'make install' will install nothing. Nevertheless next
running, e.g., 'make tex' in the subdirectory texk/web2c/ will build first
the Kpathsea library, then tangle, and finally tex.
-