From bfbd87a0b6c0a2f58a463749e7502f780aaec362 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 29 Aug 2011 18:58:31 +0000 Subject: typos, etc. git-svn-id: svn://tug.org/texlive/trunk@23748 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/README | 10 ++++----- Build/source/README.coding | 15 +++++++------- Build/source/README.config | 25 ++++++++++++----------- Build/source/README.cross | 9 ++++----- Build/source/README.hacking | 49 +++++++++++++++++++++++++++------------------ Build/source/README.layout | 38 +++++++++++++++++------------------ 6 files changed, 77 insertions(+), 69 deletions(-) (limited to 'Build') 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 +Copyright (C) 2009-2011 Peter Breitenlohner 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 +Copyright (C) 2009-2011 Peter Breitenlohner 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=; arguments such as CFLAGS=... refer to +e.g., CC=; 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 +Copyright (C) 2009-2011 Peter Breitenlohner 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 +Copyright (C) 2009-2011 Peter Breitenlohner 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. - -- cgit v1.2.3