diff options
author | Karl Berry <karl@freefriends.org> | 2014-04-21 22:33:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-04-21 22:33:25 +0000 |
commit | d67cd9824523dc725b1cdf9229c38dfa69812e65 (patch) | |
tree | 5f25519b02159d2bc57f2003479fe2712951fad8 /Build/source | |
parent | 447bcd45d972526c26cc8436a8096a7898160bbd (diff) |
renname whole document to tlbuild rather than texlive, since that is what it describes
git-svn-id: svn://tug.org/texlive/trunk@33604 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
-rw-r--r-- | Build/source/doc/Makefile.am | 9 | ||||
-rw-r--r-- | Build/source/doc/Makefile.in | 36 | ||||
-rw-r--r-- | Build/source/doc/splitinfo.gawk | 24 | ||||
-rw-r--r-- | Build/source/doc/texlive.pdf | bin | 260099 -> 0 bytes | |||
-rw-r--r-- | Build/source/doc/texlive.texi | 131 | ||||
-rw-r--r-- | Build/source/doc/tlbuild.info (renamed from Build/source/doc/texlive.info) | 640 | ||||
-rw-r--r-- | Build/source/doc/tlbuild.texi | 352 |
7 files changed, 605 insertions, 587 deletions
diff --git a/Build/source/doc/Makefile.am b/Build/source/doc/Makefile.am index a734cab4f44..59c4aaecd77 100644 --- a/Build/source/doc/Makefile.am +++ b/Build/source/doc/Makefile.am @@ -1,20 +1,21 @@ ## Makefile.am for the TeX Live subdirectory ./doc/ ## -## Copyright 2013, 2014 Peter Breitenlohner <tex-live@tug.org> +## Copyright 2013-2014 Peter Breitenlohner <tex-live@tug.org> ## You may freely use, modify and/or distribute this file. ## ## The info files -info_TEXINFOS = texlive.texi -texlive_TEXINFOS = tlbuild.texi build-tools.txt +info_TEXINFOS = tlbuild.texi +texlive_TEXINFOS = build-tools.txt EXTRA_DIST = ${PDFS} splitinfo.gawk # just for development of the doc. -readme-files: texlive.texi +readme-files: tlbuild.texi rm -f README.* makeinfo --no-split -o /tmp/i $< # for error checking makeinfo --plaintext -o - $< \ | tee /tmp/a \ | gawk -f $(srcdir)/splitinfo.gawk ls -l README.* +# head -8 README.* .PHONY: readme-files diff --git a/Build/source/doc/Makefile.in b/Build/source/doc/Makefile.in index 3b7b5c3435b..6a7b118e774 100644 --- a/Build/source/doc/Makefile.in +++ b/Build/source/doc/Makefile.in @@ -79,8 +79,7 @@ build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(texlive_TEXINFOS) $(top_srcdir)/build-aux/texinfo.tex \ - ChangeLog + $(top_srcdir)/build-aux/texinfo.tex ChangeLog ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/kpse-cairo-flags.m4 \ $(top_srcdir)/m4/kpse-common.m4 \ @@ -248,14 +247,14 @@ AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) am__v_texidevnull_0 = > /dev/null am__v_texidevnull_1 = -INFO_DEPS = $(srcdir)/texlive.info +INFO_DEPS = $(srcdir)/tlbuild.info TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux -DVIS = texlive.dvi -PDFS = texlive.pdf -PSS = texlive.ps -HTMLS = texlive.html -TEXINFOS = texlive.texi +DVIS = tlbuild.dvi +PDFS = tlbuild.pdf +PSS = tlbuild.ps +HTMLS = tlbuild.html +TEXINFOS = tlbuild.texi TEXI2DVI = texi2dvi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html @@ -430,8 +429,8 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -info_TEXINFOS = texlive.texi -texlive_TEXINFOS = tlbuild.texi build-tools.txt +info_TEXINFOS = tlbuild.texi +texlive_TEXINFOS = build-tools.txt EXTRA_DIST = ${PDFS} splitinfo.gawk all: all-am @@ -517,10 +516,10 @@ clean-libtool: else \ rm -rf $(@:.html=.htp); exit 1; \ fi -$(srcdir)/texlive.info: texlive.texi $(texlive_TEXINFOS) -texlive.dvi: texlive.texi $(texlive_TEXINFOS) -texlive.pdf: texlive.texi $(texlive_TEXINFOS) -texlive.html: texlive.texi $(texlive_TEXINFOS) +$(srcdir)/tlbuild.info: tlbuild.texi +tlbuild.dvi: tlbuild.texi +tlbuild.pdf: tlbuild.texi +tlbuild.html: tlbuild.texi .dvi.ps: $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) $(AM_V_texinfo) -o $@ $< @@ -602,11 +601,11 @@ dist-info: $(INFO_DEPS) done mostlyclean-aminfo: - -rm -rf texlive.t2d texlive.t2p + -rm -rf tlbuild.t2d tlbuild.t2p clean-aminfo: - -test -z "texlive.dvi texlive.pdf texlive.ps texlive.html" \ - || rm -rf texlive.dvi texlive.pdf texlive.ps texlive.html + -test -z "tlbuild.dvi tlbuild.pdf tlbuild.ps tlbuild.html" \ + || rm -rf tlbuild.dvi tlbuild.pdf tlbuild.ps tlbuild.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ @@ -870,13 +869,14 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ # just for development of the doc. -readme-files: texlive.texi +readme-files: tlbuild.texi rm -f README.* makeinfo --no-split -o /tmp/i $< # for error checking makeinfo --plaintext -o - $< \ | tee /tmp/a \ | gawk -f $(srcdir)/splitinfo.gawk ls -l README.* +# head -8 README.* .PHONY: readme-files # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/Build/source/doc/splitinfo.gawk b/Build/source/doc/splitinfo.gawk index dd1133fafb4..143b247e038 100644 --- a/Build/source/doc/splitinfo.gawk +++ b/Build/source/doc/splitinfo.gawk @@ -9,24 +9,26 @@ BEGIN { } { - if (/^[*=]+$/) { # starting new chapter or section + if (/^[*]+$/) { # starting new chapter # if we're at the index, quit. if (lastline == "Index") exit (0); - # otherwise ignore unless chapter 2 (don't care about top, index, etc.) - if (lastline !~ /^2/) next; + # move on unless starting a chapter we want (not top, intro, etc.) + if (lastline !~ /^[2-9]/) next; - # ok, we want this. if we had a file open already, close it. + # ok, we want this chapter. if we had a file open already, close it. if (outfile) close (outfile); - # turn section title into filename and start new. + # turn chapter title into filename and start new. outfile = tolower (lastline); # all lowercase - sub ("^2 ", "2.0 overview ", outfile); # consider beginning of chapter as 2.0 - sub ("^2\\.", "", outfile); # remove "2." - sub (" ", "", outfile); # remove first space (after secnum) - sub (" .*", "", outfile); # remove space and everything after, - # leaving just the first word. - outfile = "README." outfile; # prefix "README. + chapnum = substr (outfile, 0, 1); # chapter number + sub ("^. ", "", outfile); # remove chapnum and following space + sub (" .*", "", outfile); # remove next space and everything + # after, leaving just the first word. + + # start numbering the README files at 0. + chapnum = chapnum - 2; + outfile = "README." chapnum outfile; # prefix "README. # print "(This file was generated by makeinfo and splitinfo.gawk.)">outfile; print "(Released under the old-style GNU documentation license;" >outfile; diff --git a/Build/source/doc/texlive.pdf b/Build/source/doc/texlive.pdf Binary files differdeleted file mode 100644 index 75765bebfca..00000000000 --- a/Build/source/doc/texlive.pdf +++ /dev/null diff --git a/Build/source/doc/texlive.texi b/Build/source/doc/texlive.texi deleted file mode 100644 index 0c752813516..00000000000 --- a/Build/source/doc/texlive.texi +++ /dev/null @@ -1,131 +0,0 @@ -\input texinfo -@setfilename texlive.info - -@set version 2014 -@set month-year April 2014 - -@set mytitle Building @TeX{} Live (@value{version}) -@settitle @value{mytitle} - -@macro TL -@TeX{} Live -@end macro - -@copying -This file documents the @TL{} build system and more. - -Copyright @copyright{} 2013, 2014 Karl Berry & Peter Breitenlohner. - -Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - -@ignore -Permission is granted to process this file through TeX and print the -results, provided the printed document carries a copying permission -notice identical to this one except for the removal of this paragraph -(this paragraph not being relevant to the printed manual). -@end ignore - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation -approved by the @TeX{} Users Group. -@end copying - -@c Put everything in one index (arbitrarily chosen to be the concept index). -@syncodeindex fn cp -@syncodeindex ky cp -@syncodeindex pg cp -@syncodeindex tp cp -@syncodeindex vr cp - -@dircategory TeX -@direntry -* Building TeX Live: (texlive). TL configuration and development. -@end direntry - -@titlepage -@title @value{mytitle} -@subtitle @value{version} release -@subtitle @value{month-year} -@author Karl Berry -@author Peter Breitenlohner -@author @url{http://tug.org/tex-live} - -@page -@vskip 0pt plus 1filll -@insertcopying -@end titlepage - -@shortcontents -@contents - -@ifnottex -@node Top -@top @value{mytitle} - -For an overview of this manual, @pxref{Introduction}. - -@menu -* Introduction:: Overview. -* Build system:: The @TL{} build system. -* Index:: General index. -@end menu -@end ifnottex - - -@node Introduction -@chapter Introduction - -@cindex introduction - -This manual (dated @value{month-year}) corresponds to the @TL{} -@value{version} release. - -This manual is aimed at system installers and programmers, and focuses -on how to configure, build, and develop the @TL{} (TL) sources. The -sources can be acquired in a number of ways: see -@url{http://tug.org/texlive/svn}. - -This manual does not duplicate the (primarily user-level) information -found in other TL documentation resources, such as: - -@itemize -@item The @TL{} web pages: @url{http://tug.org/texlive}. - -@item The @TL{} user manual: @url{http://tug.org/texlive/doc.html}, or -run @code{texdoc texlive}. - -@item Other @TeX{}-related Texinfo manuals (@pxref{,,,web2c, Web2c}, -@ref{,,,kpathsea, Kpathsea}, etc.): -@url{http://tug.org/texinfohtml/}, or check the @samp{TeX} category in -the GNU Info system. - -@item Package documentation: -@url{http://tug.org/texlive/Contents/live/doc.html}, or the -@file{doc.html} file at the top level of the installed TL. - -@end itemize - -@ignore -As an exception, the full documentation for @code{install-tl} and -@code{tlmgr} is included here, just because it is convenient to do so. -The same text is available online (linked from -@url{http://tug.org/texlive/doc.html}, or by giving @samp{--help} to -the program (or look at the end of the source file). -@end ignore - -@include tlbuild.texi - -@node Index -@unnumbered Index - -@printindex cp - -@bye diff --git a/Build/source/doc/texlive.info b/Build/source/doc/tlbuild.info index 10db03f2238..a3d3e0278d3 100644 --- a/Build/source/doc/texlive.info +++ b/Build/source/doc/tlbuild.info @@ -1,5 +1,5 @@ -This is texlive.info, produced by makeinfo version 5.2 from -texlive.texi. +This is tlbuild.info, produced by makeinfo version 5.2 from +tlbuild.texi. This file documents the TeX Live build system and more. @@ -20,11 +20,11 @@ versions, except that this permission notice may be stated in a translation approved by the TeX Users Group. INFO-DIR-SECTION TeX START-INFO-DIR-ENTRY -* Building TeX Live: (texlive). TL configuration and development. +* TeX Live building: (tlbuild). TL configuration and development. END-INFO-DIR-ENTRY -File: texlive.info, Node: Top, Next: Introduction, Up: (dir) +File: tlbuild.info, Node: Top, Next: Introduction, Up: (dir) Building TeX Live (2014) ************************ @@ -33,12 +33,19 @@ For an overview of this manual, *note Introduction::. * Menu: -* Introduction:: Overview. -* Build system:: The TeX Live build system. +* Introduction:: About this manual. +* Overview of build system:: The TeX Live build system. +* Prerequisites:: Requirements for building TeX Live. +* Building:: The overall build process. +* Installing:: How and where installation happens (or not). +* Layout and infrastructure:: Autoconf macros, etc., in detail. +* Configure options:: List of all configure options. +* Cross compilation:: Building on host X for target Y. +* Coding conventions:: Conventions to follow. * Index:: General index. -File: texlive.info, Node: Introduction, Next: Build system, Prev: Top, Up: Top +File: tlbuild.info, Node: Introduction, Next: Overview of build system, Prev: Top, Up: Top 1 Introduction ************** @@ -47,7 +54,7 @@ This manual (dated April 2014) corresponds to the TeX Live 2014 release. This manual is aimed at system installers and programmers, and focuses on how to configure, build, and develop the TeX Live (TL) -sources. The sources can be acquired in a number of ways: see +sources. The sources can be acquired in a number of ways; see <http://tug.org/texlive/svn>. This manual does not duplicate the (primarily user-level) information @@ -67,10 +74,10 @@ found in other TL documentation resources, such as: file at the top level of the installed TL. -File: texlive.info, Node: Build system, Next: Index, Prev: Introduction, Up: Top +File: tlbuild.info, Node: Overview of build system, Next: Prerequisites, Prev: Introduction, Up: Top -2 Build system -************** +2 Overview of build system +************************** The TeX Live build system was redesigned in 2009, consistently using Autoconf, Automake, and Libtool. Thus @@ -83,6 +90,9 @@ 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'.) @@ -93,9 +103,6 @@ list of all 'configure' options. 'utils/PROG' Other programs (that don't use Kpathsea). -'libs/LIB' - Generic libraries. - 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 @@ -111,27 +118,17 @@ 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 tree. +source tree and document any modifications of that source. All this is for the sake of simplifying both upgrading of modules maintained independently and integrating new modules into the TL build -system. (Not to say that either task has become trivial.) - -* Menu: - -* Prerequisites:: Requirements for building TeX Live. -* Building:: The overall build process. -* Installing:: How and where installation happens (or not). -* Infrastructure and layout:: Autoconf macros, etc., in detail. -* Configure options:: List of all configure options. -* Cross compilation:: -* Coding conventions:: +system. (Not to say that either task is trivial.) -File: texlive.info, Node: Prerequisites, Next: Building, Up: Build system +File: tlbuild.info, Node: Prerequisites, Next: Building, Prev: Overview of build system, Up: Top -2.1 Prerequisites for building TeX Live -======================================= +3 Prerequisites +*************** Overall, building the TeX Live programs, when using all libraries from the TL source tree, requires only C and C++ compilers and GNU 'make'. @@ -150,20 +147,21 @@ Automake/Autoconf output in general) should work with any reasonable 'xdvik' 'xpdfopen' - require X11 headers and libraries, often a "development" package - that is not installed by default. + require X11 headers and libraries, often in "development" packages + that are not installed by default. 'xetex' requires 'fontconfig' (again both headers and library). 'xindy' - requires GNU 'clisp' and in addition 'perl', 'latex', and - 'pdflatex' to build the rules and/or documentation. + requires GNU 'clisp' and 'libffcall', and in addition 'perl', + 'latex', and 'pdflatex' to build the rules and/or documentation. Lacking the required tools, building these programs must avoided, e.g., -'configure --disable-biber --without-x --disable-xetex --disable-xindy'. +'configure --disable-biber --without-x --disable-xetex --disable-xindy' - Modifying source files also induces more requirements: + Modifying source files induces more requirements, as one might +expect: * Modification of any '.y' or '.l' source files requires 'bison' or 'flex' to updatete the corresponding C sources. @@ -175,11 +173,17 @@ Lacking the required tools, building these programs must avoided, e.g., GNU Autoconf, GNU Automake, and GNU Libtool to update the generated files. *Note Build system tools::. + If you haven't modified any source files, and infrastructure tools +such as 'autoconf' or 'makeinfo' are still being run, check your +timestamps--notably, 'use-commit-times' must be set to 'yes' in your +Subversion configuration (*note Build system tools::). Barring buggy +commits, no infrastructure tools are needed to do a normal build. + -File: texlive.info, Node: Building, Next: Installing, Prev: Prerequisites, Up: Build system +File: tlbuild.info, Node: Building, Next: Installing, Prev: Prerequisites, Up: Top -2.2 Building -============ +4 Building +********** The top-level 'Build' script is intended to simplify building the binaries distributed with TeX Live itself--we call this the "native" TL @@ -248,10 +252,10 @@ usable TeX system, since all the support files are lacking; see the next section.) -File: texlive.info, Node: Installing, Next: Infrastructure and layout, Prev: Building, Up: Build system +File: tlbuild.info, Node: Installing, Next: Layout and infrastructure, Prev: Building, Up: Top -2.3 Installing -============== +5 Installing +************ This section discusses the results of 'make install' in the source tree. @@ -273,10 +277,10 @@ and/or the TeX Live installer, 'install-tl'. More information is under * Distro builds:: Configuring and building for OS distributions. -File: texlive.info, Node: Installation directories, Next: Linked scripts, Up: Installing +File: tlbuild.info, Node: Installation directories, Next: Linked scripts, Up: Installing -2.3.1 Installation directories ------------------------------- +5.1 Installation directories +============================ Running 'make install' (or 'make install-strip') installs executables in 'BINDIR', libraries in 'LIBDIR', headers in 'INCLUDEDIR', general data @@ -318,34 +322,34 @@ usable from that location; they need to be copied to in './inst/' are ignored. -File: texlive.info, Node: Linked scripts, Next: Distro builds, Prev: Installation directories, Up: Installing +File: tlbuild.info, Node: Linked scripts, Next: Distro builds, Prev: Installation directories, Up: Installing -2.3.2 Linked scripts --------------------- +5.2 Linked scripts +================== Quite a few executables are architecture-independent shell, Perl, or -other scripts, rather than compiled binaries. A few are maintained as -part of the TL source tree, but most are maintained elsewhere with -copies under 'texk/texlive/linked_scripts'. These are installed under +other interpreted scripts, rather than compiled binaries. A few are +maintained as part of the TL source tree, but most are maintained +elsewhere with copies under 'texk/texlive/linked_scripts'. + + These so-called "linked scripts" are installed under 'DATAROOTDIR/texmf-dist/scripts'; for Unix-like systems a symbolic link is made in 'BINDIR'. For example, a symlink points from 'BINDIR/ps2eps' -to 'DATAROOTDIR/texmf-dist/scripts/ps2eps/ps2eps.pl'. - - For Windows, a standard wrapper binary (e.g., 'BINDIR/ps2eps.exe') -serves the same purpose. (The source for it is in -'texk/texlive/w32_wrapper'.) +to 'DATAROOTDIR/texmf-dist/scripts/ps2eps/ps2eps.pl'. For Windows, a +standard wrapper binary (e.g., 'BINDIR/ps2eps.exe') serves the same +purpose. (The source for the wrapper is in 'texk/texlive/w32_wrapper'.) - One reason for all this is to avoid having many copies for the same -script, but most importantly this allows invoking the same script on all + One reason for all this is to avoid having many copies of the same +script, but more importantly this allows invoking the same script on all operating systems. Furthermore, we want the 'BINDIR' resulting from the build to be exactly what is in the TL distribution; any deviations cause considerable extra work. -File: texlive.info, Node: Distro builds, Prev: Linked scripts, Up: Installing +File: tlbuild.info, Node: Distro builds, Prev: Linked scripts, Up: Installing -2.3.3 Distro builds -------------------- +5.3 Distro builds +================= Although they use the same code base, building for the native TL distribution as shipped by the TL user groups is typically quite @@ -403,10 +407,10 @@ has written a detailed article on adapting TL for distros: updating at some point, perhaps we will merge it into this document.) -File: texlive.info, Node: Infrastructure and layout, Next: Configure options, Prev: Installing, Up: Build system +File: tlbuild.info, Node: Layout and infrastructure, Next: Configure options, Prev: Installing, Up: Top -2.4 Infrastructure and layout -============================= +6 Layout and infrastructure +*************************** The TeX Live source tree is the subtree rooted at 'Build/source' of the complete TL distribution and contains the sources for all executables @@ -423,10 +427,10 @@ build and install them together with some of their support files. * Extending TeX Live:: Adding a new module. -File: texlive.info, Node: Build system tools, Next: Top-level directories, Up: Infrastructure and layout +File: tlbuild.info, Node: Build system tools, Next: Top-level directories, Up: Layout and infrastructure -2.4.1 Build system tools ------------------------- +6.1 Build system tools +====================== As mentioned above (*note Prerequisites::), a normal build requires very little. On the other hand, if you want to modify the TeX Live @@ -468,18 +472,18 @@ necessary to 'touch' the generated ('.c', '.h', or '.info') files. With finally all 'Makefile.in' files. Perhaps 'make -t' will help. -File: texlive.info, Node: Top-level directories, Next: Autoconf macros, Prev: Build system tools, Up: Infrastructure and layout +File: tlbuild.info, Node: Top-level directories, Next: Autoconf macros, Prev: Build system tools, Up: Layout and infrastructure -2.4.2 Top-level directories ---------------------------- +6.2 Top-level directories +========================= Here is a brief description of the top-level directories in the TeX Live source tree. - As mentioned at the beginning of the chapter (*note Build system::), -the main source directories are 'texk/' (TeX-specific programs and -libraries), 'utils/' (additional programs), and 'libs' (generic -libraries). + As mentioned at the beginning of the chapter (*note Overview of build +system::), the main source directories are 'texk/' (TeX-specific +programs and libraries), 'utils/' (additional programs), and 'libs' +(generic libraries). The top-level directories 'am/' and 'm4/' contain 'Makefile.am' fragments and Autoconf macros, respectively, used in many places. @@ -511,10 +515,10 @@ build, but are present for convenience, e.g., 'epstopdf' developed here and 'xz/' required by the TL installer. -File: texlive.info, Node: Autoconf macros, Next: Library modules, Prev: Top-level directories, Up: Infrastructure and layout +File: tlbuild.info, Node: Autoconf macros, Next: Library modules, Prev: Top-level directories, Up: Layout and infrastructure -2.4.3 Autoconf macros ---------------------- +6.3 Autoconf macros +=================== Here we describe some of the Autoconf macros used in several modules-not a complete list, by any means. These general macros are supplemented by @@ -532,10 +536,10 @@ modules::. * Windows: Macros for Windows. -File: texlive.info, Node: General setup macros, Next: Macros for programs, Up: Autoconf macros +File: tlbuild.info, Node: General setup macros, Next: Macros for programs, Up: Autoconf macros -2.4.3.1 General setup macros -............................ +6.3.1 General setup macros +-------------------------- The TL sources use two general setup macros: @@ -557,10 +561,10 @@ The TL sources use two general setup macros: structures. This is used for TeX-specific modules. -File: texlive.info, Node: Macros for programs, Next: Macros for compilers, Prev: General setup macros, Up: Autoconf macros +File: tlbuild.info, Node: Macros for programs, Next: Macros for compilers, Prev: General setup macros, Up: Autoconf macros -2.4.3.2 Macros for programs -........................... +6.3.2 Macros for programs +------------------------- Macros for program checks: @@ -581,10 +585,10 @@ Macros for program checks: Call 'AC_PROG_LEX' and add the flag '-l' for 'flex'. -File: texlive.info, Node: Macros for compilers, Next: Macros for libraries, Prev: Macros for programs, Up: Autoconf macros +File: tlbuild.info, Node: Macros for compilers, Next: Macros for libraries, Prev: Macros for programs, Up: Autoconf macros -2.4.3.3 Macros for compilers -............................ +6.3.3 Macros for compilers +-------------------------- Macros for compiler-related checks: @@ -617,10 +621,10 @@ Macros for compiler-related checks: This macro caches its result in the 'kpse_cv_cxx_hack' variable. -File: texlive.info, Node: Macros for libraries, Next: Macros for library and header flags, Prev: Macros for compilers, Up: Autoconf macros +File: tlbuild.info, Node: Macros for libraries, Next: Macros for library and header flags, Prev: Macros for compilers, Up: Autoconf macros -2.4.3.4 Macros for libraries -............................ +6.3.4 Macros for libraries +-------------------------- One macro for a library check: @@ -629,10 +633,10 @@ One macro for a library check: '-D' flags (optionally including '-DEXTRA-DEFINE') to VARIABLE. -File: texlive.info, Node: Macros for library and header flags, Next: Macros for Windows, Prev: Macros for libraries, Up: Autoconf macros +File: tlbuild.info, Node: Macros for library and header flags, Next: Macros for Windows, Prev: Macros for libraries, Up: Autoconf macros -2.4.3.5 Macros for library and header flags -........................................... +6.3.5 Macros for library and header flags +----------------------------------------- Each library module 'libs/LIB' or 'texk/LIB' is supplemented by a macro 'KPSE_LIB_FLAGS' (all uppercase) that provides make variables for that @@ -677,10 +681,10 @@ features were available, 'configure.ac' should be continued this way: KPSE_RESTORE_FLAGS # restore 'CPPFLAGS' and 'LIBS' -File: texlive.info, Node: Macros for Windows, Prev: Macros for library and header flags, Up: Autoconf macros +File: tlbuild.info, Node: Macros for Windows, Prev: Macros for library and header flags, Up: Autoconf macros -2.4.3.6 Macros for Windows -.......................... +6.3.6 Macros for Windows +------------------------ Windows differs in several aspects from Unix-like systems, many of them due to the lack of symbolic links. @@ -716,10 +720,10 @@ due to the lack of symbolic links. systems. -File: texlive.info, Node: Library modules, Next: Program modules, Prev: Autoconf macros, Up: Infrastructure and layout +File: tlbuild.info, Node: Library modules, Next: Program modules, Prev: Autoconf macros, Up: Layout and infrastructure -2.4.4 Library modules ---------------------- +6.4 Library modules +=================== Here we discuss some specifics for a few of the libraries in TL, both for the details themselves, and as a way of illuminating the general @@ -733,10 +737,10 @@ structure and variation. * 'kpathsea' library:: 'texk/kpathsea' -File: texlive.info, Node: 'png' library, Next: 'zlib' library, Up: Library modules +File: tlbuild.info, Node: 'png' library, Next: 'zlib' library, Up: Library modules -2.4.4.1 The 'png' library in 'libs/libpng' -.......................................... +6.4.1 The 'png' library in 'libs/libpng' +---------------------------------------- This generic library uses the source tree in, e.g., the subdirectory 'libpng-1.5.17' with all modifications for TL recorded in @@ -787,10 +791,10 @@ defining 'make' rules to rebuild the library. required for the system library. -File: texlive.info, Node: 'zlib' library, Next: 'freetype' library, Prev: 'png' library, Up: Library modules +File: tlbuild.info, Node: 'zlib' library, Next: 'freetype' library, Prev: 'png' library, Up: Library modules -2.4.4.2 The 'zlib' library in 'libs/zlib' -......................................... +6.4.2 The 'zlib' library in 'libs/zlib' +--------------------------------------- This generic library is very much analogous to 'libpng', but without the dependency on any other library. The file 'm4/kpse-zlib-flags.m4' @@ -799,10 +803,10 @@ supplies the configure option '--with-system-zlib', as well as locations of the 'zlib' headers and/or library. -File: texlive.info, Node: 'freetype' library, Next: 'kpathsea' library, Prev: 'zlib' library, Up: Library modules +File: tlbuild.info, Node: 'freetype' library, Next: 'kpathsea' library, Prev: 'zlib' library, Up: Library modules -2.4.4.3 The 'freetype' library in 'libs/freetype2' -.................................................. +6.4.3 The 'freetype' library in 'libs/freetype2' +------------------------------------------------ This module uses a wrapper build system with an almost trivial 'configure.ac' and with a 'Makefile.am' that invokes 'configure' and @@ -811,10 +815,10 @@ build tree as destination. The flags required for the system library are obtained through 'freetype-config'. -File: texlive.info, Node: 'kpathsea' library, Prev: 'freetype' library, Up: Library modules +File: tlbuild.info, Node: 'kpathsea' library, Prev: 'freetype' library, Up: Library modules -2.4.4.4 The 'kpathsea' library in 'texk/kpathsea' -................................................. +6.4.4 The 'kpathsea' library in 'texk/kpathsea' +----------------------------------------------- This is one of the TeX-specific libraries that are maintained as part of TeX Live (*note (kpathsea)::). Despite being a core part of the TeX @@ -839,10 +843,10 @@ any case, however, the command line options '-mktex=tfm' or '-no-mktex=tfm' for the TeX-like engines override this default. -File: texlive.info, Node: Program modules, Next: Extending TeX Live, Prev: Library modules, Up: Infrastructure and layout +File: tlbuild.info, Node: Program modules, Next: Extending TeX Live, Prev: Library modules, Up: Layout and infrastructure -2.4.5 Program modules ---------------------- +6.5 Program modules +=================== As with libraries (*note Library modules::), here we discuss the details for a few of the programs in TL. @@ -855,10 +859,10 @@ for a few of the programs in TL. * 'asymptote':: 'utils/asymptote' -File: texlive.info, Node: 't1utils' package, Next: 'xindy' package, Up: Program modules +File: tlbuild.info, Node: 't1utils' package, Next: 'xindy' package, Up: Program modules -2.4.5.1 The 't1utils' package in 'utils/t1utils' -................................................ +6.5.1 The 't1utils' package in 'utils/t1utils' +---------------------------------------------- Once again we use the distributed source tree 't1utils-1.38' with modifications documented in 't1utils-1.38-PATCHES/*' and a proxy build @@ -871,10 +875,10 @@ specifying the module name without any dependencies, and supplies the configure option '--disable-t1utils'. -File: texlive.info, Node: 'xindy' package, Next: 'xdvik' package, Prev: 't1utils' package, Up: Program modules +File: tlbuild.info, Node: 'xindy' package, Next: 'xdvik' package, Prev: 't1utils' package, Up: Program modules -2.4.5.2 The 'xindy' package in 'utils/xindy' -............................................ +6.5.2 The 'xindy' package in 'utils/xindy' +------------------------------------------ This module uses the distributed source tree 'xindy-2.4' with modifications documented in 'xindy-2.4-PATCHES/*', a proxy @@ -897,10 +901,10 @@ seen at the top level with 'ac/xindy.ac' also included by 'configure.ac'. -File: texlive.info, Node: 'xdvik' package, Next: 'asymptote', Prev: 'xindy' package, Up: Program modules +File: tlbuild.info, Node: 'xdvik' package, Next: 'asymptote', Prev: 'xindy' package, Up: Program modules -2.4.5.3 The 'xdvik' package in 'texk/xdvik' -........................................... +6.5.3 The 'xdvik' package in 'texk/xdvik' +----------------------------------------- This package is maintained as part of the TeX Live tree with sources in its top level directory and the subdirectory 'gui'. The fragment @@ -922,10 +926,10 @@ system whereas the auxiliary program 'squeeze/squeeze' has to run on the also seen at the top-level. -File: texlive.info, Node: 'asymptote', Prev: 'xdvik' package, Up: Program modules +File: tlbuild.info, Node: 'asymptote', Prev: 'xdvik' package, Up: Program modules -2.4.5.4 The subdirectory 'utils/asymptote' -.......................................... +6.5.4 The subdirectory 'utils/asymptote' +---------------------------------------- This subdirectory contains the sources for 'asy' and 'xasy' but due to its complexity and prerequisites (e.g., OpenGL) it is not part of the TL @@ -933,10 +937,10 @@ build system. These programs must be built and installed independently, but are included on the TL DVD together with their support files. -File: texlive.info, Node: Extending TeX Live, Prev: Program modules, Up: Infrastructure and layout +File: tlbuild.info, Node: Extending TeX Live, Prev: Program modules, Up: Layout and infrastructure -2.4.6 Extending TeX Live ------------------------- +6.6 Extending TeX Live +====================== This section outlines the basic process for adding new packages to the TL build system. @@ -948,10 +952,10 @@ TL build system. * Adding a new TeX-specific library module:: -File: texlive.info, Node: Adding a new program module, Next: Adding a new generic library module, Up: Extending TeX Live +File: tlbuild.info, Node: Adding a new program module, Next: Adding a new generic library module, Up: Extending TeX Live -2.4.6.1 Adding a new program module -................................... +6.6.1 Adding a new program module +--------------------------------- A TeX-specific program module in a subdirectory 'texk/PROG' may use the TeX-specific libraries and is included by adding its name 'PROG' to the @@ -982,10 +986,10 @@ top-level, they should be defined in an additional fragment 'ac/PROG.ac' included from 'ac/withenable.ac' and 'configure.ac'. -File: texlive.info, Node: Adding a new generic library module, Next: Adding a new TeX-specific library module, Prev: Adding a new program module, Up: Extending TeX Live +File: tlbuild.info, Node: Adding a new generic library module, Next: Adding a new TeX-specific library module, Prev: Adding a new program module, Up: Extending TeX Live -2.4.6.2 Adding a new generic library module -........................................... +6.6.2 Adding a new generic library module +----------------------------------------- A generic library module in a subdirectory 'libs/LIB' must not depend on TeX-specific libraries, by definition. It is included by adding its @@ -1024,10 +1028,10 @@ line: 'AC_REQUIRE([KPSE_LIB_SYSTEM_FLAGS])' -File: texlive.info, Node: Adding a new TeX-specific library module, Prev: Adding a new generic library module, Up: Extending TeX Live +File: tlbuild.info, Node: Adding a new TeX-specific library module, Prev: Adding a new generic library module, Up: Extending TeX Live -2.4.6.3 Adding a new TeX-specific library module -................................................ +6.6.3 Adding a new TeX-specific library module +---------------------------------------------- A TeX-specific library module in a subdirectory 'texk/LIB' may depend on other TeX-specific libraries but must not depend on any generic library @@ -1040,10 +1044,10 @@ library (see the previous section), with these modifications: * The fragment 'ac/withenable.ac' must use 'KPSE_WITH_TEXLIB'. -File: texlive.info, Node: Configure options, Next: Cross compilation, Prev: Infrastructure and layout, Up: Build system +File: tlbuild.info, Node: Configure options, Next: Cross compilation, Prev: Layout and infrastructure, Up: Top -2.5 Configure options -===================== +7 Configure options +******************* Corresponding to the large number of program and library modules there are a large number 'configure' options, most of which are described @@ -1077,10 +1081,10 @@ are checked for consistency but never modified. * Variables for configure:: -File: texlive.info, Node: Global configure options, Next: Program-specific configure options, Up: Configure options +File: tlbuild.info, Node: Global configure options, Next: Program-specific configure options, Up: Configure options -2.5.1 Global configure options ------------------------------- +7.1 Global configure options +============================ Here are the global configure options. @@ -1100,10 +1104,10 @@ Here are the global configure options. * '--without-x':: -File: texlive.info, Node: '--disable-native-texlive-build', Next: '--prefix' '--bindir' ..., Up: Global configure options +File: tlbuild.info, Node: '--disable-native-texlive-build', Next: '--prefix' '--bindir' ..., Up: Global configure options -2.5.1.1 '--disable-native-texlive-build' -........................................ +7.1.1 '--disable-native-texlive-build' +-------------------------------------- If enabled (the default), build for a TL binary distribution as shipped by the TeX user groups. This requires GNU 'make' and implies @@ -1122,10 +1126,10 @@ also be built independently from the TL tree (such as 'utils/xindy' and installation paths. -File: texlive.info, Node: '--prefix' '--bindir' ..., Next: '--disable-largefile', Prev: '--disable-native-texlive-build', Up: Global configure options +File: tlbuild.info, Node: '--prefix' '--bindir' ..., Next: '--disable-largefile', Prev: '--disable-native-texlive-build', Up: Global configure options -2.5.1.2 '--prefix', '--bindir', ... -................................... +7.1.2 '--prefix', '--bindir', ... +--------------------------------- These standard Autoconf options specify various installation directories as usual. For the complete list, *note Installation directories::. @@ -1135,10 +1139,10 @@ set, on the 'make' command line (*note Installation in a temporary location: (automake)Staged Installs.). -File: texlive.info, Node: '--disable-largefile', Next: '--disable-missing', Prev: '--prefix' '--bindir' ..., Up: Global configure options +File: tlbuild.info, Node: '--disable-largefile', Next: '--disable-missing', Prev: '--prefix' '--bindir' ..., Up: Global configure options -2.5.1.3 '--disable-largefile' -............................. +7.1.3 '--disable-largefile' +--------------------------- Omit large file support (LFS), needed on most 32-bit Unix systems for files with 2GB or more. Regardless of this, the size of 'DVI' and 'GF' @@ -1151,20 +1155,20 @@ when using older versions of 'poppler' (even on 64-bit systems with LFS), whereas 'poppler' versions 0.23 and later impose no such limit. -File: texlive.info, Node: '--disable-missing', Next: '--enable-compiler-warnings='LEVEL, Prev: '--disable-largefile', Up: Global configure options +File: tlbuild.info, Node: '--disable-missing', Next: '--enable-compiler-warnings='LEVEL, Prev: '--disable-largefile', Up: Global configure options -2.5.1.4 '--disable-missing' -........................... +7.1.4 '--disable-missing' +------------------------- Immediately terminate the build process if a requested program or feature must be disabled, e.g., due to missing libraries. This can help when figuring out a specific (sub)set of modules to enable. -File: texlive.info, Node: '--enable-compiler-warnings='LEVEL, Next: '--enable-cxx-runtime-hack', Prev: '--disable-missing', Up: Global configure options +File: tlbuild.info, Node: '--enable-compiler-warnings='LEVEL, Next: '--enable-cxx-runtime-hack', Prev: '--disable-missing', Up: Global configure options -2.5.1.5 '--enable-compiler-warnings='LEVEL -.......................................... +7.1.5 '--enable-compiler-warnings='LEVEL +---------------------------------------- Enable various levels of compiler warnings for (Objective) C and C++: the LEVEL value can be one of: 'no min yes max all'. The default is @@ -1177,20 +1181,20 @@ portability problems. compilers but flags for other compilers could be added when needed. -File: texlive.info, Node: '--enable-cxx-runtime-hack', Next: '--enable-maintainer-mode', Prev: '--enable-compiler-warnings='LEVEL, Up: Global configure options +File: tlbuild.info, Node: '--enable-cxx-runtime-hack', Next: '--enable-maintainer-mode', Prev: '--enable-compiler-warnings='LEVEL, Up: Global configure options -2.5.1.6 '--enable-cxx-runtime-hack' -................................... +7.1.6 '--enable-cxx-runtime-hack' +--------------------------------- If enabled (as it is for the native TL build) and when using 'g++', try to statically link with 'libstdc++', somewhat improving portability of the resulting binary. *Note Macros for compilers::. -File: texlive.info, Node: '--enable-maintainer-mode', Next: '--enable-multiplatform', Prev: '--enable-cxx-runtime-hack', Up: Global configure options +File: tlbuild.info, Node: '--enable-maintainer-mode', Next: '--enable-multiplatform', Prev: '--enable-cxx-runtime-hack', Up: Global configure options -2.5.1.7 '--enable-maintainer-mode' -.................................. +7.1.7 '--enable-maintainer-mode' +-------------------------------- Enable 'make' rules and dependencies not useful (and sometimes confusing) to the casual user. This requires current versions of the @@ -1199,10 +1203,10 @@ rebuilds infrastructure files as needed. *Note 'missing' and 'AM_MAINTAINER_MODE': (automake)maintainer-mode. -File: texlive.info, Node: '--enable-multiplatform', Next: '--enable-shared', Prev: '--enable-maintainer-mode', Up: Global configure options +File: tlbuild.info, Node: '--enable-multiplatform', Next: '--enable-shared', Prev: '--enable-maintainer-mode', Up: Global configure options -2.5.1.8 '--enable-multiplatform' -................................ +7.1.8 '--enable-multiplatform' +------------------------------ If enabled, install executables and libraries in per-platform subdirectories of 'EPREFIX/bin' and 'EPREFIX/lib' where EPREFIX is the @@ -1212,20 +1216,20 @@ for 'bindir' and 'libdir' are automatically propagated to all subdirectories. -File: texlive.info, Node: '--enable-shared', Next: '--enable-silent-rules', Prev: '--enable-multiplatform', Up: Global configure options +File: tlbuild.info, Node: '--enable-shared', Next: '--enable-silent-rules', Prev: '--enable-multiplatform', Up: Global configure options -2.5.1.9 '--enable-shared' -......................... +7.1.9 '--enable-shared' +----------------------- Build shared versions of the TeX-specific libraries such as 'libkpathsea'. This is not allowed for a native TL build (i.e., '--disable-native-texlive-build' must also be specified). -File: texlive.info, Node: '--enable-silent-rules', Next: '--without-ln-s', Prev: '--enable-shared', Up: Global configure options +File: tlbuild.info, Node: '--enable-silent-rules', Next: '--without-ln-s', Prev: '--enable-shared', Up: Global configure options -2.5.1.10 '--enable-silent-rules' -................................ +7.1.10 '--enable-silent-rules' +------------------------------ Enable the use of less verbose build rules. When using GNU 'make' (or another 'make' implementation supporting nested variable expansions), @@ -1233,28 +1237,28 @@ you can specify 'V=1' on the 'make' command line to get more verbosity, or 'V=0' to get less, regardless of this option. -File: texlive.info, Node: '--without-ln-s', Next: '--without-x', Prev: '--enable-silent-rules', Up: Global configure options +File: tlbuild.info, Node: '--without-ln-s', Next: '--without-x', Prev: '--enable-silent-rules', Up: Global configure options -2.5.1.11 '--without-ln-s' -......................... +7.1.11 '--without-ln-s' +----------------------- Required when using a system without a working 'ln -s' to build binaries for a Unix-like system. However, 'make install' will not create anything useful and might even fail. -File: texlive.info, Node: '--without-x', Prev: '--without-ln-s', Up: Global configure options +File: tlbuild.info, Node: '--without-x', Prev: '--without-ln-s', Up: Global configure options -2.5.1.12 '--without-x' -...................... +7.1.12 '--without-x' +-------------------- Disable all programs using the X Window System. -File: texlive.info, Node: Program-specific configure options, Next: Library-specific configure options, Prev: Global configure options, Up: Configure options +File: tlbuild.info, Node: Program-specific configure options, Next: Library-specific configure options, Prev: Global configure options, Up: Configure options -2.5.2 Program-specific configure options ----------------------------------------- +7.2 Program-specific configure options +====================================== Here are (some of) the program-specific 'configure' options. @@ -1271,18 +1275,18 @@ Here are (some of) the program-specific 'configure' options. * Configure options for 'utils/xindy':: -File: texlive.info, Node: '--enable-PROG' '--disable-PROG', Next: '--disable-all-pkgs', Up: Program-specific configure options +File: tlbuild.info, Node: '--enable-PROG' '--disable-PROG', Next: '--disable-all-pkgs', Up: Program-specific configure options -2.5.2.1 '--enable-PROG', '--disable-PROG' -......................................... +7.2.1 '--enable-PROG', '--disable-PROG' +--------------------------------------- Do or do not build and install the program(s) of the module 'PROG'. -File: texlive.info, Node: '--disable-all-pkgs', Next: Configure options for 'texk/web2c', Prev: '--enable-PROG' '--disable-PROG', Up: Program-specific configure options +File: tlbuild.info, Node: '--disable-all-pkgs', Next: Configure options for 'texk/web2c', Prev: '--enable-PROG' '--disable-PROG', Up: Program-specific configure options -2.5.2.2 '--disable-all-pkgs' -............................ +7.2.2 '--disable-all-pkgs' +-------------------------- Do not build any program modules by default--only those explicitly enabled. Without this option, all modules are built except those that @@ -1290,10 +1294,10 @@ are explicitly disabled or specify 'disable' in their 'ac/withenable.ac' fragment. -File: texlive.info, Node: Configure options for 'texk/web2c', Next: Configure options for 'texk/bibtex-x', Prev: '--disable-all-pkgs', Up: Program-specific configure options +File: tlbuild.info, Node: Configure options for 'texk/web2c', Next: Configure options for 'texk/bibtex-x', Prev: '--disable-all-pkgs', Up: Program-specific configure options -2.5.2.3 Configure options for 'texk/web2c' -.......................................... +7.2.3 Configure options for 'texk/web2c' +---------------------------------------- '--with-banner-add=STR' Add 'STR' to the default version string ('TeX Live YEAR' or 'Web2C @@ -1359,10 +1363,10 @@ native TeX Live build, defaults are again defined in 'texk/web2c/ac/web2c.ac'. -File: texlive.info, Node: Configure options for 'texk/bibtex-x', Next: Configure options for 'texk/dvipdfm-x', Prev: Configure options for 'texk/web2c', Up: Program-specific configure options +File: tlbuild.info, Node: Configure options for 'texk/bibtex-x', Next: Configure options for 'texk/dvipdfm-x', Prev: Configure options for 'texk/web2c', Up: Program-specific configure options -2.5.2.4 Configure options for 'texk/bibtex-x' -............................................. +7.2.4 Configure options for 'texk/bibtex-x' +------------------------------------------- The former programs 'bibtex8' and 'bibtexu' have been merged into the module 'bibtex-x' (extended BibTeX). @@ -1375,10 +1379,10 @@ Do not build the 'bibtexu' program (building 'bibtexu' requires 'ICU' libraries). -File: texlive.info, Node: Configure options for 'texk/dvipdfm-x', Next: Configure options for 'texk/dvisvgm', Prev: Configure options for 'texk/bibtex-x', Up: Program-specific configure options +File: tlbuild.info, Node: Configure options for 'texk/dvipdfm-x', Next: Configure options for 'texk/dvisvgm', Prev: Configure options for 'texk/bibtex-x', Up: Program-specific configure options -2.5.2.5 Configure options for 'texk/dvipdfm-x' -.............................................. +7.2.5 Configure options for 'texk/dvipdfm-x' +-------------------------------------------- The former modules 'dvipdfmx' (extended DVI to PDF converter) and 'xdvipdfmx' (the same, as used by XeTeX) have been merged into @@ -1392,10 +1396,10 @@ Do not build the 'xdvipdfmx' program (building 'xdvipdfmx' requires the 'freetype' library). -File: texlive.info, Node: Configure options for 'texk/dvisvgm', Next: Configure options for 'texk/texlive', Prev: Configure options for 'texk/dvipdfm-x', Up: Program-specific configure options +File: tlbuild.info, Node: Configure options for 'texk/dvisvgm', Next: Configure options for 'texk/texlive', Prev: Configure options for 'texk/dvipdfm-x', Up: Program-specific configure options -2.5.2.6 Configure options for 'texk/dvisvgm' -............................................ +7.2.6 Configure options for 'texk/dvisvgm' +------------------------------------------ '--with-system-libgs' Build 'dvisvgm' using installed Ghostscript ('gs') headers and library @@ -1412,20 +1416,20 @@ can crash due to library incompatibilities, e.g., on CentOS 5. Specify non-standard locations of the Ghostscript headers and library. -File: texlive.info, Node: Configure options for 'texk/texlive', Next: Configure options for 'texk/xdvik', Prev: Configure options for 'texk/dvisvgm', Up: Program-specific configure options +File: tlbuild.info, Node: Configure options for 'texk/texlive', Next: Configure options for 'texk/xdvik', Prev: Configure options for 'texk/dvisvgm', Up: Program-specific configure options -2.5.2.7 Configure options for 'texk/texlive' -............................................ +7.2.7 Configure options for 'texk/texlive' +------------------------------------------ '--disable-linked-scripts' Do not install the "linked scripts" (*note Linked scripts::), except for the TL scripts required to run 'texlinks'. -File: texlive.info, Node: Configure options for 'texk/xdvik', Next: Configure options for 'utils/xindy', Prev: Configure options for 'texk/texlive', Up: Program-specific configure options +File: tlbuild.info, Node: Configure options for 'texk/xdvik', Next: Configure options for 'utils/xindy', Prev: Configure options for 'texk/texlive', Up: Program-specific configure options -2.5.2.8 Configure options for 'texk/xdvik' -.......................................... +7.2.8 Configure options for 'texk/xdvik' +---------------------------------------- '--with-gs=FILENAME' Hardwire the location of Ghostscript ('gs'). @@ -1435,10 +1439,10 @@ Use toolkit 'KIT' for 'xdvik', one of: 'motif xaw xaw3d neXtaw'. The default is 'motif' if available, else 'xaw'. -File: texlive.info, Node: Configure options for 'utils/xindy', Prev: Configure options for 'texk/xdvik', Up: Program-specific configure options +File: tlbuild.info, Node: Configure options for 'utils/xindy', Prev: Configure options for 'texk/xdvik', Up: Program-specific configure options -2.5.2.9 Configure options for 'utils/xindy' -........................................... +7.2.9 Configure options for 'utils/xindy' +----------------------------------------- '--enable-xindy-rules' Build and install 'xindy' rules (default: yes, except for a native TL @@ -1463,10 +1467,10 @@ documentation, required for some systems where 'iconv' is missing or broken. -File: texlive.info, Node: Library-specific configure options, Next: Variables for configure, Prev: Program-specific configure options, Up: Configure options +File: tlbuild.info, Node: Library-specific configure options, Next: Variables for configure, Prev: Program-specific configure options, Up: Configure options -2.5.3 Library-specific configure options ----------------------------------------- +7.3 Library-specific configure options +====================================== Here are (some of) the library-specific 'configure' options, starting with this generic one: @@ -1491,10 +1495,10 @@ required system libraries and bails out if tests fail. * Configure options for system 'poppler':: -File: texlive.info, Node: Configure options for 'kpathsea', Next: Configure options for system 'poppler', Up: Library-specific configure options +File: tlbuild.info, Node: Configure options for 'kpathsea', Next: Configure options for system 'poppler', Up: Library-specific configure options -2.5.3.1 Configure options for 'kpathsea' -........................................ +7.3.1 Configure options for 'kpathsea' +-------------------------------------- '--enable-CMD-default', '--disable-CMD-default' Determine the compile time default whether or not to run CMD, one of: @@ -1517,10 +1521,10 @@ to generate the specified type of file dynamically. The default can be overridden by the user in any case. -File: texlive.info, Node: Configure options for system 'poppler', Prev: Configure options for 'kpathsea', Up: Library-specific configure options +File: tlbuild.info, Node: Configure options for system 'poppler', Prev: Configure options for 'kpathsea', Up: Library-specific configure options -2.5.3.2 Configure options for system 'poppler' -.............................................. +7.3.2 Configure options for system 'poppler' +-------------------------------------------- Building LuaTeX and XeTeX requires 'poppler', either from the TL tree or system headers and library. Building pdfTeX requires either 'xpdf' from @@ -1536,10 +1540,10 @@ for pdfTeX instead of 'xpdf' from the TL tree. *Note '--disable-largefile'::. -File: texlive.info, Node: Variables for configure, Prev: Library-specific configure options, Up: Configure options +File: tlbuild.info, Node: Variables for configure, Prev: Library-specific configure options, Up: Configure options -2.5.4 Variables for configure ------------------------------ +7.4 Variables for configure +=========================== The values for these variables can be specified as 'configure' arguments of the form 'VAR=VALUE'. They can also be defined in the environment, @@ -1602,10 +1606,10 @@ but that might not work for cross compilations. logic. -File: texlive.info, Node: Cross compilation, Next: Coding conventions, Prev: Configure options, Up: Build system +File: tlbuild.info, Node: Cross compilation, Next: Coding conventions, Prev: Configure options, Up: Top -2.6 Cross compilation -===================== +8 Cross compilation +******************* In a cross compilation a "build" system is used to create binaries to be executed on a "host" system with different hardware and/or operating @@ -1632,10 +1636,10 @@ system one could use * Cross problems:: Cross compilation problems. -File: texlive.info, Node: Cross configuring, Next: Cross problems, Up: Cross compilation +File: tlbuild.info, Node: Cross configuring, Next: Cross problems, Up: Cross compilation -2.6.1 Cross configuring ------------------------ +8.1 Cross configuring +===================== In a standard cross compilation, binaries for the host system cannot execute on the build system and it is necessary to specify the configure @@ -1681,10 +1685,10 @@ C and C++ programs required for the build process as configure arguments BUILDLDFLAGS=... -File: texlive.info, Node: Cross problems, Prev: Cross configuring, Up: Cross compilation +File: tlbuild.info, Node: Cross problems, Prev: Cross configuring, Up: Cross compilation -2.6.2 Cross problems --------------------- +8.2 Cross problems +================== The fact that binaries for the host system cannot be executed on the build system causes some problems. @@ -1717,10 +1721,10 @@ sufficiently recent installed versions of 'tangle', 'ctangle', thus cross compilation is not possible. -File: texlive.info, Node: Coding conventions, Prev: Cross compilation, Up: Build system +File: tlbuild.info, Node: Coding conventions, Next: Index, Prev: Cross compilation, Up: Top -2.7 Coding conventions -====================== +9 Coding conventions +******************** Ideally, building all of TeX Live with '--enable-compiler-warnings=max' should produce no (GCC) compiler warnings at all. In spite of @@ -1736,10 +1740,10 @@ tree, except some of those maintained independently. * Const:: -File: texlive.info, Node: Declarations and definitions, Next: Const, Up: Coding conventions +File: tlbuild.info, Node: Declarations and definitions, Next: Const, Up: Coding conventions -2.7.1 Declarations and definitions ----------------------------------- +9.1 Declarations and definitions +================================ C standards ........... @@ -1794,10 +1798,10 @@ either declared 'static' if used in only one file or declared 'extern' in exactly one header and instantiated in exactly one file. -File: texlive.info, Node: Const, Prev: Declarations and definitions, Up: Coding conventions +File: tlbuild.info, Node: Const, Prev: Declarations and definitions, Up: Coding conventions -2.7.2 Const ------------ +9.2 Const +========= The 'const' feature of C is valuable, but easy to mis-use. @@ -1838,7 +1842,7 @@ must be carefully analyzed to make sure that they cannot cause the modification of quantities supposed to be constant. -File: texlive.info, Node: Index, Prev: Build system, Up: Top +File: tlbuild.info, Node: Index, Prev: Coding conventions, Up: Top Index ***** @@ -1967,9 +1971,11 @@ Index * ANSI C: Declarations and definitions. (line 6) * asymptote: 'asymptote'. (line 6) -* Autoconf: Build system. (line 6) +* Autoconf: Overview of build system. + (line 6) * autoconf macros: Autoconf macros. (line 6) -* Automake: Build system. (line 6) +* Automake: Overview of build system. + (line 6) * biber: Variables for configure. (line 46) * bibtex-x: Configure options for 'texk/bibtex-x'. @@ -1982,7 +1988,8 @@ Index * build directory, required: Building. (line 17) * build on demand: Building. (line 46) * Build script: Building. (line 6) -* build system, design of: Build system. (line 6) +* build system, design of: Overview of build system. + (line 6) * BUILDCC, BUILDCFLAGS, ...: Cross configuring. (line 42) * building: Building. (line 6) * C, ANSI, required: Declarations and definitions. @@ -2071,6 +2078,7 @@ Index (line 43) * 'extra/' top-level directory: Top-level directories. (line 39) +* 'ffcall', required by 'xindy': Prerequisites. (line 30) * flags, macros for library and header: Macros for library and header flags. (line 6) * 'fontconfig' library, required by 'xetex': Prerequisites. (line 27) @@ -2115,7 +2123,8 @@ Index * kpathsea library: 'kpathsea' library. (line 6) * kpathsea.ac: 'kpathsea' library. (line 20) * kpse-libpng-flags.m4: 'png' library. (line 43) -* kpse-pkgs.m4: Build system. (line 30) +* kpse-pkgs.m4: Overview of build system. + (line 30) * kpse-zlib-flags.m4: 'zlib' library. (line 6) * kpsewhich: Variables for configure. (line 30) @@ -2179,10 +2188,11 @@ Index (line 6) * LATEX: Variables for configure. (line 40) -* layout of sources: Infrastructure and layout. +* layout of sources: Layout and infrastructure. (line 6) * LFS (large file support): '--disable-largefile'. (line 6) +* 'libffcall', required by 'xindy': Prerequisites. (line 30) * libfreetype: Variables for configure. (line 24) * 'libfreetype', and 'const': Const. (line 21) @@ -2195,7 +2205,8 @@ Index * library-specific 'configure' options: Library-specific configure options. (line 6) * libstc++, statically linking: Macros for compilers. (line 29) -* Libtool: Build system. (line 6) +* Libtool: Overview of build system. + (line 6) * libtool, hack for avoiding excessive linking: Configure options for 'texk/web2c'. (line 55) * libXt: Configure options for 'texk/web2c'. @@ -2281,7 +2292,7 @@ Index * source code declarations: Declarations and definitions. (line 6) * source directory building, not supported: Building. (line 17) -* source tree: Infrastructure and layout. +* source tree: Layout and infrastructure. (line 6) * squeeze: Cross problems. (line 13) * squeeze/configure.ac: 'xdvik' package. (line 14) @@ -2298,7 +2309,8 @@ Index * system distribution, building for: Distro builds. (line 6) * t1utils package: 't1utils' package. (line 6) * tangle: Cross problems. (line 26) -* tests, running: Build system. (line 6) +* tests, running: Overview of build system. + (line 6) * TeX-specific library module, adding: Adding a new TeX-specific library module. (line 6) * texlive.tlpdb, TeX Live database: Installing. (line 8) @@ -2358,72 +2370,72 @@ Index Tag Table: Node: Top987 -Node: Introduction1318 -Node: Build system2341 -Node: Prerequisites4762 -Node: Building6512 -Node: Installing10175 -Node: Installation directories11216 -Node: Linked scripts13040 -Node: Distro builds14145 -Node: Infrastructure and layout16529 -Node: Build system tools17331 -Node: Top-level directories19347 -Node: Autoconf macros21406 -Node: General setup macros22111 -Node: Macros for programs22982 -Node: Macros for compilers23798 -Node: Macros for libraries25236 -Node: Macros for library and header flags25666 -Node: Macros for Windows27539 -Node: Library modules29120 -Node: 'png' library29621 -Node: 'zlib' library31918 -Node: 'freetype' library32443 -Node: 'kpathsea' library32981 -Node: Program modules34409 -Node: 't1utils' package34849 -Node: 'xindy' package35420 -Node: 'xdvik' package36603 -Node: 'asymptote'37686 -Node: Extending TeX Live38145 -Node: Adding a new program module38517 -Node: Adding a new generic library module40040 -Node: Adding a new TeX-specific library module42257 -Node: Configure options42948 -Node: Global configure options44352 -Node: '--disable-native-texlive-build'44924 -Node: '--prefix' '--bindir' ...45924 -Node: '--disable-largefile'46476 -Node: '--disable-missing'47247 -Node: '--enable-compiler-warnings='LEVEL47658 -Node: '--enable-cxx-runtime-hack'48407 -Node: '--enable-maintainer-mode'48844 -Node: '--enable-multiplatform'49383 -Node: '--enable-shared'49948 -Node: '--enable-silent-rules'50329 -Node: '--without-ln-s'50795 -Node: '--without-x'51156 -Node: Program-specific configure options51352 -Node: '--enable-PROG' '--disable-PROG'52019 -Node: '--disable-all-pkgs'52306 -Node: Configure options for 'texk/web2c'52763 -Node: Configure options for 'texk/bibtex-x'55434 -Node: Configure options for 'texk/dvipdfm-x'56014 -Node: Configure options for 'texk/dvisvgm'56628 -Node: Configure options for 'texk/texlive'57522 -Node: Configure options for 'texk/xdvik'57953 -Node: Configure options for 'utils/xindy'58446 -Node: Library-specific configure options59512 -Node: Configure options for 'kpathsea'60530 -Node: Configure options for system 'poppler'61247 -Node: Variables for configure62018 -Node: Cross compilation64528 -Node: Cross configuring65806 -Node: Cross problems67483 -Node: Coding conventions69128 -Node: Declarations and definitions69791 -Node: Const71978 -Node: Index73845 +Node: Introduction1780 +Node: Overview of build system2815 +Node: Prerequisites4879 +Node: Building6981 +Node: Installing10631 +Node: Installation directories11659 +Node: Linked scripts13479 +Node: Distro builds14627 +Node: Layout and infrastructure17007 +Node: Build system tools17796 +Node: Top-level directories19808 +Node: Autoconf macros21875 +Node: General setup macros22576 +Node: Macros for programs23443 +Node: Macros for compilers24255 +Node: Macros for libraries25689 +Node: Macros for library and header flags26115 +Node: Macros for Windows27984 +Node: Library modules29561 +Node: 'png' library30058 +Node: 'zlib' library32351 +Node: 'freetype' library32872 +Node: 'kpathsea' library33406 +Node: Program modules34830 +Node: 't1utils' package35266 +Node: 'xindy' package35833 +Node: 'xdvik' package37012 +Node: 'asymptote'38091 +Node: Extending TeX Live38546 +Node: Adding a new program module38914 +Node: Adding a new generic library module40433 +Node: Adding a new TeX-specific library module42646 +Node: Configure options43333 +Node: Global configure options44724 +Node: '--disable-native-texlive-build'45292 +Node: '--prefix' '--bindir' ...46288 +Node: '--disable-largefile'46836 +Node: '--disable-missing'47603 +Node: '--enable-compiler-warnings='LEVEL48010 +Node: '--enable-cxx-runtime-hack'48755 +Node: '--enable-maintainer-mode'49188 +Node: '--enable-multiplatform'49723 +Node: '--enable-shared'50284 +Node: '--enable-silent-rules'50661 +Node: '--without-ln-s'51123 +Node: '--without-x'51480 +Node: Program-specific configure options51672 +Node: '--enable-PROG' '--disable-PROG'52335 +Node: '--disable-all-pkgs'52618 +Node: Configure options for 'texk/web2c'53071 +Node: Configure options for 'texk/bibtex-x'55738 +Node: Configure options for 'texk/dvipdfm-x'56314 +Node: Configure options for 'texk/dvisvgm'56924 +Node: Configure options for 'texk/texlive'57814 +Node: Configure options for 'texk/xdvik'58241 +Node: Configure options for 'utils/xindy'58730 +Node: Library-specific configure options59792 +Node: Configure options for 'kpathsea'60806 +Node: Configure options for system 'poppler'61519 +Node: Variables for configure62286 +Node: Cross compilation64792 +Node: Cross configuring66057 +Node: Cross problems67730 +Node: Coding conventions69371 +Node: Declarations and definitions70035 +Node: Const72218 +Node: Index74081 End Tag Table diff --git a/Build/source/doc/tlbuild.texi b/Build/source/doc/tlbuild.texi index 8b26d72b10e..5222f490992 100644 --- a/Build/source/doc/tlbuild.texi +++ b/Build/source/doc/tlbuild.texi @@ -1,12 +1,139 @@ -@c This is part of the TeX Live manual. -@c Copyright 2013, 2014 Karl Berry & Peter Breitenlohner. -@c See file texlive.texi for copying conditions. +\input texinfo +@setfilename tlbuild.info + +@set version 2014 +@set month-year April 2014 + +@set mytitle Building @TeX{} Live (@value{version}) +@settitle @value{mytitle} + +@macro TL +@TeX{} Live +@end macro + +@copying +This file documents the @TL{} build system and more. + +Copyright @copyright{} 2013, 2014 Karl Berry & Peter Breitenlohner. + +Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + +@ignore +Permission is granted to process this file through TeX and print the +results, provided the printed document carries a copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). +@end ignore + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation +approved by the @TeX{} Users Group. +@end copying + +@c Put everything in one index (arbitrarily chosen to be the concept index). +@syncodeindex fn cp +@syncodeindex ky cp +@syncodeindex pg cp +@syncodeindex tp cp +@syncodeindex vr cp + +@dircategory TeX +@direntry +* TeX Live building: (tlbuild). TL configuration and development. +@end direntry + +@titlepage +@title @value{mytitle} +@subtitle @value{version} release +@subtitle @value{month-year} +@author Peter Breitenlohner +@author Karl Berry +@author @url{http://tug.org/tex-live} + +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + +@shortcontents +@contents + +@ifnottex +@node Top +@top @value{mytitle} + +For an overview of this manual, @pxref{Introduction}. + +@menu +* Introduction:: About this manual. +* Overview of build system:: The @TL{} build system. +* Prerequisites:: Requirements for building @TL{}. +* Building:: The overall build process. +* Installing:: How and where installation happens (or not). +* Layout and infrastructure:: Autoconf macros, etc., in detail. +* Configure options:: List of all configure options. +* Cross compilation:: Building on host X for target Y. +* Coding conventions:: Conventions to follow. +* Index:: General index. +@end menu +@end ifnottex + + +@node Introduction +@chapter Introduction + +@cindex introduction + +This manual (dated @value{month-year}) corresponds to the @TL{} +@value{version} release. + +This manual is aimed at system installers and programmers, and focuses +on how to configure, build, and develop the @TL{} (TL) sources. The +sources can be acquired in a number of ways; see +@url{http://tug.org/texlive/svn}. + +This manual does not duplicate the (primarily user-level) information +found in other TL documentation resources, such as: + +@itemize +@item The @TL{} web pages: @url{http://tug.org/texlive}. + +@item The @TL{} user manual: @url{http://tug.org/texlive/doc.html}, or +run @code{texdoc texlive}. + +@item Other @TeX{}-related Texinfo manuals (@pxref{,,,web2c, Web2c}, +@ref{,,,kpathsea, Kpathsea}, etc.): +@url{http://tug.org/texinfohtml/}, or check the @samp{TeX} category in +the GNU Info system. + +@item Package documentation: +@url{http://tug.org/texlive/Contents/live/doc.html}, or the +@file{doc.html} file at the top level of the installed TL. + +@end itemize + +@ignore +As an exception, the full documentation for @code{install-tl} and +@code{tlmgr} is included here, just because it is convenient to do so. +The same text is available online (linked from +@url{http://tug.org/texlive/doc.html}, or by giving @samp{--help} to +the program (or look at the end of the source file). +@end ignore + @c The first word of the chapter/section title here is used to @c construct the README.* filenames, so choose well. (Or hack the script.) -@node Build system -@chapter Build system +@node Overview of build system +@chapter Overview of build system @cindex build system, design of @@ -26,6 +153,9 @@ all @code{configure} options. The main components of the TL build system are: @table @file +@item libs/@var{lib} +Generic libraries. + @item texk/@var{lib} @TeX{}-specific libraries in subdirectories, notably @var{lib}=@code{kpathsea}. (The other one is @file{texk/ptexenc}.) @@ -36,8 +166,6 @@ The main components of the TL build system are: @item utils/@var{prog} Other programs (that don't use Kpathsea). -@item libs/@var{lib} -Generic libraries. @end table @pindex kpse-pkgs.m4 @@ -56,26 +184,15 @@ 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 -tree. +distributed source tree and document any modifications of that source. All this is for the sake of simplifying both upgrading of modules maintained independently and integrating new modules into the -TL build system. (Not to say that either task has become trivial.) - -@menu -* Prerequisites:: Requirements for building @TL{}. -* Building:: The overall build process. -* Installing:: How and where installation happens (or not). -* Infrastructure and layout:: Autoconf macros, etc., in detail. -* Configure options:: List of all configure options. -* Cross compilation:: -* Coding conventions:: -@end menu +TL build system. (Not to say that either task is trivial.) @node Prerequisites -@section Prerequisites for building @TL{} +@chapter Prerequisites @cindex prerequisites for building @cindex requirements for building @@ -104,8 +221,8 @@ requires @code{perl} for autodetection of the TL platform name. @item xdvik @itemx xpdfopen @cindex X11, required by X clients -require X11 headers and libraries, often a ``development'' package -that is not installed by default. +require X11 headers and libraries, often in ``development'' packages +that are not installed by default. @item xetex @cindex @code{fontconfig} library, required by @code{xetex} @@ -113,17 +230,19 @@ requires @file{fontconfig} (again both headers and library). @item xindy @cindex @code{clisp}, required by @code{xindy} -requires GNU @code{clisp} and in addition @code{perl}, -@code{latex}, and @code{pdflatex} to build the rules and/or -documentation. +@cindex @code{libffcall}, required by @code{xindy} +@cindex @code{ffcall}, required by @code{xindy} +requires GNU @code{clisp} and @code{libffcall}, and in addition +@code{perl}, @code{latex}, and @code{pdflatex} to build the rules +and/or documentation. @end table @noindent Lacking the required tools, building these -programs must avoided, e.g., @code{configure --disable-biber ---without-x --disable-xetex --disable-xindy}. +programs must avoided, e.g.,@* +@code{configure --disable-biber --without-x --disable-xetex --disable-xindy} -Modifying source files also induces more requirements: +Modifying source files induces more requirements, as one might expect: @itemize @item @@ -142,9 +261,16 @@ generated files. @xref{Build system tools}. @end itemize +If you haven't modified any source files, and infrastructure tools +such as @code{autoconf} or @code{makeinfo} are still being run, check +your timestamps---notably, @code{use-commit-times} must be set to +@code{yes} in your Subversion configuration (@pxref{Build system +tools}). Barring buggy commits, no infrastructure tools are needed to +do a normal build. + @node Building -@section Building +@chapter Building @cindex building @cindex overall build process @@ -238,7 +364,7 @@ lacking; see the next section.) @node Installing -@section Installing +@chapter Installing @cindex installing This section discusses the results of @code{make install} in the @@ -268,7 +394,7 @@ at @url{http://tug.org/texlive/distro.html}. @node Installation directories -@subsection Installation directories +@section Installation directories @cindex installation directories @cindex directories, for installation @@ -328,7 +454,7 @@ that end up in @file{./inst/} are ignored. @node Linked scripts -@subsection Linked scripts +@section Linked scripts @cindex linked scripts @cindex scripts, linked and not maintained @@ -337,27 +463,28 @@ that end up in @file{./inst/} are ignored. @cindex wrapper binary for scripts on Windows @cindex Windows, invoking scripts on Quite a few executables are architecture-independent shell, Perl, or -other scripts, rather than compiled binaries. A few are maintained as -part of the TL source tree, but most are maintained elsewhere with -copies under @file{texk/texlive/linked_scripts}. These are installed -under @code{@var{datarootdir}/texmf-dist/scripts}; for Unix-like -systems a symbolic link is made in @code{@var{bindir}}. For example, -a symlink points from @code{@var{bindir}/ps2eps} to -@code{@var{datarootdir}/texmf-dist/scripts/ps2eps/ps2eps.pl}. - -For Windows, a standard wrapper binary (e.g., +other interpreted scripts, rather than compiled binaries. A few are +maintained as part of the TL source tree, but most are maintained +elsewhere with copies under @file{texk/texlive/linked_scripts}. + +These so-called @dfn{linked scripts} are installed under +@code{@var{datarootdir}/texmf-dist/scripts}; for Unix-like systems a +symbolic link is made in @code{@var{bindir}}. For example, a symlink +points from @code{@var{bindir}/ps2eps} to +@code{@var{datarootdir}/texmf-dist/scripts/ps2eps/ps2eps.pl}. For +Windows, a standard wrapper binary (e.g., @code{@var{bindir}/ps2eps.exe}) serves the same purpose. (The source -for it is in @file{texk/texlive/w32_wrapper}.) +for the wrapper is in @file{texk/texlive/w32_wrapper}.) -One reason for all this is to avoid having many copies for the same -script, but most importantly this allows invoking the same script on +One reason for all this is to avoid having many copies of the same +script, but more importantly this allows invoking the same script on all operating systems. Furthermore, we want the @code{@var{bindir}} resulting from the build to be exactly what is in the TL distribution; any deviations cause considerable extra work. @node Distro builds -@subsection Distro builds +@section Distro builds @cindex distro, building for @cindex operating system distribution, building for @@ -429,8 +556,8 @@ needs updating at some point, perhaps we will merge it into this document.) -@node Infrastructure and layout -@section Infrastructure and layout +@node Layout and infrastructure +@chapter Layout and infrastructure @cindex layout of sources @cindex source tree @@ -452,7 +579,7 @@ files. @node Build system tools -@subsection Build system tools +@section Build system tools @cindex tools, for building @cindex GNU tools, needed for building @@ -507,7 +634,7 @@ To avoid unnecessary runs of @code{bison}, @code{flex}, or @node Top-level directories -@subsection Top-level directories +@section Top-level directories @cindex directories, top-level @cindex top-level directories @@ -515,10 +642,10 @@ To avoid unnecessary runs of @code{bison}, @code{flex}, or Here is a brief description of the top-level directories in the @TL{} source tree. -As mentioned at the beginning of the chapter (@pxref{Build system}), -the main source directories are @file{texk/} (@TeX{}-specific programs -and libraries), @file{utils/} (additional programs), and @file{libs} -(generic libraries). +As mentioned at the beginning of the chapter (@pxref{Overview of build +system}), the main source directories are @file{texk/} +(@TeX{}-specific programs and libraries), @file{utils/} (additional +programs), and @file{libs} (generic libraries). @cindex @file{am/} top-level directory @cindex @file{m4/} top-level directory @@ -557,7 +684,7 @@ developed here and @file{xz/} required by the TL installer. @node Autoconf macros -@subsection Autoconf macros +@section Autoconf macros @cindex autoconf macros @@ -593,7 +720,7 @@ modules} and @pxref{Program modules}. @end menu @node General setup macros -@subsubsection General setup macros +@subsection General setup macros @cindex general setup macros @cindex setup macros, general @@ -618,7 +745,7 @@ modules. @node Macros for programs -@subsubsection Macros for programs +@subsection Macros for programs @cindex macros, for programs Macros for program checks: @@ -647,7 +774,7 @@ Call @code{AC_PROG_LEX} and add the flag @code{-l} for @code{flex}. @node Macros for compilers -@subsubsection Macros for compilers +@subsection Macros for compilers @cindex macros, for compilers @@ -694,7 +821,7 @@ This macro caches its result in the @code{kpse_cv_cxx_hack} variable. @node Macros for libraries -@subsubsection Macros for libraries +@subsection Macros for libraries @cindex macros, for libraries One macro for a library check: @@ -707,7 +834,7 @@ suitable @code{-D} flags (optionally including @node Macros for library and header flags -@subsubsection Macros for library and header flags +@subsection Macros for library and header flags @cindex macros, for library and header flags @cindex flags, macros for library and header @@ -768,7 +895,7 @@ KPSE_RESTORE_FLAGS # @r{restore @code{CPPFLAGS} and @code{LIBS}} @node Macros for Windows -@subsubsection Macros for Windows +@subsection Macros for Windows @cindex macros, for Windows @cindex Windows, macros for @@ -819,7 +946,7 @@ as @code{@var{bar}.exe} is used on Windows instead of a symlink @node Library modules -@subsection Library modules +@section Library modules @cindex library modules @cindex modules, for libraries @@ -835,7 +962,7 @@ structure and variation. @end menu @node @code{png} library -@subsubsection The @code{png} library in @file{libs/libpng} +@subsection The @code{png} library in @file{libs/libpng} @pindex png @r{library} @pindex libpng @r{library} @@ -903,7 +1030,7 @@ the flags required for the system library. @node @code{zlib} library -@subsubsection The @code{zlib} library in @file{libs/zlib} +@subsection The @code{zlib} library in @file{libs/zlib} @pindex zlib @r{library} @@ -917,7 +1044,7 @@ without the dependency on any other library. The file @node @code{freetype} library -@subsubsection The @code{freetype} library in @file{libs/freetype2} +@subsection The @code{freetype} library in @file{libs/freetype2} @pindex freetype @r{library} @@ -931,7 +1058,7 @@ required for the system library are obtained through @node @code{kpathsea} library -@subsubsection The @code{kpathsea} library in @file{texk/kpathsea} +@subsection The @code{kpathsea} library in @file{texk/kpathsea} @pindex kpathsea @r{library} @@ -966,7 +1093,7 @@ however, the command line options @code{-mktex=tfm} or @node Program modules -@subsection Program modules +@section Program modules @cindex program modules @cindex modules, for programs @@ -982,7 +1109,7 @@ details for a few of the programs in TL. @node @code{t1utils} package -@subsubsection The @code{t1utils} package in @file{utils/t1utils} +@subsection The @code{t1utils} package in @file{utils/t1utils} @pindex t1utils @r{package} @@ -1000,7 +1127,7 @@ supplies the configure option @code{--disable-t1utils}. @node @code{xindy} package -@subsubsection The @code{xindy} package in @file{utils/xindy} +@subsection The @code{xindy} package in @file{utils/xindy} @pindex xindy @@ -1030,7 +1157,7 @@ the top level with @file{ac/xindy.ac} also included by @node @code{xdvik} package -@subsubsection The @code{xdvik} package in @file{texk/xdvik} +@subsection The @code{xdvik} package in @file{texk/xdvik} @pindex xdvik @@ -1061,7 +1188,7 @@ The additional fragment @code{ac/xdvik.ac} is also included by @node @code{asymptote} -@subsubsection The subdirectory @file{utils/asymptote} +@subsection The subdirectory @file{utils/asymptote} @pindex asymptote @pindex xasy @@ -1075,7 +1202,7 @@ their support files. @node Extending @TeX{} Live -@subsection Extending @TeX{} Live +@section Extending @TeX{} Live @cindex extending @TL{} @cindex adding to @TL{} @@ -1091,7 +1218,7 @@ TL build system. @node Adding a new program module -@subsubsection Adding a new program module +@subsection Adding a new program module @cindex adding a new program @cindex program module, adding @@ -1137,7 +1264,7 @@ top-level, they should be defined in an additional fragment @node Adding a new generic library module -@subsubsection Adding a new generic library module +@subsection Adding a new generic library module @cindex adding a new generic library @cindex generic library module, adding @@ -1193,7 +1320,7 @@ definition of the M4 macro @code{KPSE_ALL_SYSTEM_FLAGS} in @node Adding a new @TeX{}-specific library module -@subsubsection Adding a new @TeX{}-specific library module +@subsection Adding a new @TeX{}-specific library module @cindex adding a new @TeX{}-specific library @cindex @TeX{}-specific library module, adding @@ -1218,7 +1345,7 @@ The fragment @code{ac/withenable.ac} must use @code{KPSE_WITH_TEXLIB}. @node Configure options -@section Configure options +@chapter Configure options @cindex @code{configure} options @@ -1255,7 +1382,7 @@ line are checked for consistency but never modified. @node Global configure options -@subsection Global configure options +@section Global configure options @cindex global @code{configure} options @cindex @code{configure} options, global @@ -1278,7 +1405,7 @@ Here are the global configure options. @node @code{--disable-native-texlive-build} -@subsubsection @code{--disable-native-texlive-build} +@subsection @code{--disable-native-texlive-build} @vindex --disable-native-texlive-build If enabled (the default), build for a TL binary distribution as @@ -1301,7 +1428,7 @@ to choose TL-specific installation paths. @node @code{--prefix} @code{--bindir} @dots{} -@subsubsection @code{--prefix}, @code{--bindir}, @dots{} +@subsection @code{--prefix}, @code{--bindir}, @dots{} @vindex --prefix configure @r{option} @vindex --bindir configure @r{option} @@ -1316,7 +1443,7 @@ Installation in a temporary location, automake, GNU Automake}). @node @code{--disable-largefile} -@subsubsection @code{--disable-largefile} +@subsection @code{--disable-largefile} @vindex --disable-largefile @cindex large file support @@ -1338,7 +1465,7 @@ when using @file{xpdf} and @math{<2}GB when using older versions of @node @code{--disable-missing} -@subsubsection @code{--disable-missing} +@subsection @code{--disable-missing} @vindex --disable-missing Immediately terminate the build process if a requested program or feature @@ -1347,7 +1474,7 @@ figuring out a specific (sub)set of modules to enable. @node @code{--enable-compiler-warnings=}@var{level} -@subsubsection @code{--enable-compiler-warnings=}@var{level} +@subsection @code{--enable-compiler-warnings=}@var{level} @vindex --enable-compiler-warnings=@var{level} Enable various levels of compiler warnings for (Objective) C and C++: @@ -1363,7 +1490,7 @@ but flags for other compilers could be added when needed. @node @code{--enable-cxx-runtime-hack} -@subsubsection @code{--enable-cxx-runtime-hack} +@subsection @code{--enable-cxx-runtime-hack} If enabled (as it is for the native TL build) and when using @code{g++}, try to statically link with @code{libstdc++}, somewhat @@ -1372,7 +1499,7 @@ compilers}. @node @code{--enable-maintainer-mode} -@subsubsection @code{--enable-maintainer-mode} +@subsection @code{--enable-maintainer-mode} @vindex --enable-maintainer-mode Enable @file{make} rules and dependencies not useful (and sometimes @@ -1383,7 +1510,7 @@ rebuilds infrastructure files as needed. @xref{maintainer-mode,, @node @code{--enable-multiplatform} -@subsubsection @code{--enable-multiplatform} +@subsection @code{--enable-multiplatform} @vindex --enable-multiplatform @vindex exec_prefix @@ -1398,7 +1525,7 @@ propagated to all subdirectories. @node @code{--enable-shared} -@subsubsection @code{--enable-shared} +@subsection @code{--enable-shared} @vindex --enable-shared Build shared versions of the @TeX{}-specific libraries such as @@ -1407,7 +1534,7 @@ Build shared versions of the @TeX{}-specific libraries such as @node @code{--enable-silent-rules} -@subsubsection @code{--enable-silent-rules} +@subsection @code{--enable-silent-rules} @vindex --enable-silent-rules Enable the use of less verbose build rules. When using GNU @@ -1418,7 +1545,7 @@ this option. @node @code{--without-ln-s} -@subsubsection @code{--without-ln-s} +@subsection @code{--without-ln-s} @vindex --without-ln-s Required when using a system without a working @code{ln -s} to build @@ -1427,14 +1554,14 @@ not create anything useful and might even fail. @node @code{--without-x} -@subsubsection @code{--without-x} +@subsection @code{--without-x} @vindex --without-x Disable all programs using the X Window System. @node Program-specific configure options -@subsection Program-specific configure options +@section Program-specific configure options @cindex program-specific @code{configure} options @cindex @code{configure} options, program-specific @@ -1454,7 +1581,7 @@ Here are (some of) the program-specific @code{configure} options. @node @code{--enable-@var{prog}} @code{--disable-@var{prog}} -@subsubsection @code{--enable-@var{prog}}, @code{--disable-@var{prog}} +@subsection @code{--enable-@var{prog}}, @code{--disable-@var{prog}} @vindex --enable-@var{prog} @vindex --disable-@var{prog} @@ -1462,7 +1589,7 @@ Do or do not build and install the program(s) of the module @code{@var{prog}}. @node @code{--disable-all-pkgs} -@subsubsection @code{--disable-all-pkgs} +@subsection @code{--disable-all-pkgs} @vindex --disable-all-pkgs Do not build any program modules by default---only those explicitly @@ -1472,7 +1599,7 @@ are explicitly disabled or specify @code{disable} in their @node Configure options for @file{texk/web2c} -@subsubsection Configure options for @file{texk/web2c} +@subsection Configure options for @file{texk/web2c} @cindex @code{configure} options, for @code{web2c} @@ -1568,7 +1695,7 @@ in @file{texk/web2c/ac/web2c.ac}. @node Configure options for @file{texk/bibtex-x} -@subsubsection Configure options for @file{texk/bibtex-x} +@subsection Configure options for @file{texk/bibtex-x} @cindex @code{configure} options, for @code{bibtex-x} @pindex bibtex8 @@ -1586,7 +1713,7 @@ into the module @code{bibtex-x} (extended Bib@TeX{}). @node Configure options for @file{texk/dvipdfm-x} -@subsubsection Configure options for @file{texk/dvipdfm-x} +@subsection Configure options for @file{texk/dvipdfm-x} @cindex @code{configure} options, for @code{dvipdfm-x} @pindex dvipdfmx @@ -1605,7 +1732,7 @@ program (building @file{xdvipdfmx} requires the @code{freetype} library). @node Configure options for @file{texk/dvisvgm} -@subsubsection Configure options for @file{texk/dvisvgm} +@subsection Configure options for @file{texk/dvisvgm} @cindex @code{configure} options, for @file{dvisvgm} @pindex dvisvgm @@ -1629,7 +1756,7 @@ of the Ghostscript headers and library. @node Configure options for @file{texk/texlive} -@subsubsection Configure options for @file{texk/texlive} +@subsection Configure options for @file{texk/texlive} @cindex @code{configure} options, for @file{texk/texlive} @vindex --disable-linked-scripts @@ -1639,7 +1766,7 @@ to run @code{texlinks}. @node Configure options for @file{texk/xdvik} -@subsubsection Configure options for @file{texk/xdvik} +@subsection Configure options for @file{texk/xdvik} @cindex @code{configure} options, for @file{xdvik} @pindex xdvik @@ -1657,7 +1784,7 @@ neXtaw}. The default is @code{motif} if available, else @code{xaw}. @node Configure options for @file{utils/xindy} -@subsubsection Configure options for @file{utils/xindy} +@subsection Configure options for @file{utils/xindy} @cindex @code{configure} options, for @file{xindy} @pindex xindy @@ -1691,7 +1818,7 @@ systems where @file{iconv} is missing or broken. @node Library-specific configure options -@subsection Library-specific configure options +@section Library-specific configure options @cindex library-specific @code{configure} options @cindex @code{configure} options, library-specific @@ -1722,7 +1849,7 @@ required system libraries and bails out if tests fail. @node Configure options for @code{kpathsea} -@subsubsection Configure options for @code{kpathsea} +@subsection Configure options for @code{kpathsea} @cindex @code{configure} options, for @code{kpathsea} @@ -1751,7 +1878,7 @@ The default can be overridden by the user in any case. @node Configure options for system @code{poppler} -@subsubsection Configure options for system @code{poppler} +@subsection Configure options for system @code{poppler} @cindex @code{configure} options, for system @code{poppler} @@ -1773,7 +1900,7 @@ of @code{poppler} (and @file{pkg-config}) for pdf@TeX{} instead of @code{xpdf} from the TL tree. @xref{@code{--disable-largefile}}. @node Variables for configure -@subsection Variables for configure +@section Variables for configure @cindex variables for @code{configure} @cindex @code{configure} variables @@ -1856,7 +1983,7 @@ platform-detection logic. @node Cross compilation -@section Cross compilation +@chapter Cross compilation @cindex cross compilation In a cross compilation a @dfn{build} system is used to create @@ -1887,7 +2014,7 @@ CC='clang -arch i386'} @backslashchar{} @* @ @ @ @ @ @ @ @ @ @node Cross configuring -@subsection Cross configuring +@section Cross configuring @cindex cross compilation configuring @cindex configuring, for cross compilation @@ -1953,7 +2080,7 @@ BUILDLDFLAGS=@dots{} @node Cross problems -@subsection Cross problems +@section Cross problems @cindex cross compilation problems @@ -2002,7 +2129,7 @@ binary, thus cross compilation is not possible. @node Coding conventions -@section Coding conventions +@chapter Coding conventions @cindex coding conventions @cindex conventions, coding @@ -2022,7 +2149,7 @@ those maintained independently. @node Declarations and definitions -@subsection Declarations and definitions +@section Declarations and definitions @cindex declarations and definitions, in source code @cindex source code declarations @@ -2089,7 +2216,7 @@ either declared @code{static} if used in only one file or declared file. @node Const -@subsection Const +@section Const @cindex @code{const} @@ -2135,3 +2262,10 @@ them. Therefore such casts should be avoided whenever possible and otherwise must be carefully analyzed to make sure that they cannot cause the modification of quantities supposed to be constant. + +@node Index +@unnumbered Index + +@printindex cp + +@bye |