diff options
author | Karl Berry <karl@freefriends.org> | 2014-05-20 17:48:27 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-05-20 17:48:27 +0000 |
commit | 8134709f6bd41afd6d0e810d07e6f3ec89e50310 (patch) | |
tree | 91bd78c86f4d2fc7460053ca5c31b1ec3d679e34 /Master/texmf-dist/doc/texlive/tlbuild | |
parent | 9965933ec3f007f4e1385724c4c3e1b131a237ee (diff) |
update our texinfo manuals
git-svn-id: svn://tug.org/texlive/trunk@34145 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/texlive/tlbuild')
-rw-r--r-- | Master/texmf-dist/doc/texlive/tlbuild/tlbuild.html | 6544 | ||||
-rw-r--r-- | Master/texmf-dist/doc/texlive/tlbuild/tlbuild.pdf | bin | 0 -> 462491 bytes |
2 files changed, 6544 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.html b/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.html new file mode 100644 index 00000000000..f7c79a93a00 --- /dev/null +++ b/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.html @@ -0,0 +1,6544 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- This file documents the TeX Live build system and more. + +Copyright (C) 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. + + +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. --> +<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Building TeX Live (2014)</title> + +<meta name="description" content="Building TeX Live (2014)"> +<meta name="keywords" content="Building TeX Live (2014)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link href="#Top" rel="start" title="Top"> +<link href="#Index" rel="index" title="Index"> +<link href="#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="dir.html#Top" rel="up" title="(dir)"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.indentedblock {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smallindentedblock {margin-left: 3.2em; font-size: smaller} +div.smalllisp {margin-left: 3.2em} +kbd {font-style:oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space:nowrap} +span.nolinebreak {white-space:nowrap} +span.roman {font-family:serif; font-weight:normal} +span.sansserif {font-family:sans-serif; font-weight:normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> +<h1 class="settitle" align="center">Building TeX Live (2014)</h1> + + + + + + + + +<a name="SEC_Overview"></a> +<h2 class="shortcontents-heading">Short Table of Contents</h2> + +<div class="shortcontents"> +<ul class="no-bullet"> +<li><a name="stoc-Introduction-1" href="#toc-Introduction-1">1 Introduction</a></li> +<li><a name="stoc-Overview-of-build-system-1" href="#toc-Overview-of-build-system-1">2 Overview of build system</a></li> +<li><a name="stoc-Prerequisites-1" href="#toc-Prerequisites-1">3 Prerequisites</a></li> +<li><a name="stoc-Building-1" href="#toc-Building-1">4 Building</a></li> +<li><a name="stoc-Installing-1" href="#toc-Installing-1">5 Installing</a></li> +<li><a name="stoc-Layout-and-infrastructure-1" href="#toc-Layout-and-infrastructure-1">6 Layout and infrastructure</a></li> +<li><a name="stoc-Configure-options-1" href="#toc-Configure-options-1">7 Configure options</a></li> +<li><a name="stoc-Cross-compilation-1" href="#toc-Cross-compilation-1">8 Cross compilation</a></li> +<li><a name="stoc-Coding-conventions-1" href="#toc-Coding-conventions-1">9 Coding conventions</a></li> +<li><a name="stoc-install_002dtl-1" href="#toc-install_002dtl-1">Appendix A install-tl</a></li> +<li><a name="stoc-tlmgr-1" href="#toc-tlmgr-1">Appendix B tlmgr</a></li> +<li><a name="stoc-Index-1" href="#toc-Index-1">Index</a></li> +</ul> +</div> + +<a name="SEC_Contents"></a> +<h2 class="contents-heading">Table of Contents</h2> + +<div class="contents"> + +<ul class="no-bullet"> + <li><a name="toc-Introduction-1" href="#Introduction">1 Introduction</a></li> + <li><a name="toc-Overview-of-build-system-1" href="#Overview-of-build-system">2 Overview of build system</a></li> + <li><a name="toc-Prerequisites-1" href="#Prerequisites">3 Prerequisites</a></li> + <li><a name="toc-Building-1" href="#Building">4 Building</a> + <ul class="no-bullet"> + <li><a name="toc-Build-iteration-1" href="#Build-iteration">4.1 Build iteration</a></li> + <li><a name="toc-Build-problems-1" href="#Build-problems">4.2 Build problems</a></li> + <li><a name="toc-Build-in-parallel-1" href="#Build-in-parallel">4.3 Build in parallel</a></li> + <li><a name="toc-Build-distribution-1" href="#Build-distribution">4.4 Build distribution</a></li> + <li><a name="toc-Build-one-package-1" href="#Build-one-package">4.5 Build one package</a></li> + </ul></li> + <li><a name="toc-Installing-1" href="#Installing">5 Installing</a> + <ul class="no-bullet"> + <li><a name="toc-Installation-directories-1" href="#Installation-directories">5.1 Installation directories</a></li> + <li><a name="toc-Linked-scripts-1" href="#Linked-scripts">5.2 Linked scripts</a></li> + <li><a name="toc-Distro-builds-1" href="#Distro-builds">5.3 Distro builds</a></li> + </ul></li> + <li><a name="toc-Layout-and-infrastructure-1" href="#Layout-and-infrastructure">6 Layout and infrastructure</a> + <ul class="no-bullet"> + <li><a name="toc-Build-system-tools-1" href="#Build-system-tools">6.1 Build system tools</a></li> + <li><a name="toc-Top_002dlevel-directories-1" href="#Top_002dlevel-directories">6.2 Top-level directories</a></li> + <li><a name="toc-Autoconf-macros-1" href="#Autoconf-macros">6.3 Autoconf macros</a> + <ul class="no-bullet"> + <li><a name="toc-General-setup-macros-1" href="#General-setup-macros">6.3.1 General setup macros</a></li> + <li><a name="toc-Macros-for-programs-1" href="#Macros-for-programs">6.3.2 Macros for programs</a></li> + <li><a name="toc-Macros-for-compilers-1" href="#Macros-for-compilers">6.3.3 Macros for compilers</a></li> + <li><a name="toc-Macros-for-libraries-1" href="#Macros-for-libraries">6.3.4 Macros for libraries</a></li> + <li><a name="toc-Macros-for-library-and-header-flags-1" href="#Macros-for-library-and-header-flags">6.3.5 Macros for library and header flags</a></li> + <li><a name="toc-Macros-for-Windows-1" href="#Macros-for-Windows">6.3.6 Macros for Windows</a></li> + </ul></li> + <li><a name="toc-Library-modules-1" href="#Library-modules">6.4 Library modules</a> + <ul class="no-bullet"> + <li><a name="toc-The-png-library-in-libs_002flibpng" href="#png-library">6.4.1 The <code>png</code> library in <samp>libs/libpng</samp></a></li> + <li><a name="toc-The-zlib-library-in-libs_002fzlib" href="#zlib-library">6.4.2 The <code>zlib</code> library in <samp>libs/zlib</samp></a></li> + <li><a name="toc-The-freetype-library-in-libs_002ffreetype2" href="#freetype-library">6.4.3 The <code>freetype</code> library in <samp>libs/freetype2</samp></a></li> + <li><a name="toc-The-kpathsea-library-in-texk_002fkpathsea" href="#kpathsea-library">6.4.4 The <code>kpathsea</code> library in <samp>texk/kpathsea</samp></a></li> + </ul></li> + <li><a name="toc-Program-modules-1" href="#Program-modules">6.5 Program modules</a> + <ul class="no-bullet"> + <li><a name="toc-The-t1utils-package-in-utils_002ft1utils" href="#t1utils-package">6.5.1 The <code>t1utils</code> package in <samp>utils/t1utils</samp></a></li> + <li><a name="toc-The-xindy-package-in-utils_002fxindy" href="#xindy-package">6.5.2 The <code>xindy</code> package in <samp>utils/xindy</samp></a></li> + <li><a name="toc-The-xdvik-package-in-texk_002fxdvik" href="#xdvik-package">6.5.3 The <code>xdvik</code> package in <samp>texk/xdvik</samp></a></li> + <li><a name="toc-The-subdirectory-utils_002fasymptote" href="#asymptote">6.5.4 The subdirectory <samp>utils/asymptote</samp></a></li> + </ul></li> + <li><a name="toc-Extending-TeX-Live-1" href="#Extending-TeX-Live">6.6 Extending TeX Live</a> + <ul class="no-bullet"> + <li><a name="toc-Adding-a-new-program-module-1" href="#Adding-a-new-program-module">6.6.1 Adding a new program module</a></li> + <li><a name="toc-Adding-a-new-generic-library-module-1" href="#Adding-a-new-generic-library-module">6.6.2 Adding a new generic library module</a></li> + <li><a name="toc-Adding-a-new-TeX_002dspecific-library-module-1" href="#Adding-a-new-TeX_002dspecific-library-module">6.6.3 Adding a new TeX-specific library module</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Configure-options-1" href="#Configure-options">7 Configure options</a> + <ul class="no-bullet"> + <li><a name="toc-Global-configure-options-1" href="#Global-configure-options">7.1 Global configure options</a> + <ul class="no-bullet"> + <li><a name="toc-_002d_002ddisable_002dnative_002dtexlive_002dbuild-1" href="#g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild">7.1.1 <code>--disable-native-texlive-build</code></a></li> + <li><a name="toc-_002d_002dprefix_002c-_002d_002dbindir_002c-_2026" href="#g_t_002d_002dprefix-_002d_002dbindir-_2026">7.1.2 <code>--prefix</code>, <code>--bindir</code>, …</a></li> + <li><a name="toc-_002d_002ddisable_002dlargefile-1" href="#g_t_002d_002ddisable_002dlargefile">7.1.3 <code>--disable-largefile</code></a></li> + <li><a name="toc-_002d_002ddisable_002dmissing-1" href="#g_t_002d_002ddisable_002dmissing">7.1.4 <code>--disable-missing</code></a></li> + <li><a name="toc-_002d_002denable_002dcompiler_002dwarnings_003dlevel-1" href="#g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel">7.1.5 <code>--enable-compiler-warnings=</code><var>level</var></a></li> + <li><a name="toc-_002d_002denable_002dcxx_002druntime_002dhack-1" href="#g_t_002d_002denable_002dcxx_002druntime_002dhack">7.1.6 <code>--enable-cxx-runtime-hack</code></a></li> + <li><a name="toc-_002d_002denable_002dmaintainer_002dmode-1" href="#g_t_002d_002denable_002dmaintainer_002dmode">7.1.7 <code>--enable-maintainer-mode</code></a></li> + <li><a name="toc-_002d_002denable_002dmultiplatform-1" href="#g_t_002d_002denable_002dmultiplatform">7.1.8 <code>--enable-multiplatform</code></a></li> + <li><a name="toc-_002d_002denable_002dshared-1" href="#g_t_002d_002denable_002dshared">7.1.9 <code>--enable-shared</code></a></li> + <li><a name="toc-_002d_002denable_002dsilent_002drules-1" href="#g_t_002d_002denable_002dsilent_002drules">7.1.10 <code>--enable-silent-rules</code></a></li> + <li><a name="toc-_002d_002dwithout_002dln_002ds-1" href="#g_t_002d_002dwithout_002dln_002ds">7.1.11 <code>--without-ln-s</code></a></li> + <li><a name="toc-_002d_002dwithout_002dx-1" href="#g_t_002d_002dwithout_002dx">7.1.12 <code>--without-x</code></a></li> + </ul></li> + <li><a name="toc-Program_002dspecific-configure-options-1" href="#Program_002dspecific-configure-options">7.2 Program-specific configure options</a> + <ul class="no-bullet"> + <li><a name="toc-_002d_002denable_002dprog_002c-_002d_002ddisable_002dprog" href="#g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog">7.2.1 <code>--enable-<var>prog</var></code>, <code>--disable-<var>prog</var></code></a></li> + <li><a name="toc-_002d_002ddisable_002dall_002dpkgs-1" href="#g_t_002d_002ddisable_002dall_002dpkgs">7.2.2 <code>--disable-all-pkgs</code></a></li> + <li><a name="toc-Configure-options-for-texk_002fweb2c-1" href="#Configure-options-for-texk_002fweb2c">7.2.3 Configure options for <samp>texk/web2c</samp></a></li> + <li><a name="toc-Configure-options-for-texk_002fbibtex_002dx-1" href="#Configure-options-for-texk_002fbibtex_002dx">7.2.4 Configure options for <samp>texk/bibtex-x</samp></a></li> + <li><a name="toc-Configure-options-for-texk_002fdvipdfm_002dx-1" href="#Configure-options-for-texk_002fdvipdfm_002dx">7.2.5 Configure options for <samp>texk/dvipdfm-x</samp></a></li> + <li><a name="toc-Configure-options-for-texk_002fdvisvgm-1" href="#Configure-options-for-texk_002fdvisvgm">7.2.6 Configure options for <samp>texk/dvisvgm</samp></a></li> + <li><a name="toc-Configure-options-for-texk_002ftexlive-1" href="#Configure-options-for-texk_002ftexlive">7.2.7 Configure options for <samp>texk/texlive</samp></a></li> + <li><a name="toc-Configure-options-for-texk_002fxdvik-1" href="#Configure-options-for-texk_002fxdvik">7.2.8 Configure options for <samp>texk/xdvik</samp></a></li> + <li><a name="toc-Configure-options-for-utils_002fxindy-1" href="#Configure-options-for-utils_002fxindy">7.2.9 Configure options for <samp>utils/xindy</samp></a></li> + </ul></li> + <li><a name="toc-Library_002dspecific-configure-options-1" href="#Library_002dspecific-configure-options">7.3 Library-specific configure options</a> + <ul class="no-bullet"> + <li><a name="toc-Configure-options-for-kpathsea-1" href="#Configure-options-for-kpathsea">7.3.1 Configure options for <code>kpathsea</code></a></li> + <li><a name="toc-Configure-options-for-system-poppler-1" href="#Configure-options-for-system-poppler">7.3.2 Configure options for system <code>poppler</code></a></li> + </ul></li> + <li><a name="toc-Variables-for-configure-1" href="#Variables-for-configure">7.4 Variables for configure</a></li> + </ul></li> + <li><a name="toc-Cross-compilation-1" href="#Cross-compilation">8 Cross compilation</a> + <ul class="no-bullet"> + <li><a name="toc-Cross-configuring-1" href="#Cross-configuring">8.1 Cross configuring</a></li> + <li><a name="toc-Cross-problems-1" href="#Cross-problems">8.2 Cross problems</a></li> + </ul></li> + <li><a name="toc-Coding-conventions-1" href="#Coding-conventions">9 Coding conventions</a> + <ul class="no-bullet"> + <li><a name="toc-Declarations-and-definitions-1" href="#Declarations-and-definitions">9.1 Declarations and definitions</a></li> + <li><a name="toc-Const-1" href="#Const">9.2 Const</a></li> + </ul></li> + <li><a name="toc-install_002dtl-1" href="#install_002dtl">Appendix A install-tl</a> + <ul class="no-bullet"> + <li><a name="toc-NAME" href="#install_002dtl-NAME">A.1 NAME</a></li> + <li><a name="toc-SYNOPSIS" href="#install_002dtl-SYNOPSIS">A.2 SYNOPSIS</a></li> + <li><a name="toc-DESCRIPTION" href="#install_002dtl-DESCRIPTION">A.3 DESCRIPTION</a></li> + <li><a name="toc-REFERENCES" href="#install_002dtl-REFERENCES">A.4 REFERENCES</a></li> + <li><a name="toc-OPTIONS" href="#install_002dtl-OPTIONS">A.5 OPTIONS</a></li> + <li><a name="toc-ENVIRONMENT-VARIABLES" href="#install_002dtl-ENVIRONMENT-VARIABLES">A.6 ENVIRONMENT VARIABLES</a></li> + <li><a name="toc-AUTHORS-AND-COPYRIGHT" href="#install_002dtl-AUTHORS-AND-COPYRIGHT">A.7 AUTHORS AND COPYRIGHT</a></li> + </ul></li> + <li><a name="toc-tlmgr-1" href="#tlmgr">Appendix B tlmgr</a> + <ul class="no-bullet"> + <li><a name="toc-NAME-1" href="#tlmgr-NAME">B.1 NAME</a></li> + <li><a name="toc-SYNOPSIS-1" href="#tlmgr-SYNOPSIS">B.2 SYNOPSIS</a></li> + <li><a name="toc-DESCRIPTION-1" href="#tlmgr-DESCRIPTION">B.3 DESCRIPTION</a></li> + <li><a name="toc-EXAMPLES" href="#tlmgr-EXAMPLES">B.4 EXAMPLES</a></li> + <li><a name="toc-OPTIONS-1" href="#tlmgr-OPTIONS">B.5 OPTIONS</a></li> + <li><a name="toc-ACTIONS" href="#tlmgr-ACTIONS">B.6 ACTIONS</a> + <ul class="no-bullet"> + <li><a name="toc-help" href="#tlmgr-help">B.6.1 help</a></li> + <li><a name="toc-version" href="#tlmgr-version">B.6.2 version</a></li> + <li><a name="toc-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e" href="#tlmgr-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e">B.6.3 backup [–clean[=<em>N</em>]] [–backupdir <em>dir</em>] [–all | <em>pkg</em>]...</a></li> + <li><a name="toc-candidates-pkg" href="#tlmgr-candidates-pkg">B.6.4 candidates <em>pkg</em></a></li> + <li><a name="toc-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d" href="#tlmgr-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d">B.6.5 check [<em>option</em>]... [files|depends|executes|runfiles|all]</a></li> + <li><a name="toc-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d" href="#tlmgr-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d">B.6.6 conf [texmf|tlmgr|updmap [–conffile <em>file</em>] [–delete] [<em>key</em> [<em>value</em>]]]</a></li> + <li><a name="toc-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d" href="#tlmgr-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d">B.6.7 dump-tlpdb [–local|–remote]</a></li> + <li><a name="toc-generate-_005boption_005d_002e_002e_002e-what" href="#tlmgr-generate-_005boption_005d_002e_002e_002e-what">B.6.8 generate [<em>option</em>]... <em>what</em></a></li> + <li><a name="toc-gui" href="#tlmgr-gui">B.6.9 gui</a></li> + <li><a name="toc-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d" href="#tlmgr-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d">B.6.10 info [<em>option</em>...] [collections|schemes|<em>pkg</em>...]</a></li> + <li><a name="toc-init_002dusertree" href="#tlmgr-init_002dusertree">B.6.11 init-usertree</a></li> + <li><a name="toc-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" href="#tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e">B.6.12 install [<em>option</em>]... <em>pkg</em>...</a></li> + <li><a name="toc-option" href="#tlmgr-option">B.6.13 option</a></li> + <li><a name="toc-paper" href="#tlmgr-paper">B.6.14 paper</a></li> + <li><a name="toc-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d" href="#tlmgr-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d">B.6.15 path [–w32mode=user|admin] [add|remove]</a></li> + <li><a name="toc-pinning" href="#tlmgr-pinning">B.6.16 pinning</a></li> + <li><a name="toc-platform-list_007cadd_007cremove-platform_002e_002e_002e" href="#tlmgr-platform-list_007cadd_007cremove-platform_002e_002e_002e">B.6.17 platform list|add|remove <em>platform</em>...</a></li> + <li><a name="toc-platform-set-platform" href="#tlmgr-platform-set-platform">B.6.18 platform set <em>platform</em></a></li> + <li><a name="toc-platform-set-auto" href="#tlmgr-platform-set-auto">B.6.19 platform set auto</a></li> + <li><a name="toc-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e" href="#tlmgr-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e">B.6.20 postaction [–w32mode=user|admin] [–fileassocmode=1|2] [–all] [install|remove] [shortcut|fileassoc|script] [<em>pkg</em>]...</a></li> + <li><a name="toc-print_002dplatform" href="#tlmgr-print_002dplatform">B.6.21 print-platform</a></li> + <li><a name="toc-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d" href="#tlmgr-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d">B.6.22 restore [–backupdir <em>dir</em>] [–all | <em>pkg</em> [<em>rev</em>]]</a></li> + <li><a name="toc-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" href="#tlmgr-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e">B.6.23 remove [<em>option</em>]... <em>pkg</em>...</a></li> + <li><a name="toc-repository" href="#tlmgr-repository">B.6.24 repository</a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-what">B.6.25 search [<em>option</em>...] <em>what</em></a> + <ul class="no-bullet"> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dfile-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfile-what">B.6.25.1 search [<em>option</em>...] –file <em>what</em></a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what">B.6.25.2 search [<em>option</em>...] –taxonomy <em>what</em></a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what">B.6.25.3 search [<em>option</em>...] –keyword <em>what</em></a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what">B.6.25.4 search [<em>option</em>...] –functionality <em>what</em></a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what">B.6.25.5 search [<em>option</em>...] –characterization <em>what</em></a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dall-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dall-what">B.6.25.6 search [<em>option</em>...] –all <em>what</em></a></li> + </ul></li> + <li><a name="toc-uninstall" href="#tlmgr-uninstall">B.6.26 uninstall</a></li> + <li><a name="toc-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e" href="#tlmgr-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e">B.6.27 update [<em>option</em>]... [<em>pkg</em>]...</a></li> + </ul></li> + <li><a name="toc-USER-MODE" href="#tlmgr-USER-MODE">B.7 USER MODE</a> + <ul class="no-bullet"> + <li><a name="toc-user-mode-install" href="#tlmgr-user-mode-install">B.7.1 user mode install</a></li> + <li><a name="toc-user-mode-backup_003b-restore_003b-remove_003b-update" href="#tlmgr-user-mode-backup_003b-restore_003b-remove_003b-update">B.7.2 user mode backup; restore; remove; update</a></li> + <li><a name="toc-user-mode-generate_003b-option_003b-paper" href="#tlmgr-user-mode-generate_003b-option_003b-paper">B.7.3 user mode generate; option; paper</a></li> + </ul></li> + <li><a name="toc-CONFIGURATION-FILE-FOR-TLMGR" href="#tlmgr-CONFIGURATION-FILE-FOR-TLMGR">B.8 CONFIGURATION FILE FOR TLMGR</a></li> + <li><a name="toc-TAXONOMIES" href="#tlmgr-TAXONOMIES">B.9 TAXONOMIES</a></li> + <li><a name="toc-MULTIPLE-REPOSITORIES" href="#tlmgr-MULTIPLE-REPOSITORIES">B.10 MULTIPLE REPOSITORIES</a> + <ul class="no-bullet"> + <li><a name="toc-Pinning" href="#tlmgr-Pinning">B.10.1 Pinning</a></li> + </ul></li> + <li><a name="toc-GUI-FOR-TLMGR" href="#tlmgr-GUI-FOR-TLMGR">B.11 GUI FOR TLMGR</a> + <ul class="no-bullet"> + <li><a name="toc-Main-display" href="#tlmgr-Main-display">B.11.1 Main display</a> + <ul class="no-bullet"> + <li><a name="toc-Display-configuration-area" href="#tlmgr-Display-configuration-area">B.11.1.1 Display configuration area</a></li> + <li><a name="toc-Package-list-area" href="#tlmgr-Package-list-area">B.11.1.2 Package list area</a></li> + <li><a name="toc-Main-display-action-buttons" href="#tlmgr-Main-display-action-buttons">B.11.1.3 Main display action buttons</a></li> + </ul></li> + <li><a name="toc-Menu-bar" href="#tlmgr-Menu-bar">B.11.2 Menu bar</a></li> + </ul></li> + <li><a name="toc-MACHINE_002dREADABLE-OUTPUT" href="#tlmgr-MACHINE_002dREADABLE-OUTPUT">B.12 MACHINE-READABLE OUTPUT</a> + <ul class="no-bullet"> + <li><a name="toc-Machine_002dreadable-update-and-install-output" href="#tlmgr-Machine_002dreadable-update-and-install-output">B.12.1 Machine-readable <code>update</code> and <code>install</code> output</a></li> + <li><a name="toc-Machine_002dreadable-option-output" href="#tlmgr-Machine_002dreadable-option-output">B.12.2 Machine-readable <code>option</code> output</a></li> + </ul></li> + <li><a name="toc-AUTHORS-AND-COPYRIGHT-1" href="#tlmgr-AUTHORS-AND-COPYRIGHT">B.13 AUTHORS AND COPYRIGHT</a></li> + </ul></li> + <li><a name="toc-Index-1" href="#Index">Index</a></li> +</ul> +</div> + + +<a name="Top"></a> +<div class="header"> +<p> +Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Building-TeX-Live-_00282014_0029"></a> +<h1 class="top">Building TeX Live (2014)</h1> + +<p>For an overview of this manual, see <a href="#Introduction">Introduction</a>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Introduction" accesskey="1">Introduction</a>:</td><td> </td><td align="left" valign="top">About this manual. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Overview-of-build-system" accesskey="2">Overview of build system</a>:</td><td> </td><td align="left" valign="top">The TeX Live build system. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Prerequisites" accesskey="3">Prerequisites</a>:</td><td> </td><td align="left" valign="top">Requirements for building TeX Live. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Building" accesskey="4">Building</a>:</td><td> </td><td align="left" valign="top">The overall build process. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Installing" accesskey="5">Installing</a>:</td><td> </td><td align="left" valign="top">How and where installation happens (or not). +</td></tr> +<tr><td align="left" valign="top">• <a href="#Layout-and-infrastructure" accesskey="6">Layout and infrastructure</a>:</td><td> </td><td align="left" valign="top">Autoconf macros, etc., in detail. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options" accesskey="7">Configure options</a>:</td><td> </td><td align="left" valign="top">List of all configure options. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Cross-compilation" accesskey="8">Cross compilation</a>:</td><td> </td><td align="left" valign="top">Building on host X for target Y. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Coding-conventions" accesskey="9">Coding conventions</a>:</td><td> </td><td align="left" valign="top">Conventions to follow. +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl">install-tl</a>:</td><td> </td><td align="left" valign="top">The TeX Live installer. +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr">tlmgr</a>:</td><td> </td><td align="left" valign="top">The native TeX Live package manager. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index">Index</a>:</td><td> </td><td align="left" valign="top">General index. +</td></tr> +</table> + + +<hr> +<a name="Introduction"></a> +<div class="header"> +<p> +Next: <a href="#Overview-of-build-system" accesskey="n" rel="next">Overview of build system</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Introduction-1"></a> +<h2 class="chapter">1 Introduction</h2> + +<a name="index-introduction"></a> + +<p>This manual (dated May 2014) corresponds to the TeX Live +2014 release. +</p> +<p>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 +<a href="http://tug.org/texlive/svn">http://tug.org/texlive/svn</a>. +</p> +<p>This manual does not duplicate the (primarily user-level) information +found in other TL documentation resources, such as: +</p> +<ul> +<li> The TeX Live web pages: <a href="http://tug.org/texlive">http://tug.org/texlive</a>. + +</li><li> The web page with an overview of how to build the binaries which +are distributed with TeX Live: <a href="http://tug.org/texlive/build.html">http://tug.org/texlive/build.html</a>. + +</li><li> The TeX Live user manual: <a href="http://tug.org/texlive/doc.html">http://tug.org/texlive/doc.html</a>, or +run <code>texdoc texlive</code>. + +</li><li> Other TeX-related Texinfo manuals (see <cite><a href="web2c.html#Top">Web2c</a></cite>, +<cite><a href="kpathsea.html#Top">Kpathsea</a></cite>, etc.): +<a href="http://tug.org/texinfohtml/">http://tug.org/texinfohtml/</a>, or check the ‘<samp>TeX</samp>’ category in +the GNU Info system. + +</li><li> Package documentation: +<a href="http://tug.org/texlive/Contents/live/doc.html">http://tug.org/texlive/Contents/live/doc.html</a>, or the +<samp>doc.html</samp> file at the top level of the installed TL. + +</li></ul> + +<p>As an exception, the full documentation for <code>install-tl</code> and +<code>tlmgr</code> is included here, just because it is convenient to do so. +The same text is available online (linked from +<a href="http://tug.org/texlive/doc.html">http://tug.org/texlive/doc.html</a>, or by invoking the program with +‘<samp>--help</samp>’ (or look at the end of the source file). +</p> + + +<hr> +<a name="Overview-of-build-system"></a> +<div class="header"> +<p> +Next: <a href="#Prerequisites" accesskey="n" rel="next">Prerequisites</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Overview-of-build-system-1"></a> +<h2 class="chapter">2 Overview of build system</h2> + +<a name="index-build-system_002c-design-of"></a> + +<a name="index-Autoconf"></a> +<a name="index-Automake"></a> +<a name="index-Libtool"></a> +<a name="index-tests_002c-running"></a> +<p>The TeX Live build system was redesigned in 2009, consistently using +Autoconf, Automake, and Libtool. Thus<br> <code>configure && +make && make check && make install</code><br>or the basically-equivalent +top-level <code>Build</code> script suffice to build and install the TL +programs. The <code>make check</code> clause performs various tests of the +generated programs—not strictly required but strongly recommended. +Running <code>configure --help</code> will display a comprehensive list of +all <code>configure</code> options. +</p> +<p>The main components of the TL build system are: +</p> +<dl compact="compact"> +<dt><samp>libs/<var>lib</var></samp></dt> +<dd><p>Generic libraries. +</p> +</dd> +<dt><samp>texk/<var>lib</var></samp></dt> +<dd><p>TeX-specific libraries in subdirectories, notably +<var>lib</var>=<code>kpathsea</code>. (The other one is <samp>texk/ptexenc</samp>.) +</p> +</dd> +<dt><samp>texk/<var>prog</var></samp></dt> +<dd><p>TeX-specific programs (that use Kpathsea). +</p> +</dd> +<dt><samp>utils/<var>prog</var></samp></dt> +<dd><p>Other programs (that don’t use Kpathsea). +</p> +</dd> +</dl> + +<a name="index-kpse_002dpkgs_002em4"></a> +<p>The primary design goal of the build system is modularity. Each +program and library module (or package) specifies its own requirements +and properties, such as required libraries, whether an installed +(system) version of a library can be used, <code>configure</code> options to +be seen at the top-level, and more. An explicit list of all available +modules is kept in only one, central, place (<samp>m4/kpse-pkgs.m4</samp>). +</p> +<p>A second, related goal is to configure and build each library before +configuring any other (program or library) module which uses that +library. This allows checking for properties and features of a +library built as part of the TL tree in much the same way as for a +system version of that library. +</p> +<p>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. +</p> +<p>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 is trivial.) +</p> + +<hr> +<a name="Prerequisites"></a> +<div class="header"> +<p> +Next: <a href="#Building" accesskey="n" rel="next">Building</a>, Previous: <a href="#Overview-of-build-system" accesskey="p" rel="prev">Overview of build system</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Prerequisites-1"></a> +<h2 class="chapter">3 Prerequisites</h2> + +<a name="index-prerequisites-for-building"></a> +<a name="index-requirements-for-building"></a> + +<a name="index-compilers_002c-C-and-C_002b_002b"></a> +<p>Overall, building the TeX Live programs, when using all libraries from +the TL source tree, requires only C and C++ compilers and GNU +<code>make</code>. (If <code>make</code> from your <code>PATH</code> is not GNU make, +you can set <code>MAKE</code> in the environment to whatever is necessary.) +</p> +<a name="index-GNU-make_002c-required"></a> +<a name="index-gmake_002c-required"></a> +<a name="index-FreeType"></a> +<p>Indeed, GNU <code>make</code> is required only because of some +third-party libraries, notably FreeType; all the TL-maintained +directories (and Automake/Autoconf output in general) should work with +any reasonable <code>make</code>. +</p> +<p>However, a few programs in the tree have additional requirements: +</p> +<dl compact="compact"> +<dt><samp>web2c</samp></dt> +<dd><a name="index-perl_002c-required-by-web2c_002c-etc_002e"></a> +<p>requires <code>perl</code> for some tests run by <code>make check</code>. +</p> +</dd> +<dt><samp>xdvik</samp></dt> +<dt><samp>xpdfopen</samp></dt> +<dd><a name="index-X11_002c-required-by-X-clients"></a> +<p>require X11 headers and libraries, often in “development” packages +that are not installed by default. +</p> +</dd> +<dt><samp>xetex</samp></dt> +<dd><a name="index-fontconfig-library_002c-required-by-xetex"></a> +<p>requires <samp>fontconfig</samp> (again both headers and library). +</p> +</dd> +<dt><samp>xindy</samp></dt> +<dd><a name="index-clisp_002c-required-by-xindy"></a> +<a name="index-ffcall_002c-required-by-xindy"></a> +<p>requires GNU <code>clisp</code> and in addition <code>perl</code>, <code>latex</code>, +and <code>pdflatex</code> to build the rules and/or documentation. +</p> +</dd> +</dl> + +<p>Lacking the required tools, building these +programs must avoided, e.g.,<br> +<code>configure --without-x --disable-xetex --disable-xindy</code> +</p> +<p>Modifying source files induces more requirements, as one might expect: +</p> +<ul> +<li> Modification of any <code>.y</code> or <code>.l</code> source files requires +<samp>bison</samp> or <samp>flex</samp> to updatete the corresponding C sources. + +</li><li> Modification of the sources for <code>.info</code> files requires +<code>makeinfo</code>. + +</li><li> Modification of any part of the build system (M4 macros, +<samp>configure.ac</samp>, <samp>Makefile.am</samp>, or their fragments) requires +GNU M4, GNU Autoconf, GNU Automake, and GNU Libtool to update the +generated files. See <a href="#Build-system-tools">Build system tools</a>. + +</li></ul> + +<p>If you haven’t modified any source files, and infrastructure tools +such as <code>autoconf</code> or <code>makeinfo</code> are still being run, check +your timestamps—notably, <code>use-commit-times</code> must be set to +<code>yes</code> in your Subversion configuration (see <a href="#Build-system-tools">Build system tools</a>). Barring buggy commits, no infrastructure tools are needed to +do a normal build. +</p> + +<hr> +<a name="Building"></a> +<div class="header"> +<p> +Next: <a href="#Installing" accesskey="n" rel="next">Installing</a>, Previous: <a href="#Prerequisites" accesskey="p" rel="prev">Prerequisites</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Building-1"></a> +<h2 class="chapter">4 Building</h2> + +<a name="index-building"></a> +<a name="index-overall-build-process"></a> + +<a name="index-Build-script"></a> +<p>The top-level <samp>Build</samp> script is intended to simplify building the +binaries distributed with TeX Live itself—we call this the “native” +TL build. It configures and makes everything in a subdirectory of the +main build tree (default <samp>Work/</samp>), installs everything in an +other subdirectory (default <samp>inst/</samp>), and finally runs <code>make +check</code>. The exact directory and command names can be specified via +environment variables and a few leading options. All remaining +arguments (assignments or options) are passed to the <samp>configure</samp> +script. Please take a look at the script itself for more information; +it is not complicated. +</p> +<a name="index-source-directory-building_002c-not-supported"></a> +<a name="index-build-directory_002c-required"></a> +<p>An alternative, and the one we will mainly discuss here, is to run +<code>configure</code> and <code>make</code> oneself in a suitable empty +subdirectory. Building in the source directory itself is not +supported (sorry). +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Build-iteration" accesskey="1">Build iteration</a>:</td><td> </td><td align="left" valign="top">What <code>configure</code> and <code>make</code> do. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Build-problems" accesskey="2">Build problems</a>:</td><td> </td><td align="left" valign="top">If the build fails. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Build-in-parallel" accesskey="3">Build in parallel</a>:</td><td> </td><td align="left" valign="top">Simultaneous <code>make</code> processes. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Build-distribution" accesskey="4">Build distribution</a>:</td><td> </td><td align="left" valign="top">Making a distribution tarball. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Build-one-package" accesskey="5">Build one package</a>:</td><td> </td><td align="left" valign="top">Example of working on just one program. +</td></tr> +</table> + + +<hr> +<a name="Build-iteration"></a> +<div class="header"> +<p> +Next: <a href="#Build-problems" accesskey="n" rel="next">Build problems</a>, Up: <a href="#Building" accesskey="u" rel="up">Building</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-iteration-1"></a> +<h3 class="section">4.1 Build iteration</h3> + +<a name="index-build-iteration"></a> +<a name="index-iteration-through-sources_002c-by-configure-and-make"></a> + +<p>Running the top-level <samp>configure</samp> script configures the top level +and the subdirectories <samp>libs</samp>, <samp>utils</samp>, and <samp>texk</samp>. +Running <code>make</code> at the top-level first iterates over all +TeX-specific libraries, and then runs <code>make</code> in +<samp>libs</samp>, <samp>utils</samp>, and <samp>texk</samp> to iterate over all generic +libraries, utility programs, and TeX-specific programs. These +iterations consist of two steps: +</p> +<ol> +<li> For each library or program module not yet configured, run +<code>configure</code>, adding the configure option <code>--disable-build</code> +if the module need not be built, otherwise running <code>make all</code>. + +</li><li> For each library or program module that must be built, run +<code>make</code> for the selected target(s): <code>default</code> or +<code>all</code> to (re-)build, <code>check</code> to run tests, <code>install</code>, +etc. + +</li></ol> + +<p>Running the top-level <code>make</code> a second time iterates again over +all the library and program modules, but finds (should find) nothing +to be done unless some source files have been modified. +</p> + +<hr> +<a name="Build-problems"></a> +<div class="header"> +<p> +Next: <a href="#Build-in-parallel" accesskey="n" rel="next">Build in parallel</a>, Previous: <a href="#Build-iteration" accesskey="p" rel="prev">Build iteration</a>, Up: <a href="#Building" accesskey="u" rel="up">Building</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-problems-1"></a> +<h3 class="section">4.2 Build problems</h3> + +<a name="index-build-problems"></a> +<a name="index-problems-with-build"></a> +<a name="index-failure-to-build"></a> +<a name="index-_002d_002dno_002dclean-Build-option"></a> +<p>If configuring or building a module fails, you could either +(a) find and fix the problem, or (b) remove the subdirectory +for that module from the build tree, and rerun the top-level +<code>make</code> (or <samp>Build</samp> with <code>--no-clean</code> as its first +argument). +</p> + +<hr> +<a name="Build-in-parallel"></a> +<div class="header"> +<p> +Next: <a href="#Build-distribution" accesskey="n" rel="next">Build distribution</a>, Previous: <a href="#Build-problems" accesskey="p" rel="prev">Build problems</a>, Up: <a href="#Building" accesskey="u" rel="up">Building</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-in-parallel-1"></a> +<h3 class="section">4.3 Build in parallel</h3> + +<a name="index-building-in-parallel"></a> +<a name="index-parallel-build"></a> +<a name="index-cache-for-configure"></a> + +<a name="index-dependencies_002c-with-several-output-files"></a> +<a name="index-_002dj-make-option"></a> +<p>The TL build system carefully formulates dependencies as well as +<code>make</code> rules when a tool (such as <code>tangle</code>, <code>ctangle</code>, +or <code>convert</code>) creates several output files. This allows for +parallel builds (<code>make -j <var>n</var></code> with <em><var>n</var>>1</em> or even +<code>make -j</code>) that can considerably speed up the TL build. +</p> +<a name="index-cache-file_002c-for-configure"></a> +<a name="index-_002dC-configure-option"></a> +<p>Incidentally, a noticeable speed-up can also be (independently) gained +by using a configure cache file, i.e., with the option <code>-C</code> +(recommended). +</p> + +<hr> +<a name="Build-distribution"></a> +<div class="header"> +<p> +Next: <a href="#Build-one-package" accesskey="n" rel="next">Build one package</a>, Previous: <a href="#Build-in-parallel" accesskey="p" rel="prev">Build in parallel</a>, Up: <a href="#Building" accesskey="u" rel="up">Building</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-distribution-1"></a> +<h3 class="section">4.4 Build distribution</h3> + +<a name="index-building-a-distribution"></a> +<a name="index-distribution-tarball_002c-making"></a> + +<a name="index-dist-and-distcheck-targets-for-make"></a> +<p>Running <code>make dist</code> at the top-level creates a tarball +<samp>tex-live-<var>yyyy</var>-<var>mm</var>-<var>dd</var>.tar.xz</samp> from the TL source +tree. Running <code>make distcheck</code> also verifies that this tarball +suffices to build and install all of TL. +</p> +<p>This is useful for checking consistency of the source tree and +Makefiles, but the result is not a complete or even usable TeX +system, since all the support files are lacking; see <a href="#Installing">Installing</a>. +</p> +<hr> +<a name="Build-one-package"></a> +<div class="header"> +<p> +Previous: <a href="#Build-distribution" accesskey="p" rel="prev">Build distribution</a>, Up: <a href="#Building" accesskey="u" rel="up">Building</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-one-package-1"></a> +<h3 class="section">4.5 Build one package</h3> + +<a name="index-build-one-package"></a> +<a name="index-one-package_002c-building"></a> + +<a name="index-_002d_002ddisable_002dall_002dpackages-configure-option"></a> +<a name="index-build-on-demand"></a> +<p>To build one package, the basic idea is to use the <code>configure</code> +option <code>--disable-all-pkgs</code> (see <a href="#g_t_002d_002ddisable_002dall_002dpkgs"><code>--disable-all-pkgs</code></a>). +Then all program and library modules are configured but none are made. +However, the <samp>Makefile</samp>s still contain all build rules and +dependencies and can be invoked to build an individual program or +library and causes to first build any required libraries. +</p> +<p>This “build-on-demand” procedure is used, e.g., in the <code>luatex</code> +repository to build LuaTeX, essentially from a subset of the +complete TeX Live tree. Similarly, when, e.g., building the original +e-TeX has been disabled (as it is by default), one can run +<code>make etex</code> (or <code>make etex.exe</code>) in <samp>texk/web2c/</samp> to +build e-TeX (although there is no comparably simple way to install +e-TeX). +</p> +<p>If you want to work on a single program within the TL sources, this is +the recommended way to do it. Here is an example from start to +finish for working on <code>dvipdfmx</code>. +</p> +<div class="example"> +<pre class="example">mkdir mydir && cd mydir # new working directory + +# Get sources (<a href="http://tug.org/texlive/svn">http://tug.org/texlive/svn</a>) +rsync -a --delete --exclude=.svn --exclude=Work \ + tug.org::tldevsrc/Build/source/ . + +# Create build directory: +mkdir Work && cd Work + +# Do the configure: +../configure --disable-all-pkgs --enable-dvipdfm-x \ + -C CFLAGS=-g CXXFLAGS=-g >&outc + +# Do the make: +make >&outm + +# Test: +cd texk/dvipdfmx +make check +</pre></div> + +<p>Then you modify source files in <samp>mydir/texk/dvipdfm-x</samp> and rerun +<code>make</code> in <samp>mydir/Work/texk/dvipdfm-x</samp> to rebuild. +</p> +<p>The second line the <code>configure</code> are invocation shows examples of +extra things you likely want to specify if you intend to hack the +sources (and not just build binaries): the <code>-C</code> speeds up +<code>configure</code>, and the <code>CFLAGS</code> and <code>CXXFLAGS</code> are to +eliminate compiler optimization for debugging purposes. +</p> +<p>Of course, one should actually look at the output and check that +things are working. There are many <code>configure</code> options you can +tweak as desired; check the output from <code>configure --help</code>. +</p> +<a name="index-size-of-source-tree"></a> +<p>Finally, the above retrieves the entire TL source tree (some 300mb). +It is natural to ask if this is really necessary. Strictly speaking, +the answer is no, but it is vastly more convenient to do so. If you +cut down the source tree, you must also give additional +<code>configure</code> flags to individually disable using system versions +of libraries, or the intricacies of the dependencies (such as +<code>teckit</code> requiring <code>zlib</code>) will have undesired side effects. +For an example, see the <code>build-pdftex.sh</code> script in the +<code>pdftex</code> development sources (<a href="http://pdftex.org">http://pdftex.org</a>), which are +indeed a cut-down TL source tree. +</p> + +<hr> +<a name="Installing"></a> +<div class="header"> +<p> +Next: <a href="#Layout-and-infrastructure" accesskey="n" rel="next">Layout and infrastructure</a>, Previous: <a href="#Building" accesskey="p" rel="prev">Building</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Installing-1"></a> +<h2 class="chapter">5 Installing</h2> + +<a name="index-installing"></a> +<p>This section discusses the results of <code>make install</code> in the +source tree. +</p> +<a name="index-support-files_002c-separate-from-build"></a> +<a name="index-texlive_002etlpdb_002c-TeX-Live-database"></a> +<a name="index-install_002dtl_002c-TeX-Live-installer"></a> +<a name="index-plain_002etex_002c-not-in-source-tree"></a> +<p>The main consideration is that <code>make install</code> is not enough to +make a usable TeX installation. Beyond the compiled binaries, +(thousands of) support files are needed; just as a first example +<samp>plain.tex</samp> is not in the source tree. +</p> +<p>These support files are maintained completely independently and are +not present in the source tree. The best basis for dealing with them +is the TeX Live (plain text) database in +<samp>Master/tlpkg/texlive.tlpdb</samp>, and/or the TeX Live installer, +<code>install-tl</code>. More information is under <samp>Master/tlpkg</samp> and +at <a href="http://tug.org/texlive/distro.html">http://tug.org/texlive/distro.html</a>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Installation-directories" accesskey="1">Installation directories</a>:</td><td> </td><td align="left" valign="top">The prefix, <code>bindir</code>, etc., directories. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Linked-scripts" accesskey="2">Linked scripts</a>:</td><td> </td><td align="left" valign="top">Scripts not maintained in the sources. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Distro-builds" accesskey="3">Distro builds</a>:</td><td> </td><td align="left" valign="top">Configuring and building for OS distributions. +</td></tr> +</table> + + +<hr> +<a name="Installation-directories"></a> +<div class="header"> +<p> +Next: <a href="#Linked-scripts" accesskey="n" rel="next">Linked scripts</a>, Up: <a href="#Installing" accesskey="u" rel="up">Installing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Installation-directories-1"></a> +<h3 class="section">5.1 Installation directories</h3> + +<a name="index-installation-directories"></a> +<a name="index-directories_002c-for-installation"></a> +<a name="index-paths_002c-for-installation"></a> + +<p>Running <code>make install</code> (or <code>make install-strip</code>) installs +executables in <code><var>bindir</var></code>, libraries in <code><var>libdir</var></code>, +headers in <code><var>includedir</var></code>, general data (including “linked +scripts”, see <a href="#Linked-scripts">Linked scripts</a>) in +<code><var>datarootdir</var>/texmf-dist</code>, man pages in <code><var>mandir</var></code>, +and Info files in <code><var>infodir</var></code>. +</p> +<p>The values of these directories are determined by <code>configure</code> +and can be specified explictly as options such as +<code>--prefix=<var>prefix</var></code> or <code>--bindir=<var>bindir</var></code>; +otherwise, they are given by their usual Autoconf defaults: +</p> +<div class="example"> +<pre class="example"><var>prefix</var> /usr/local +<var>exec_prefix</var> <var>prefix</var> +<var>bindir</var> <var>exec_prefix</var>/bin +<var>libdir</var> <var>exec_prefix</var>/lib +<var>includedir</var> <var>prefix</var>/include +<var>datarootdir</var> <var>prefix</var>/share +<var>mandir</var> <var>datarootdir</var>/man +<var>infodir</var> <var>datarootdir</var>/info +</pre></div> + +<p>… except possibly modified as follows: +</p> +<ul> +<li> If the option <code>--enable-multiplatform</code> is given, +<code>/<var>platform</var></code> (i.e., the canonical platform name) is appended +to <code><var>bindir</var></code> and <code><var>libdir</var></code>. This is implied for a +native TL build. + +</li></ul> + +<p>The top-level <samp>configure</samp> script displays all these +installation paths. +</p> +<p>For the native TL build, the <code>Build</code> script leaves the binaries +in <samp>./inst/bin/<var>std-platform-name</var></samp>. The new binaries are +not directly usable from that location; they need to be copied to +<samp>Master/bin/<var>tl-platform</var></samp>. The other files and directories +that end up in <samp>./inst/</samp> are ignored. +</p> + +<hr> +<a name="Linked-scripts"></a> +<div class="header"> +<p> +Next: <a href="#Distro-builds" accesskey="n" rel="next">Distro builds</a>, Previous: <a href="#Installation-directories" accesskey="p" rel="prev">Installation directories</a>, Up: <a href="#Installing" accesskey="u" rel="up">Installing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Linked-scripts-1"></a> +<h3 class="section">5.2 Linked scripts</h3> + +<a name="index-linked-scripts"></a> +<a name="index-scripts_002c-linked-and-not-maintained"></a> + +<a name="index-symlinks_002c-used-for-scripts"></a> +<a name="index-wrapper-binary-for-scripts-on-Windows"></a> +<a name="index-Windows_002c-invoking-scripts-on"></a> +<p>Quite a few executables are architecture-independent shell, Perl, or +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 <samp>texk/texlive/linked_scripts</samp>. +</p> +<p>These so-called <em>linked scripts</em> are installed under +<code><var>datarootdir</var>/texmf-dist/scripts</code>; for Unix-like systems a +symbolic link is made in <code><var>bindir</var></code>. For example, a symlink +points from <code><var>bindir</var>/ps2eps</code> to +<code><var>datarootdir</var>/texmf-dist/scripts/ps2eps/ps2eps.pl</code>. For +Windows, a standard wrapper binary (e.g., +<code><var>bindir</var>/ps2eps.exe</code>) serves the same purpose. (The source +for the wrapper is in <samp>texk/texlive/w32_wrapper</samp>.) +</p> +<p>One reason for this is to avoid having many copies of the same +script; a more important reason is that it guarantees the scripts will +stay in sync across the different supported operating systems. +</p> +<a name="index-asymptote"></a> +<a name="index-biber"></a> +<a name="index-xindy"></a> +<a name="index-xz"></a> +<a name="index-wget"></a> +<p>Most important of all, we want the <code><var>bindir</var></code> resulting from +the build to be as close as possible to what is in the TL +distribution. At present, there are a few exceptions—Asymptote, +Biber, Xindy—and each one creates considerable extra work. We don’t +want to add more. (See <a href="http://tug.org/texlive/build.html">http://tug.org/texlive/build.html</a> for +information about building those exceptions, as well as the <code>xz</code> +and <code>wget</code> programs that are used in the TL infrastructure.) +</p> + +<hr> +<a name="Distro-builds"></a> +<div class="header"> +<p> +Previous: <a href="#Linked-scripts" accesskey="p" rel="prev">Linked scripts</a>, Up: <a href="#Installing" accesskey="u" rel="up">Installing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Distro-builds-1"></a> +<h3 class="section">5.3 Distro builds</h3> + +<a name="index-distro_002c-building-for"></a> +<a name="index-operating-system-distribution_002c-building-for"></a> +<a name="index-system-distribution_002c-building-for"></a> + +<a name="index-GNU_002fLinux-distro"></a> +<a name="index-BSD-distro"></a> +<p>Although they use the same code base, building for the native TL +distribution as shipped by the TeX user groups is typically quite +different from a “distro” build needed by, e.g., a full GNU/Linux or +BSD operating system distribution. +</p> +<a name="index-shared-libraries_002c-using-vs_002e-avoiding"></a> +<p>The native TL distribution uses shared libraries only when absolutely +necessary (<samp>libc</samp>, <samp>libm</samp>, X11 libraries, and +<samp>libfontconfig</samp>). However, a distro typically wants to use as +many shared libraries as possible from elsewhere on the system, +including TeX-specific libraries such as <samp>libkpathsea</samp> (even +though Kpathsea has never officially been released as a shared +library, but we digress). In addition, the installation paths will, +in general, be completely different. +</p> +<p>Here are the <code>configure</code> options that distro builds are likely to +find most relevant: +</p> +<dl compact="compact"> +<dt><code>--disable-native-texlive-build</code></dt> +<dd><p>This must be specified to avoid interference from the many tweaks we +do for the native TL build. +</p> +</dd> +<dt><code>--with-banner-add=/<var>SomeDistro</var></code></dt> +<dd><p>This isn’t technically required, but is strongly recommended, so your +build and your distro can be distinguished from others. +</p> +</dd> +<dt><code>--enable-shared</code></dt> +<dd><p>Build shared versions of the TeX-specific libraries (uses +<code>libtool</code>). +</p> +</dd> +<dt><code>--disable-static</code></dt> +<dd><p>Do not build the static versions of the TeX-specific libraries. +</p> +</dd> +<dt><code>--with-system-<var>lib</var></code></dt> +<dd><p>Use system versions for as many libraries <var>lib</var> as possible. +<code>configure --help</code> will give you the list of possibilities. +</p> +</dd> +<dt><code>--with-<var>lib</var>-includes=<var>dir</var></code></dt> +<dt><code>--with-<var>lib</var>-libdir=<var>dir</var></code></dt> +<dd><p>If needed, allows you to specify where the headers/code are for the +given library <var>lib</var>. +</p> +</dd> +<dt><code>--prefix=/usr</code></dt> +<dt><code>--prefix=/opt/TeXLive</code></dt> +<dd><p>Or whatever your convention is. The default is <samp>/usr/local</samp> and +you shouldn’t install there for a distro. +</p> +</dd> +<dt><code>--libdir=\${exec_prefix}/lib64</code></dt> +<dd><p>May be needed for 64-bit bi-architecture (GNU/Linux) systems. +</p> +</dd> +</dl> + +<a name="index-Preining_002c-Norbert"></a> +<a name="index-adapting-TeX-Live-for-distros"></a> +<p>You will need to take care of the support files mentioned above +(see <a href="#Installing">Installing</a>), and many other issues, such as font maps, +languages, and formats, independently of the build. Norbert Preining +has written a detailed article on adapting TL for distros: +<a href="http://tug.org/TUGboat/tb34-3/tb108preining-distro.pdf">http://tug.org/TUGboat/tb34-3/tb108preining-distro.pdf</a>. (If the +article needs updating in the future, perhaps we will merge it into +this document.) +</p> + +<hr> +<a name="Layout-and-infrastructure"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options" accesskey="n" rel="next">Configure options</a>, Previous: <a href="#Installing" accesskey="p" rel="prev">Installing</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Layout-and-infrastructure-1"></a> +<h2 class="chapter">6 Layout and infrastructure</h2> + +<a name="index-layout-of-sources"></a> +<a name="index-source-tree"></a> + +<p>The TeX Live source tree is the subtree rooted at <samp>Build/source</samp> of +the complete TL distribution and contains the sources for all executables +distributed by TL, as well as <code>configure</code> scripts and <code>make</code> +rules to build and install them together with some of their support +files. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Build-system-tools" accesskey="1">Build system tools</a>:</td><td> </td><td align="left" valign="top">If modifying infrastructure files. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Top_002dlevel-directories" accesskey="2">Top-level directories</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Autoconf-macros" accesskey="3">Autoconf macros</a>:</td><td> </td><td align="left" valign="top">TL-specific Autoconf macros. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Library-modules" accesskey="4">Library modules</a>:</td><td> </td><td align="left" valign="top">Details on some specific libraries, +</td></tr> +<tr><td align="left" valign="top">• <a href="#Program-modules" accesskey="5">Program modules</a>:</td><td> </td><td align="left" valign="top">and on some programs. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Extending-TeX-Live" accesskey="6">Extending TeX Live</a>:</td><td> </td><td align="left" valign="top">Adding a new module. +</td></tr> +</table> + + +<hr> +<a name="Build-system-tools"></a> +<div class="header"> +<p> +Next: <a href="#Top_002dlevel-directories" accesskey="n" rel="next">Top-level directories</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-system-tools-1"></a> +<h3 class="section">6.1 Build system tools</h3> + +<a name="index-tools_002c-for-building"></a> +<a name="index-GNU-tools_002c-needed-for-building"></a> +<a name="index-infrastructure_002c-tools-needed-for"></a> + +<p>As mentioned above (see <a href="#Prerequisites">Prerequisites</a>), a normal build requires +very little. On the other hand, if you want to modify the TeX Live +infrastructure sources, such as <samp>configure.ac</samp> or +<samp>Makefile.am</samp> files, you will need to have several additional +tools installed. +</p> +<p>In general, the TL build system uses the latest released versions of +the GNU build tools, installed directly from the original GNU releases +(e.g., by building them with <code>configure --prefix=/usr/local/gnu</code> +and having <code>PATH</code> start with <samp>/usr/local/gnu/bin</samp>). We have +found that trying to use the versions of these tools packaged for +distros causes many extra hassles, so don’t do that, tempting as it +may be. +</p> +<p>Currently the versions we use are: +</p> +<div class="display"> +<pre class="display">autoconf (GNU Autoconf) 2.69 +automake (GNU automake) 1.14.1 +bison (GNU Bison) 3.0.2 +flex 2.5.39 +ltmain.sh (GNU libtool) 2.4.2 +m4 (GNU M4) 1.4.17 +makeinfo (GNU texinfo) 5.2 +</pre></div> + +<a name="index-reautoconf"></a> +<a name="index-_002d_002denable_002dmaintainer_002dmode-configure-option"></a> +<p>These versions should be used to update the generated files (e.g., +<samp>configure</samp> or <samp>Makefile.in</samp>) in all or parts of the TL tree +after their dependencies have been changed. This can be done +explicitly with the top-level <code>reautoconf</code> script or implicitly +by using the configure option <code>--enable-maintainer-mode</code>. +</p> +<a name="index-Subversion-repository"></a> +<a name="index-timestamps_002c-in-repository"></a> +<a name="index-use_002dcommit_002dtimes_002c-Subversion"></a> +<p>The files in the Subversion repository (see +<a href="http://tug.org/texlive/svn">http://tug.org/texlive/svn</a>) are all up to date, but +unfortunately this may not be reflected by their timestamps. (For +starters, be sure to set <samp>use-commit-times=yes</samp> in +<samp>~/.subversion/config</samp> or the equivalent.) +</p> +<a name="index-touching-files-to-avoid-rerunning"></a> +<a name="index-make-_002dt"></a> +<p>To avoid unnecessary runs of <code>bison</code>, <code>flex</code>, or +<code>makeinfo</code> it may be necessary to <code>touch</code> the generated +(<samp>.c</samp>, <samp>.h</samp>, or <samp>.info</samp>) files. With +<code>--enable-maintainer-mode</code> it may also be necessary to +<code>touch</code> first <samp>aclocal.m4</samp>, then <samp>configure</samp> and +<samp>config.h.in</samp> (or <samp>c-auto.in</samp>), and finally all +<samp>Makefile.in</samp> files. Perhaps <code>make -t</code> will help. +</p> + +<hr> +<a name="Top_002dlevel-directories"></a> +<div class="header"> +<p> +Next: <a href="#Autoconf-macros" accesskey="n" rel="next">Autoconf macros</a>, Previous: <a href="#Build-system-tools" accesskey="p" rel="prev">Build system tools</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Top_002dlevel-directories-1"></a> +<h3 class="section">6.2 Top-level directories</h3> + +<a name="index-directories_002c-top_002dlevel"></a> +<a name="index-top_002dlevel-directories"></a> + +<p>Here is a brief description of the top-level directories in the TeX Live +source tree. +</p> +<p>As mentioned at the beginning of the chapter (see <a href="#Overview-of-build-system">Overview of build system</a>), the main source directories are <samp>texk/</samp> +(TeX-specific programs and libraries), <samp>utils/</samp> (additional +programs), and <samp>libs</samp> (generic libraries). +</p> +<a name="index-am_002f-top_002dlevel-directory"></a> +<a name="index-m4_002f-top_002dlevel-directory"></a> +<p>The top-level directories <samp>am/</samp> and <samp>m4/</samp> contain +<samp>Makefile.am</samp> fragments and Autoconf macros, respectively, used +in many places. Specifically, the file <samp>m4/kpse-pkgs.m4</samp> +contains lists of all program and library modules; missing modules are +silently ignored. (This helps in creating cut-down source trees.) +</p> +<p>Each module contributes fragments (in separate files) defining its +capabilities and requirements to the <samp>configure.ac</samp> scripts at +the top-level and in the subdirectories <samp>libs</samp>, <samp>utils</samp>, and +<samp>texk</samp>. The fragments from program modules supply +<code>configure</code> options to disable or enable building them; those +from library modules specify if an installed (system) version of that +library can be used. This ultimately determines which modules need to +be built—although all modules must be configured for the benefit of +<samp>make</samp> targets such as <code>dist</code> or <code>distcheck</code>. +</p> +<a name="index-config_002eguess_002c-config_002esub"></a> +<a name="index-Gnulib_002c-used-for-common-files"></a> +<p>The top-level <samp>build-aux/</samp> directory contains the common files +<samp>compile</samp>, <samp>config.guess</samp>, <samp>config.sub</samp>, +<samp>depcomp</samp>, etc. for most packages, pulled from the GNU Gnulib +sources (<a href="http://www.gnu.org/software/gnulib">http://www.gnu.org/software/gnulib</a>), which in turn +synchronizes with the appropriate ultimate upstream repository. There +are, however, independent copies in, e.g., +<samp>libs/freetype2/freetype-*/builds/unix/</samp>, and similar places. +The <code>reautoconf</code> script does not touch those, but a TL cron job +keeps them in sync (nightly). +</p> +<a name="index-extra_002f-top_002dlevel-directory"></a> +<p>The directory <samp>extra/</samp> contains things which are not part of the +TL build, but are present just for (someone’s) convenience, e.g., +<samp>epstopdf</samp> which is developed here. +</p> + +<hr> +<a name="Autoconf-macros"></a> +<div class="header"> +<p> +Next: <a href="#Library-modules" accesskey="n" rel="next">Library modules</a>, Previous: <a href="#Top_002dlevel-directories" accesskey="p" rel="prev">Top-level directories</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Autoconf-macros-1"></a> +<h3 class="section">6.3 Autoconf macros</h3> + +<a name="index-autoconf-macros"></a> + + + +<p>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 module-specific macros in directories such as +<samp>texk/dvipng/m4/</samp>; some of those are described in <a href="#Library-modules">Library modules</a> and see <a href="#Program-modules">Program modules</a>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#General-setup-macros" accesskey="1">Setup</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macros-for-programs" accesskey="2">Programs</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macros-for-compilers" accesskey="3">Compilers</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macros-for-libraries" accesskey="4">Libraries</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macros-for-library-and-header-flags" accesskey="5">Flags</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macros-for-Windows" accesskey="6">Windows</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="General-setup-macros"></a> +<div class="header"> +<p> +Next: <a href="#Macros-for-programs" accesskey="n" rel="next">Macros for programs</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="General-setup-macros-1"></a> +<h4 class="subsection">6.3.1 General setup macros</h4> + +<a name="index-general-setup-macros"></a> +<a name="index-setup-macros_002c-general"></a> +<a name="index-macros_002c-general-setup"></a> +<p>The TL sources use two general setup macros: +</p> +<dl> +<dt><a name="index-KPSE_005fBASIC"></a>Macro: <strong>KPSE_BASIC</strong> <em>(<var>name</var>, [<var>more-options</var>])</em></dt> +<dd><p>Initialize the basic TL infrastructure for module <var>name</var>:<br> <code>AM_INIT_AUTOMAKE([foreign <var>more-options</var>])</code><br> <code>AM_MAINTAINER_MODE</code><br> <code>KPSE_COMPILER_WARNINGS</code><br> +and make sure the C compiler understands function prototypes. This is +used for all generic library and program modules. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCOMMON"></a>Macro: <strong>KPSE_COMMON</strong> <em>(<var>name</var>, [<var>more-options</var>])</em></dt> +<dd><p>Like <code>KPSE_BASIC</code> but add:<br> <code>LT_PREREQ([2.2.6])</code><br> <code>LT_INIT([win32-dll])</code><br> <code>AC_SYS_LARGEFILE</code><br> <code>AC_FUNC_FSEEKO</code><br>and check for frequently used functions, +headers, types, and structures. This is used for TeX-specific +modules. +</p></dd></dl> + + +<hr> +<a name="Macros-for-programs"></a> +<div class="header"> +<p> +Next: <a href="#Macros-for-compilers" accesskey="n" rel="next">Macros for compilers</a>, Previous: <a href="#General-setup-macros" accesskey="p" rel="prev">General setup macros</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macros-for-programs-1"></a> +<h4 class="subsection">6.3.2 Macros for programs</h4> + +<a name="index-macros_002c-for-programs"></a> +<p>Macros for program checks: +</p> +<dl> +<dt><a name="index-KPSE_005fCHECK_005fLATEX"></a>Macro: <strong>KPSE_CHECK_LATEX</strong></dt> +<dd><p>Set <code>LATEX</code> to the name of the first of <code>latex</code>, +<code>elatex</code>, or <code>lambda</code> which exists in <code>PATH</code>, or to +<code>no</code> if none of them exists. Call <code>AC_SUBST</code> for +<code>LATEX</code>. The result of this test can be overridden by setting +the <code>LATEX</code> environment variable or the cache variable +<code>ac_cv_prog_LATEX</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCHECK_005fPDFLATEX"></a>Macro: <strong>KPSE_CHECK_PDFLATEX</strong></dt> +<dd><p>Check for <code>pdflatex</code> in <code>PATH</code> and set <code>PDFLATEX</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCHECK_005fPERL"></a>Macro: <strong>KPSE_CHECK_PERL</strong></dt> +<dd><p>Check for <code>perl</code> or <code>perl5</code> in <code>PATH</code> and set +<code>PERL</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fPROG_005fLEX"></a>Macro: <strong>KPSE_PROG_LEX</strong></dt> +<dd><p>Call <code>AC_PROG_LEX</code> and add the flag <code>-l</code> for <code>flex</code>. +</p></dd></dl> + + +<hr> +<a name="Macros-for-compilers"></a> +<div class="header"> +<p> +Next: <a href="#Macros-for-libraries" accesskey="n" rel="next">Macros for libraries</a>, Previous: <a href="#Macros-for-programs" accesskey="p" rel="prev">Macros for programs</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macros-for-compilers-1"></a> +<h4 class="subsection">6.3.3 Macros for compilers</h4> + +<a name="index-macros_002c-for-compilers"></a> + +<p>Macros for compiler-related checks: +</p> +<dl> +<dt><a name="index-KPSE_005fCOMPILER_005fWARNINGS"></a>Macro: <strong>KPSE_COMPILER_WARNINGS</strong></dt> +<dd><a name="index-WARNING_005fC_005bXX_005dFLAGS"></a> +<p>When using the (Objective) C/C++ compiler, set +<code>WARNING_[OBJ]C[XX</code>]FLAGS to suitable warning flags (depending on +the value given to or implied for <code>--enable-compiler-warnings</code>). +Call <code>AC_SUBST</code> for them. At the moment this only works for GNU +compilers, but could be extended to others if necessary. +</p> +<a name="index-kpse_005fcv_005fwarning_005fcflags"></a> +<p>This macro caches its results in the <code>kpse_cv_warning_cflags</code>, +… variables. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCOMPILER_005fVISIBILITY"></a>Macro: <strong>KPSE_COMPILER_VISIBILITY</strong></dt> +<dd><p>When using the C or C++ compiler, try to set +<code>VISIBILITY_C[XX]FLAGS</code> to flags to hide external symbols. Call +<code>AC_SUBST</code> for this variable. At the moment this only tests for +the compiler option <code>-fvisibility=hidden</code>, but that could be +extended with more checks if necessary. +</p> +<a name="index-kpse_005fcv_005fvisibility_005fc_005bxx_005dflags"></a> +<p>This macro caches its results in the <code>kpse_cv_visibility_cflags</code> +or <code>kpse_cv_visibility_cxxflags</code> variable. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCXX_005fHACK"></a>Macro: <strong>KPSE_CXX_HACK</strong></dt> +<dd><a name="index-static-linking-for-C_002b_002b"></a> +<a name="index-linking-C_002b_002b-libraries-statically"></a> +<a name="index-_002d_002denable_002dcxx_002druntime_002dhack-configure-option"></a> +<a name="index-libstc_002b_002b_002c-statically-linking"></a> +<p>Provide the configure option <code>--enable-cxx-runtime-hack</code>. If +enabled and when using <code>g++</code>, try to statically link with +<samp>libstdc++</samp>, somewhat improving portability of the resulting +binary. +</p> +<a name="index-kpse_005fcv_005fcxx_005fhack"></a> +<p>This macro caches its result in the <code>kpse_cv_cxx_hack</code> variable. +</p></dd></dl> + + +<hr> +<a name="Macros-for-libraries"></a> +<div class="header"> +<p> +Next: <a href="#Macros-for-library-and-header-flags" accesskey="n" rel="next">Macros for library and header flags</a>, Previous: <a href="#Macros-for-compilers" accesskey="p" rel="prev">Macros for compilers</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macros-for-libraries-1"></a> +<h4 class="subsection">6.3.4 Macros for libraries</h4> + +<a name="index-macros_002c-for-libraries"></a> +<p>One macro for a library check: +</p> +<dl> +<dt><a name="index-KPSE_005fLARGEFILE"></a>Macro: <strong>KPSE_LARGEFILE</strong> <em>(<var>variable</var>, [<var>extra-define</var>])</em></dt> +<dd><p>Call <code>AC_SYS_LARGEFILE</code> and <code>AC_FUNC_FSEEKO</code> and append +suitable <code>-D</code> flags (optionally including +<code>-D<var>extra-define</var></code>) to <var>variable</var>. +</p></dd></dl> + + +<hr> +<a name="Macros-for-library-and-header-flags"></a> +<div class="header"> +<p> +Next: <a href="#Macros-for-Windows" accesskey="n" rel="next">Macros for Windows</a>, Previous: <a href="#Macros-for-libraries" accesskey="p" rel="prev">Macros for libraries</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macros-for-library-and-header-flags-1"></a> +<h4 class="subsection">6.3.5 Macros for library and header flags</h4> + +<a name="index-macros_002c-for-library-and-header-flags"></a> +<a name="index-flags_002c-macros-for-library-and-header"></a> +<a name="index-KPSE_005fLIB_005fFLAGS"></a> +<p>Each library module <samp>libs/<var>lib</var></samp> or <samp>texk/<var>lib</var></samp> is +supplemented by a macro <code>KPSE_<var>LIB</var>_FLAGS</code> (all uppercase) +that provides make variables for that library. E.g., for +<samp>libs/libpng</samp>: +</p> +<dl> +<dt><a name="index-KPSE_005fLIBPNG_005fFLAGS"></a>Macro: <strong>KPSE_LIBPNG_FLAGS</strong></dt> +<dd><p>Provide the configure option <code>--with-system-libpng</code>. Set and +<code>AC_SUBST</code> <code>make</code> variables for modules using this library +(either an installed version or from the TeX Live tree): <code>LIBPNG_INCLUDES</code> +for use in CPPFLAGS, LIBPNG_LIBS for use in LDADD, LIBPNG_DEPEND for +use as dependency, and LIBPNG_RULE defining <code>make</code> rules to +rebuild the library. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fADD_005fFLAGS"></a>Macro: <strong>KPSE_ADD_FLAGS</strong> <em>(<var>libname</var>)</em></dt> +<dd><p>Temporarily extend CPPFLAGS and LIBS with the values required for the +library module <code><var>name</var></code>. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fRESTORE_005fFLAGS"></a>Macro: <strong>KPSE_RESTORE_FLAGS</strong></dt> +<dd><p>Restore <code>CPPFLAGS</code> and <code>LIBS</code> to their original values. +</p></dd></dl> + +<p>As an example, the <samp>configure.ac</samp> file for a hypothetical program +<samp>utils/foo</samp> using <samp>libpng</samp>, and hence <samp>zlib</samp>, would +contain +</p><div class="example"> +<pre class="example">KPSE_ZLIB_FLAGS +KPSE_LIBPNG_FLAGS +</pre></div> + +<p>and its <samp>Makefile.am</samp> would be along these lines: +</p><div class="example"> +<pre class="example">bin_PROGRAMS = foo +AM_CPPFLAGS = ${ZLIB_INCLUDES} ${LIBPNG_INCLUDES} +foo_LDADD = ${ZLIB_LIBS} ${LIBPNG_LIBS} +foo_DEPENDENCIES = ${ZLIB_DEPEND} ${LIBPNG_DEPEND} +## Rebuild libz +@ZLIB_RULE@ +## Rebuild libpng +@LIBPNG_RULE@ +</pre></div> + +<p>If it was necessary to examine whether certain <samp>zlib</samp> or +<samp>libpng</samp> features were available, <samp>configure.ac</samp> should be +continued this way: +</p><div class="example"> +<pre class="example">KPSE_ADD_FLAGS([zlib]) +… # <span class="roman">tests for <samp>zlib</samp> features, if any</span> +KPSE_ADD_FLAGS([libpng]) +… # <span class="roman">tests for <samp>libpng</samp> features</span> +KPSE_RESTORE_FLAGS # <span class="roman">restore <code>CPPFLAGS</code> and <code>LIBS</code></span> +</pre></div> + + +<hr> +<a name="Macros-for-Windows"></a> +<div class="header"> +<p> +Previous: <a href="#Macros-for-library-and-header-flags" accesskey="p" rel="prev">Macros for library and header flags</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macros-for-Windows-1"></a> +<h4 class="subsection">6.3.6 Macros for Windows</h4> + +<a name="index-macros_002c-for-Windows"></a> +<a name="index-Windows_002c-macros-for"></a> +<p>Windows differs in several aspects from Unix-like systems, many of +them due to the lack of symbolic links. +</p> +<dl> +<dt><a name="index-KPSE_005fCHECK_005fWIN32"></a>Macro: <strong>KPSE_CHECK_WIN32</strong></dt> +<dd><a name="index-kpse_005fcv_005fhave_005fwin32"></a> +<p>Check if compiling for a Windows system. The result is <code>no</code> for +Unix-like systems (including Cygwin), <code>mingw32</code> for Windows with +GCC, or <code>native</code> for Windows with MSVC. The result is cached in +the <code>kpse_cv_have_win32</code> variable. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCOND_005fWIN32"></a>Macro: <strong>KPSE_COND_WIN32</strong></dt> +<dd><a name="index-WIN32_002c-Automake-conditional"></a> +<p>Call <code>KPSE_CHECK_WIN32</code> and define the Automake conditional +<code>WIN32</code> (<code>true</code> if the value of <code>kpse_cv_have_win32</code> is +not <code>no</code>). +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCOND_005fMINGW32"></a>Macro: <strong>KPSE_COND_MINGW32</strong></dt> +<dd><a name="index-MINGW32_002c-Automake-conditional"></a> +<p>Call <code>KPSE_COND_WIN32</code> and define the Automake conditional +<code>MINGW32</code> (<code>true</code> if the value of <code>kpse_cv_have_win32</code> is +<code>mingw32</code>). +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCOND_005fWIN32_005fWRAP"></a>Macro: <strong>KPSE_COND_WIN32_WRAP</strong></dt> +<dd><a name="index-WIN32_005fWRAP_002c-Automake-conditional"></a> +<a name="index-runscript_002eexe"></a> +<p>Call <code>KPSE_COND_WIN32</code> and define the Automake conditional +<code>WIN32_WRAP</code> (<code>true</code> if the standard Windows wrapper +(<samp>texk/texlive/w32_wrapper/runscript.exe</samp>) exists. This wrapper +is used on Windows instead of symlinks for the “linked scripts” +(see <a href="#Linked-scripts">Linked scripts</a>). +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fWIN32_005fCALL"></a>Macro: <strong>KPSE_WIN32_CALL</strong></dt> +<dd><a name="index-callexe_002ec"></a> +<p>Call <code>KPSE_COND_WIN32</code>, check if the file +<samp>texk/texlive/w32_wrapper/callexe.c</samp> exists; if it does, create a +symlink in the build tree. Compiling <samp>callexe.c</samp> with +<code>-DEXEPROG='"<var>foo</var>.exe"'</code> and installing <samp>callexe.exe</samp> +as <code><var>bar</var>.exe</code> is used on Windows instead of a symlink +<code><var>bar</var>-><var>foo</var></code> for Unix-like systems. +</p></dd></dl> + + +<hr> +<a name="Library-modules"></a> +<div class="header"> +<p> +Next: <a href="#Program-modules" accesskey="n" rel="next">Program modules</a>, Previous: <a href="#Autoconf-macros" accesskey="p" rel="prev">Autoconf macros</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Library-modules-1"></a> +<h3 class="section">6.4 Library modules</h3> + +<a name="index-library-modules"></a> +<a name="index-modules_002c-for-libraries"></a> +<p>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 +structure and variation. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#png-library" accesskey="1"><code>png</code> library</a>:</td><td> </td><td align="left" valign="top"><samp>libs/libpng</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#zlib-library" accesskey="2"><code>zlib</code> library</a>:</td><td> </td><td align="left" valign="top"><samp>libs/zlib</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#freetype-library" accesskey="3"><code>freetype</code> library</a>:</td><td> </td><td align="left" valign="top"><samp>libs/freetype2</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#kpathsea-library" accesskey="4"><code>kpathsea</code> library</a>:</td><td> </td><td align="left" valign="top"><samp>texk/kpathsea</samp> +</td></tr> +</table> + +<hr> +<a name="png-library"></a> +<div class="header"> +<p> +Next: <a href="#zlib-library" accesskey="n" rel="next"><code>zlib</code> library</a>, Up: <a href="#Library-modules" accesskey="u" rel="up">Library modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-png-library-in-libs_002flibpng"></a> +<h4 class="subsection">6.4.1 The <code>png</code> library in <samp>libs/libpng</samp></h4> + +<a name="index-png-library"></a> +<a name="index-libpng-library"></a> +<p>This generic library uses the source tree in, e.g., the subdirectory +<samp>libpng-1.5.17</samp> with all modifications for TL recorded in +<samp>libpng-1.5.17-PATCHES/*</samp>. The <samp>configure.ac</samp> fragment +<samp>ac/withenable.ac</samp> contains +</p> +<div class="example"> +<pre class="example">KPSE_WITH_LIB([libpng], [zlib]) +</pre></div> + +<p>specifying the module name, and indicating the dependency on +<code>zlib</code>. A third literal argument <code>tree</code> would specify that +the library from the TeX Live tree cannot be replaced by a system +version. That not being the case here, a second fragment +<samp>ac/libpng.ac</samp> contains +</p> +<a name="index-KPSE_005fTRY_005fLIB"></a> +<div class="example"> +<pre class="example">KPSE_TRY_LIB([libpng], + [#include <png.h>], + [png_structp png; png_voidp io; png_rw_ptr fn; +png_set_read_fn(png, io, fn);]) +</pre></div> + +<p>thus providing the simple C code +</p> +<div class="example"> +<pre class="example">#include <png.h> +int main () +{ png_structp png; png_voidp io; png_rw_ptr fn; + png_set_read_fn(png, io, fn); + return 0; } +</pre></div> + +<a name="index-KPSE_005fTRY_005fLIBXX"></a> +<p>which Autoconf uses to verify the usability of a system +version with C code. The analogous macro <code>KPSE_TRY_LIBXX</code> would +check using C++ code. These fragments are included by +<samp>configure.ac</samp> at the top level. +</p> +<p>For this library, among many other modules, a proxy build system for +TL is used (<samp>configure.ac</samp>, <samp>Makefile.am</samp>, and +<samp>include/Makefile.am</samp>), ignoring the distributed one. +Consequently, a few generated files and auxiliary scripts are removed +from the distributed source tree. The public headers <samp>png.h</samp>, +<samp>pngconf.h</samp>, and <samp>pnglibconf.h</samp> are “installed” (as +symlinks) under <samp>include/</samp> in the build tree exactly as they are +for a system version under, e.g., <samp>/usr/include/</samp>. +</p> +<a name="index-kpse_002dlibpng_002dflags_002em4"></a> +<a name="index-KPSE_005fLIBPNG_005fFLAGS-1"></a> +<p>The module is supplemented by the file <samp>m4/kpse-libpng-flags.m4</samp> +that defines the M4 macro <code>KPSE_LIBPNG_FLAGS</code> used by all modules +depending on this library in their <samp>configure.ac</samp> to generate the +<code>make</code> variables <code>LIBPNG_INCLUDES</code> for use in +<code>CPPFLAGS</code>, <code>LIBPNG_LIBS</code> for use in <code>LDADD</code>, +<code>LIBPNG_DEPEND</code> for use as dependencies, and <code>LIBPNG_RULE</code> +defining <code>make</code> rules to rebuild the library. +</p> +<p><samp>m4/kpse-libpng-flags.m4</samp> also supplies the configure option +<code>--with-system-libpng</code> and uses <code>pkg-config</code> to determine +the flags required for the system library. +</p> + +<hr> +<a name="zlib-library"></a> +<div class="header"> +<p> +Next: <a href="#freetype-library" accesskey="n" rel="next"><code>freetype</code> library</a>, Previous: <a href="#png-library" accesskey="p" rel="prev"><code>png</code> library</a>, Up: <a href="#Library-modules" accesskey="u" rel="up">Library modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-zlib-library-in-libs_002fzlib"></a> +<h4 class="subsection">6.4.2 The <code>zlib</code> library in <samp>libs/zlib</samp></h4> + +<a name="index-zlib-library"></a> + +<a name="index-kpse_002dzlib_002dflags_002em4"></a> +<p>This generic library is very much analogous to <code>libpng</code>, but +without the dependency on any other library. The file +<samp>m4/kpse-zlib-flags.m4</samp> supplies the configure option +<code>--with-system-zlib</code>, as well as <code>--with-zlib-includes</code> and +<code>--with-zlib-libdir</code> to specify non-standard locations of the +<code>zlib</code> headers and/or library. +</p> + +<hr> +<a name="freetype-library"></a> +<div class="header"> +<p> +Next: <a href="#kpathsea-library" accesskey="n" rel="next"><code>kpathsea</code> library</a>, Previous: <a href="#zlib-library" accesskey="p" rel="prev"><code>zlib</code> library</a>, Up: <a href="#Library-modules" accesskey="u" rel="up">Library modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-freetype-library-in-libs_002ffreetype2"></a> +<h4 class="subsection">6.4.3 The <code>freetype</code> library in <samp>libs/freetype2</samp></h4> + +<a name="index-freetype-library"></a> + +<a name="index-freetype_002dconfig"></a> +<p>This module uses a wrapper build system with an almost trivial +<samp>configure.ac</samp> and with a <samp>Makefile.am</samp> that invokes +<code>configure</code> and <code>make</code> for the distributed source, followed +by <code>make install</code> with the build tree as destination. The flags +required for the system library are obtained through +<code>freetype-config</code>. +</p> + +<hr> +<a name="kpathsea-library"></a> +<div class="header"> +<p> +Previous: <a href="#freetype-library" accesskey="p" rel="prev"><code>freetype</code> library</a>, Up: <a href="#Library-modules" accesskey="u" rel="up">Library modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-kpathsea-library-in-texk_002fkpathsea"></a> +<h4 class="subsection">6.4.4 The <code>kpathsea</code> library in <samp>texk/kpathsea</samp></h4> + +<a name="index-kpathsea-library"></a> + +<p>This is one of the TeX-specific libraries that are maintained as +part of TeX Live (see <cite><a href="kpathsea.html#Top">Kpathsea</a></cite>). Despite being a core +part of the TeX system, it is not a terribly special case in the +infrastructure. The TeX libraries are Libtool libraries (static +and/or shared) and are installed by <code>make install</code> together with +the programs. They are, however, not part of the TL DVD as +distributed by TeX user groups, and have never been officially +released for standalone use. +</p> +<a name="index-_002d_002dwith_002dsystem_002dkpathsea"></a> +<p>It is possible, and possibly even useful for distro builds +(see <a href="#Distro-builds">Distro builds</a>, to specify the configure option +<code>--with-system-kpathsea</code> in order to use a system version of the +library and it may then be necessary to specify +<code>--with-kpathsea-includes</code> and/or <code>--with-kpathsea-libdir</code>. +</p> +<a name="index-kpathsea_002eac"></a> +<a name="index-mktex_002eac"></a> +<a name="index-_002d_002denable_002dmktextfm_002ddefault"></a> +<a name="index-mktextfm"></a> +<p>In addition to <samp>ac/withenable.ac</samp> and <samp>ac/kpathsea.ac</samp> there +is a third fragment <samp>ac/mktex.ac</samp> included by both +<samp>ac/withenable.ac</samp> and <samp>configure.ac</samp> that supplies +configure options such as <code>--enable-mktextfm-default</code>, which +determine the compile time default of whether or not to run +<code>mktextfm</code> to generate a missing <samp>.tfm</samp> file. In any case, +however, the command line options <code>-mktex=tfm</code> or +<code>-no-mktex=tfm</code> for the TeX-like engines override this default. +</p> + +<hr> +<a name="Program-modules"></a> +<div class="header"> +<p> +Next: <a href="#Extending-TeX-Live" accesskey="n" rel="next">Extending TeX Live</a>, Previous: <a href="#Library-modules" accesskey="p" rel="prev">Library modules</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Program-modules-1"></a> +<h3 class="section">6.5 Program modules</h3> + +<a name="index-program-modules"></a> +<a name="index-modules_002c-for-programs"></a> +<p>As with libraries (see <a href="#Library-modules">Library modules</a>), here we discuss the +details for a few of the programs in TL. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#t1utils-package" accesskey="1"><code>t1utils</code> package</a>:</td><td> </td><td align="left" valign="top"><samp>utils/t1utils</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#xindy-package" accesskey="2"><code>xindy</code> package</a>:</td><td> </td><td align="left" valign="top"><samp>utils/xindy</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#xdvik-package" accesskey="3"><code>xdvik</code> package</a>:</td><td> </td><td align="left" valign="top"><samp>texk/xdvik</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#asymptote" accesskey="4"><code>asymptote</code></a>:</td><td> </td><td align="left" valign="top"><samp>utils/asymptote</samp> +</td></tr> +</table> + + +<hr> +<a name="t1utils-package"></a> +<div class="header"> +<p> +Next: <a href="#xindy-package" accesskey="n" rel="next"><code>xindy</code> package</a>, Up: <a href="#Program-modules" accesskey="u" rel="up">Program modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-t1utils-package-in-utils_002ft1utils"></a> +<h4 class="subsection">6.5.1 The <code>t1utils</code> package in <samp>utils/t1utils</samp></h4> + +<a name="index-t1utils-package"></a> + +<p>Once again we use the distributed source tree <samp>t1utils-1.38</samp> with +modifications documented in <samp>t1utils-1.38-PATCHES/*</samp> and a proxy +build system consisting of <samp>configure.ac</samp> and <samp>Makefile.am</samp>. +The fragment <samp>ac/withenable.ac</samp> contains +</p> +<div class="example"> +<pre class="example">KPSE_ENABLE_PROG([t1utils]) +</pre></div> + +<p>specifying the module name without any dependencies, and +supplies the configure option <code>--disable-t1utils</code>. +</p> + +<hr> +<a name="xindy-package"></a> +<div class="header"> +<p> +Next: <a href="#xdvik-package" accesskey="n" rel="next"><code>xdvik</code> package</a>, Previous: <a href="#t1utils-package" accesskey="p" rel="prev"><code>t1utils</code> package</a>, Up: <a href="#Program-modules" accesskey="u" rel="up">Program modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-xindy-package-in-utils_002fxindy"></a> +<h4 class="subsection">6.5.2 The <code>xindy</code> package in <samp>utils/xindy</samp></h4> + +<a name="index-xindy-1"></a> + +<p>This module uses the distributed source tree <samp>xindy-2.4</samp> with +modifications documented in <samp>xindy-2.4-PATCHES/*</samp>, a proxy +<samp>configure.ac</samp>, and a wrapper <samp>Makefile.am</samp> that descends +into <samp>xindy-2.4</samp>. The <code>xindy</code> build requires that the +distributed <samp>Makefile</samp>s allow a <code>VPATH</code> build, can handle +all targets, and do not refer to <code>${top_srcdir}</code> or +<code>${top_builddir}</code>. The fragment <code>ac/withenable.ac</code> +contains +</p> +<div class="example"> +<pre class="example">KPSE_ENABLE_PROG([xindy], , [disable native]) +m4_include(kpse_TL[utils/xindy/ac/xindy.ac]) +m4_include(kpse_TL[utils/xindy/ac/clisp.ac]) +</pre></div> + +<p>where <code>disable</code> in the third argument indicates that +<code>xindy</code> is only built if explicitly enabled by the user with +<code>configure --enable-xindy</code> (the need for <code>clisp</code> is too +painful to require by default), and <code>native</code> disallows cross +compilation. The additional fragments <samp>ac/xindy.ac</samp> and +<samp>ac/clisp.ac</samp> specify more <code>configure</code> options to be seen at +the top level with <samp>ac/xindy.ac</samp> also included by +<samp>configure.ac</samp>. +</p> + +<hr> +<a name="xdvik-package"></a> +<div class="header"> +<p> +Next: <a href="#asymptote" accesskey="n" rel="next"><code>asymptote</code></a>, Previous: <a href="#xindy-package" accesskey="p" rel="prev"><code>xindy</code> package</a>, Up: <a href="#Program-modules" accesskey="u" rel="up">Program modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-xdvik-package-in-texk_002fxdvik"></a> +<h4 class="subsection">6.5.3 The <code>xdvik</code> package in <samp>texk/xdvik</samp></h4> + +<a name="index-xdvik"></a> + +<p>This package is maintained as part of the TeX Live tree with sources in +its top level directory and the subdirectory <samp>gui</samp>. The fragment +<code>ac/withenable.ac</code> contains +</p> +<div class="example"> +<pre class="example">dnl extra_dirs = texk/xdvik/squeeze +KPSE_ENABLE_PROG([xdvik], [kpathsea freetype2], [x]) +m4_include(kpse_TL[texk/xdvik/ac/xdvik.ac]) +</pre></div> + +<a name="index-squeeze_002fconfigure_002eac"></a> +<a name="index-cross-compilation_002c-with-host-binary"></a> +<p>thus specifying the dependency on the <code>kpathsea</code>, +<code>freetype</code>, and X11 libraries. The M4 comment (following +<code>dnl</code>) signals the subsidiary <samp>squeeze/configure.ac</samp>. This +is needed because the main executable <samp>xdvi-bin</samp> (to be installed +as, e.g., <samp>xdvi-xaw</samp>) is for the <code>host</code> system whereas the +auxiliary program <samp>squeeze/squeeze</samp> has to run on the +<code>build</code> system and in a cross compilation they differ. +</p> +<a name="index-_002d_002dwith_002dxdvi_002dx_002dtoolkit"></a> +<p>The additional fragment <code>ac/xdvik.ac</code> is also included by +<samp>configure.ac</samp> and supplies the configure option +<code>--with-xdvi-x-toolkit</code> also seen at the top-level. +</p> + +<hr> +<a name="asymptote"></a> +<div class="header"> +<p> +Previous: <a href="#xdvik-package" accesskey="p" rel="prev"><code>xdvik</code> package</a>, Up: <a href="#Program-modules" accesskey="u" rel="up">Program modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-subdirectory-utils_002fasymptote"></a> +<h4 class="subsection">6.5.4 The subdirectory <samp>utils/asymptote</samp></h4> + +<a name="index-asymptote-1"></a> +<a name="index-xasy"></a> + +<a name="index-OpenGL_002c-required-for-Asymptote"></a> +<p>This subdirectory contains the sources for <samp>asy</samp> and <samp>xasy</samp> +but due to its complexity and prerequisites (e.g., OpenGL) it is +not part of the TL build system. These programs must be built and +installed independently, but are included on the TL DVD together with +their support files. +</p> + +<hr> +<a name="Extending-TeX-Live"></a> +<div class="header"> +<p> +Previous: <a href="#Program-modules" accesskey="p" rel="prev">Program modules</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Extending-TeX-Live-1"></a> +<h3 class="section">6.6 Extending TeX Live</h3> + +<a name="index-extending-TeX-Live"></a> +<a name="index-adding-to-TeX-Live"></a> + +<p>This section outlines the basic process for adding new packages to the +TL build system. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Adding-a-new-program-module" accesskey="1">Adding a new program module</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Adding-a-new-generic-library-module" accesskey="2">Adding a new generic library module</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Adding-a-new-TeX_002dspecific-library-module" accesskey="3">Adding a new TeX-specific library module</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Adding-a-new-program-module"></a> +<div class="header"> +<p> +Next: <a href="#Adding-a-new-generic-library-module" accesskey="n" rel="next">Adding a new generic library module</a>, Up: <a href="#Extending-TeX-Live" accesskey="u" rel="up">Extending TeX Live</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Adding-a-new-program-module-1"></a> +<h4 class="subsection">6.6.1 Adding a new program module</h4> + +<a name="index-adding-a-new-program"></a> +<a name="index-program-module_002c-adding"></a> + +<a name="index-kpse_005ftexk_005fpkgs"></a> +<p>A TeX-specific program module in a subdirectory +<samp>texk/<var>prog</var></samp> may use the TeX-specific libraries and is +included by adding its name <samp><var>prog</var></samp> to the M4 list +<code>kpse_texk_pkgs</code> defined in <samp>m4/kpse-pkgs.m4</samp>. +</p> +<a name="index-kpse_005futils_005fpkgs"></a> +<p>A generic program module in a subdirectory <samp>utils/<var>prog</var></samp> +must not use the TeX-specific libraries and is included by adding +its name <samp><var>prog</var></samp> to the M4 list <code>kpse_utils_pkgs</code> in +<samp>m4/kpse-pkgs.m4</samp>. +</p> +<a name="index-withenable_002eac_002c-for-new-modules"></a> +<a name="index-KPSE_005fENABLE_005fPROG"></a> +<p>In either case, apart from the program sources and build system +(<samp>configure.ac</samp> and <samp>Makefile.am</samp>), the subdirectory +<samp>texk/<var>prog</var></samp> or <samp>utils/<var>prog</var></samp> must provide a +fragment <samp>ac/withenable.ac</samp> that contains the M4 macro +<code>KPSE_ENABLE_PROG</code> defined in <samp>m4/kpse-setup.m4</samp> with +<code><var>prog</var></code> as the mandatory first argument and three optional +arguments: +</p> +<ol> +<li> a list of required libraries from the TL tree; + +</li><li> a list of options (<code>disable</code> if this module is not to be +built without the configure option <code>--enable-<var>prog</var></code>, +<code>native</code> if cross compilation is not possible, <code>x</code> if the +program requires X11 libraries); + +</li><li> and a comment added to the help text for the <code>configure</code> +option <code>--enable-<var>prog</var></code> or <code>--disable-<var>prog</var></code>. +</li></ol> + +<p>If the module requires specific configure options to be seen at the +top-level, they should be defined in an additional fragment +<samp>ac/<var>prog</var>.ac</samp> included from <samp>ac/withenable.ac</samp> and +<samp>configure.ac</samp>. +</p> + +<hr> +<a name="Adding-a-new-generic-library-module"></a> +<div class="header"> +<p> +Next: <a href="#Adding-a-new-TeX_002dspecific-library-module" accesskey="n" rel="next">Adding a new TeX-specific library module</a>, Previous: <a href="#Adding-a-new-program-module" accesskey="p" rel="prev">Adding a new program module</a>, Up: <a href="#Extending-TeX-Live" accesskey="u" rel="up">Extending TeX Live</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Adding-a-new-generic-library-module-1"></a> +<h4 class="subsection">6.6.2 Adding a new generic library module</h4> + +<a name="index-adding-a-new-generic-library"></a> +<a name="index-generic-library-module_002c-adding"></a> +<a name="index-library-module_002c-generic_002c-adding"></a> + +<a name="index-kpse_005flibs_005fpkgs"></a> +<p>A generic library module in a subdirectory <samp>libs/<var>lib</var></samp> must +not depend on TeX-specific libraries, by definition. It is +included by adding its name <samp><var>lib</var></samp> to the M4 list +<code>kpse_libs_pkgs</code> in <samp>m4/kpse-pkgs.m4</samp>—before any other +libraries from the TeX Live tree on which it depends. +</p> +<a name="index-KPSE_005fWITH_005fLIB"></a> +<p>As with program modules, the subdirectory <samp>libs/<var>lib</var></samp> must +contain the sources and build system for the library (and any +installable support programs) and a fragment <samp>ac/withenable.ac</samp> +that contains the M4 macro <code>KPSE_WITH_LIB</code> defined in +<samp>m4/kpse-setup.m4</samp> with <code><var>lib</var></code> as the mandatory first +argument and two optional arguments: a list of required libraries from +the TL tree, and a list of options (currently there is only one: +specify <code>tree</code> if this library cannot be replaced by a system +version). +</p> +<a name="index-KPSE_005fTRY_005fLIB-1"></a> +<a name="index-KPSE_005fTRY_005fLIBXX-1"></a> +<p>If a system version can be used, a second fragment +<samp>ac/<var>lib</var>.ac</samp> is needed, containing the M4 macro +<code>KPSE_TRY_LIB</code> (or <code>KPSE_TRY_LIBXX</code>) with <code><var>lib</var></code> +as the mandatory first argument and two additional arguments for the +Autoconf macro <code>AC_LANG_PROGRAM</code> used to compile and link a small +C (or C++) program as sanity check for using the system library. +</p> +<a name="index-KPSE_005fLIB_005fFLAGS-1"></a> +<p>In addition a file <samp>m4/kpse-<var>lib</var>-flags</samp> (at the top level) +must define the M4 macro <code>KPSE_<var>LIB</var>_FLAGS</code> (all uppercase) +setting up the <code>make</code> variables <code><var>LIB</var>_INCLUDES</code>, +<code><var>LIB</var>_LIBS</code>, <code><var>LIB</var>_DEPEND</code>, and +<code><var>LIB</var>_RULE</code> with the values required for <code>CPPFLAGS</code>, +<code>LDADD</code>, dependencies, and a (multi-line) <code>make</code> rule to +rebuild the library when necessary. All of that is needed for the +library from the TL tree and, if supported, for a system version. +</p> +<a name="index-_002d_002dwith_002dsystem_002dlib"></a> +<a name="index-KPSE_005fLIB_005fSYSTEM_005fFLAGS"></a> +<a name="index-KPSE_005fALL_005fSYSTEM_005fFLAGS"></a> +<p>If a system library is allowed, <code>KPSE_<var>LIB</var>_FLAGS</code> also +provides the configure option <code>--with-system-<var>lib</var></code> and uses +the additional M4 macro <code>KPSE_<var>LIB</var>_SYSTEM_FLAGS</code> to generate +the <code>make</code> variables for a system library. Furthermore the +definition of the M4 macro <code>KPSE_ALL_SYSTEM_FLAGS</code> in +<samp>m4/kpse-pkgs.m4</samp> must be extended by the line:<br> <code>AC_REQUIRE([KPSE_<var>LIB</var>_SYSTEM_FLAGS])</code> +</p> + +<hr> +<a name="Adding-a-new-TeX_002dspecific-library-module"></a> +<div class="header"> +<p> +Previous: <a href="#Adding-a-new-generic-library-module" accesskey="p" rel="prev">Adding a new generic library module</a>, Up: <a href="#Extending-TeX-Live" accesskey="u" rel="up">Extending TeX Live</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Adding-a-new-TeX_002dspecific-library-module-1"></a> +<h4 class="subsection">6.6.3 Adding a new TeX-specific library module</h4> + +<a name="index-adding-a-new-TeX_002dspecific-library"></a> +<a name="index-TeX_002dspecific-library-module_002c-adding"></a> +<a name="index-library-module_002c-TeX_002dspecific_002c-adding"></a> + +<p>A TeX-specific library module in a subdirectory +<samp>texk/<var>lib</var></samp> may depend on other TeX-specific libraries +but must not depend on any generic library from the TL tree. It is +included in the same general ways as a generic library (see the +previous section), with these modifications: +</p> +<ul> +<li> <a name="index-kpse_005ftexlibs_005fpkgs"></a> +The library name <code><var>lib</var></code> is added to the M4 list +<code>kpse_texlibs_pkgs</code> also in <samp>m4/kpse-pkgs.m4</samp>. + +</li><li> <a name="index-KPSE_005fWITH_005fTEXLIB"></a> +The fragment <code>ac/withenable.ac</code> must use <code>KPSE_WITH_TEXLIB</code>. +</li></ul> + + +<hr> +<a name="Configure-options"></a> +<div class="header"> +<p> +Next: <a href="#Cross-compilation" accesskey="n" rel="next">Cross compilation</a>, Previous: <a href="#Layout-and-infrastructure" accesskey="p" rel="prev">Layout and infrastructure</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-1"></a> +<h2 class="chapter">7 Configure options</h2> + +<a name="index-configure-options"></a> + +<p>Corresponding to the large number of program and library modules there +are a large number <code>configure</code> options, most of which are +described here. The command<br> <code>configure --help</code><br>at the +top level gives an exhaustive list of all global options and a few +important module-specific ones, whereas, e.g.,<br> <code>texk/lcdf-typetools/configure --help</code><br> also displays the +<code>lcdf-typetools</code> specific options, which are not shown by the +top-level <code>--help</code>. +</p> +<a name="index-environment-variables_002c-for-configure"></a> +<p>The help text also mentions several influential environment variables, +but for TeX Live it is better to specify them as assigments on the +command line. +</p> +<p>The <samp>./Build</samp> script used to make the binaries shipped with TeX Live +invokes the top-level <code>configure</code> with a few additional options +(see <a href="#Building">Building</a>). The defaults discussed below are those for the +actual <code>configure</code> script; invoking <code>configure</code> via +<samp>./Build</samp> may yield different results. +</p> +<p>Defaults for most options are set at the top level and propagated +explicitly to all subdirectories. Options specified on the command +line are checked for consistency but never modified. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Global-configure-options" accesskey="1">Global configure options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Program_002dspecific-configure-options" accesskey="2">Program-specific configure options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Library_002dspecific-configure-options" accesskey="3">Library-specific configure options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Variables-for-configure" accesskey="4">Variables for configure</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Global-configure-options"></a> +<div class="header"> +<p> +Next: <a href="#Program_002dspecific-configure-options" accesskey="n" rel="next">Program-specific configure options</a>, Up: <a href="#Configure-options" accesskey="u" rel="up">Configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Global-configure-options-1"></a> +<h3 class="section">7.1 Global configure options</h3> + +<a name="index-global-configure-options"></a> +<a name="index-configure-options_002c-global"></a> +<p>Here are the global configure options. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild" accesskey="1"><code>--disable-native-texlive-build</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026" accesskey="2"><code>--prefix</code> <code>--bindir</code> …</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002ddisable_002dlargefile" accesskey="3"><code>--disable-largefile</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002ddisable_002dmissing" accesskey="4"><code>--disable-missing</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel" accesskey="5"><code>--enable-compiler-warnings=</code><var>level</var></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dcxx_002druntime_002dhack" accesskey="6"><code>--enable-cxx-runtime-hack</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dmaintainer_002dmode" accesskey="7"><code>--enable-maintainer-mode</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dmultiplatform" accesskey="8"><code>--enable-multiplatform</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dshared" accesskey="9"><code>--enable-shared</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dsilent_002drules"><code>--enable-silent-rules</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002dwithout_002dln_002ds"><code>--without-ln-s</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002dwithout_002dx"><code>--without-x</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026" accesskey="n" rel="next"><code>--prefix</code> <code>--bindir</code> …</a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild-1"></a> +<h4 class="subsection">7.1.1 <code>--disable-native-texlive-build</code></h4> + +<a name="index-_002d_002ddisable_002dnative_002dtexlive_002dbuild"></a> +<p>If enabled (the default), build for a TL binary distribution as +shipped by the TeX user groups. This requires GNU <code>make</code> and +implies <code>--enable-multiplatform</code> and +<code>--enable-cxx-runtime-hack</code> (unless they are explicitly disabled), +and enforces <code>--disable-shared</code>. +</p> +<p>If building TL for a GNU/Linux or other distribution, this should be +disabled and system versions of most libraries would be used +(see <a href="#Distro-builds">Distro builds</a>). This may fail without GNU <code>make</code>, but +will be tried regardless. +</p> +<a name="index-_002d_002denable_002dtexlive_002dbuild"></a> +<p>A related option, <code>--enable-texlive-build</code>, is automatically +passed to all subdirectories (and cannot be disabled). Subdirectories +that can also be built independently from the TL tree (such as +<samp>utils/xindy</samp> and <samp>texk/dvipng</samp>) can use this option, e.g., +to choose TL-specific installation paths. +</p> + +<hr> +<a name="g_t_002d_002dprefix-_002d_002dbindir-_2026"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002ddisable_002dlargefile" accesskey="n" rel="next"><code>--disable-largefile</code></a>, Previous: <a href="#g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild" accesskey="p" rel="prev"><code>--disable-native-texlive-build</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002dprefix_002c-_002d_002dbindir_002c-_2026"></a> +<h4 class="subsection">7.1.2 <code>--prefix</code>, <code>--bindir</code>, …</h4> + +<a name="index-_002d_002dprefix-configure-option"></a> +<a name="index-_002d_002dbindir-configure-option"></a> +<p>These standard Autoconf options specify various installation +directories as usual. For the complete list, see <a href="#Installation-directories">Installation directories</a>. +</p> +<a name="index-DESTDIR"></a> +<p>Also as usual, all values are prefixed by the value of <code>DESTDIR</code>, +if set, on the <code>make</code> command line (see <a href="http://www.gnu.org/software/automake/manual/automake.html#Staged-Installs">Installation in a temporary location</a> in <cite>GNU Automake</cite>). +</p> + +<hr> +<a name="g_t_002d_002ddisable_002dlargefile"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002ddisable_002dmissing" accesskey="n" rel="next"><code>--disable-missing</code></a>, Previous: <a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026" accesskey="p" rel="prev"><code>--prefix</code> <code>--bindir</code> …</a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002ddisable_002dlargefile-1"></a> +<h4 class="subsection">7.1.3 <code>--disable-largefile</code></h4> + +<a name="index-_002d_002ddisable_002dlargefile"></a> +<a name="index-large-file-support"></a> +<a name="index-LFS-_0028large-file-support_0029"></a> +<p>Omit large file support (LFS), needed on most 32-bit Unix systems for +files with 2GB or more. Regardless of this, the size of <code>DVI</code> +and <code>GF</code> files must always be <em><2</em>GB, due to the file format +specifications. +</p> +<a name="index-size-of-PDF-and-PS-files"></a> +<a name="index-PDF-files_002c-size-of"></a> +<a name="index-PostScript-files_002c-size-of"></a> +<p>With LFS, there is no fixed limit on the size of PDF files created by +<samp>pdftex</samp> or PostScript files created by <samp>dvips</samp>. The size +of PDF images included by <samp>pdftex</samp> must, however, be <em><4</em>GB +when using <samp>xpdf</samp> and <em><2</em>GB when using older versions of +<samp>poppler</samp> (even on 64-bit systems with LFS), whereas +<samp>poppler</samp> versions 0.23 and later impose no such limit. +</p> + +<hr> +<a name="g_t_002d_002ddisable_002dmissing"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel" accesskey="n" rel="next"><code>--enable-compiler-warnings=</code><var>level</var></a>, Previous: <a href="#g_t_002d_002ddisable_002dlargefile" accesskey="p" rel="prev"><code>--disable-largefile</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002ddisable_002dmissing-1"></a> +<h4 class="subsection">7.1.4 <code>--disable-missing</code></h4> + +<a name="index-_002d_002ddisable_002dmissing"></a> +<p>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. +</p> + +<hr> +<a name="g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dcxx_002druntime_002dhack" accesskey="n" rel="next"><code>--enable-cxx-runtime-hack</code></a>, Previous: <a href="#g_t_002d_002ddisable_002dmissing" accesskey="p" rel="prev"><code>--disable-missing</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel-1"></a> +<h4 class="subsection">7.1.5 <code>--enable-compiler-warnings=</code><var>level</var></h4> + +<a name="index-_002d_002denable_002dcompiler_002dwarnings_003dlevel"></a> +<p>Enable various levels of compiler warnings for (Objective) C and C++: +the <var>level</var> value can be one of: <code>no min yes max all</code>. +The default is <code>yes</code> in <code>maintainer-mode</code> (see below) and +<code>min</code> otherwise. This option defines +<code>WARNING_[OBJ]C[XX]FLAGS</code> but these flags are not used in all +library and program modules. Using them should help to resolve +portability problems. +</p> +<p>At present, these warning flags are only defined for the GNU compilers +but flags for other compilers could be added when needed. +</p> + +<hr> +<a name="g_t_002d_002denable_002dcxx_002druntime_002dhack"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dmaintainer_002dmode" accesskey="n" rel="next"><code>--enable-maintainer-mode</code></a>, Previous: <a href="#g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel" accesskey="p" rel="prev"><code>--enable-compiler-warnings=</code><var>level</var></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dcxx_002druntime_002dhack-1"></a> +<h4 class="subsection">7.1.6 <code>--enable-cxx-runtime-hack</code></h4> + +<p>If enabled (as it is for the native TL build) and when using +<code>g++</code>, try to statically link with <code>libstdc++</code>, somewhat +improving portability of the resulting binary. See <a href="#Macros-for-compilers">Macros for compilers</a>. +</p> + +<hr> +<a name="g_t_002d_002denable_002dmaintainer_002dmode"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dmultiplatform" accesskey="n" rel="next"><code>--enable-multiplatform</code></a>, Previous: <a href="#g_t_002d_002denable_002dcxx_002druntime_002dhack" accesskey="p" rel="prev"><code>--enable-cxx-runtime-hack</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dmaintainer_002dmode-1"></a> +<h4 class="subsection">7.1.7 <code>--enable-maintainer-mode</code></h4> + +<a name="index-_002d_002denable_002dmaintainer_002dmode"></a> +<p>Enable <samp>make</samp> rules and dependencies not useful (and sometimes +confusing) to the casual user. This requires current versions of the +GNU build tools (see <a href="#Build-system-tools">Build system tools</a>), as it automatically +rebuilds infrastructure files as needed. See <a href="http://www.gnu.org/software/automake/manual/automake.html#maintainer_002dmode"><code>missing</code> and <code>AM_MAINTAINER_MODE</code></a> in <cite>GNU Automake</cite>. +</p> + +<hr> +<a name="g_t_002d_002denable_002dmultiplatform"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dshared" accesskey="n" rel="next"><code>--enable-shared</code></a>, Previous: <a href="#g_t_002d_002denable_002dmaintainer_002dmode" accesskey="p" rel="prev"><code>--enable-maintainer-mode</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dmultiplatform-1"></a> +<h4 class="subsection">7.1.8 <code>--enable-multiplatform</code></h4> + +<a name="index-_002d_002denable_002dmultiplatform"></a> +<a name="index-exec_005fprefix"></a> +<a name="index-_002d_002dlibdir"></a> +<p>If enabled, install executables and libraries in per-platform +subdirectories of <samp><var>eprefix</var>/bin</samp> and +<samp><var>eprefix</var>/lib</samp> where <var>eprefix</var> is the value given or +implied for <code>exec_prefix</code>. This can be overridden by explicitly +<code>--bindir=<var>dir</var></code> or <code>--libdir=<var>dir</var></code>. In any case, +the values for <code>bindir</code> and <code>libdir</code> are automatically +propagated to all subdirectories. +</p> + +<hr> +<a name="g_t_002d_002denable_002dshared"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dsilent_002drules" accesskey="n" rel="next"><code>--enable-silent-rules</code></a>, Previous: <a href="#g_t_002d_002denable_002dmultiplatform" accesskey="p" rel="prev"><code>--enable-multiplatform</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dshared-1"></a> +<h4 class="subsection">7.1.9 <code>--enable-shared</code></h4> + +<a name="index-_002d_002denable_002dshared"></a> +<p>Build shared versions of the TeX-specific libraries such as +<samp>libkpathsea</samp>. This is not allowed for a native TL build (i.e., +<code>--disable-native-texlive-build</code> must also be specified). +</p> + +<hr> +<a name="g_t_002d_002denable_002dsilent_002drules"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002dwithout_002dln_002ds" accesskey="n" rel="next"><code>--without-ln-s</code></a>, Previous: <a href="#g_t_002d_002denable_002dshared" accesskey="p" rel="prev"><code>--enable-shared</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dsilent_002drules-1"></a> +<h4 class="subsection">7.1.10 <code>--enable-silent-rules</code></h4> + +<a name="index-_002d_002denable_002dsilent_002drules"></a> +<p>Enable the use of less verbose build rules. When using GNU +<code>make</code> (or another <code>make</code> implementation supporting nested +variable expansions), you can specify <code>V=1</code> on the <code>make</code> command +line to get more verbosity, or <code>V=0</code> to get less, regardless of +this option. +</p> + +<hr> +<a name="g_t_002d_002dwithout_002dln_002ds"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002dwithout_002dx" accesskey="n" rel="next"><code>--without-x</code></a>, Previous: <a href="#g_t_002d_002denable_002dsilent_002drules" accesskey="p" rel="prev"><code>--enable-silent-rules</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002dwithout_002dln_002ds-1"></a> +<h4 class="subsection">7.1.11 <code>--without-ln-s</code></h4> + +<a name="index-_002d_002dwithout_002dln_002ds"></a> +<p>Required when using a system without a working <code>ln -s</code> to build +binaries for a Unix-like system. However, <code>make install</code> will +not create anything useful and might even fail. +</p> + +<hr> +<a name="g_t_002d_002dwithout_002dx"></a> +<div class="header"> +<p> +Previous: <a href="#g_t_002d_002dwithout_002dln_002ds" accesskey="p" rel="prev"><code>--without-ln-s</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002dwithout_002dx-1"></a> +<h4 class="subsection">7.1.12 <code>--without-x</code></h4> + +<a name="index-_002d_002dwithout_002dx"></a> +<p>Disable all programs using the X Window System. +</p> + +<hr> +<a name="Program_002dspecific-configure-options"></a> +<div class="header"> +<p> +Next: <a href="#Library_002dspecific-configure-options" accesskey="n" rel="next">Library-specific configure options</a>, Previous: <a href="#Global-configure-options" accesskey="p" rel="prev">Global configure options</a>, Up: <a href="#Configure-options" accesskey="u" rel="up">Configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Program_002dspecific-configure-options-1"></a> +<h3 class="section">7.2 Program-specific configure options</h3> + +<a name="index-program_002dspecific-configure-options"></a> +<a name="index-configure-options_002c-program_002dspecific"></a> +<p>Here are (some of) the program-specific <code>configure</code> options. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog" accesskey="1"><code>--enable-<var>prog</var></code> <code>--disable-<var>prog</var></code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002ddisable_002dall_002dpkgs" accesskey="2"><code>--disable-all-pkgs</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002fweb2c" accesskey="3">Configure options for <samp>texk/web2c</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002fbibtex_002dx" accesskey="4">Configure options for <samp>texk/bibtex-x</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002fdvipdfm_002dx" accesskey="5">Configure options for <samp>texk/dvipdfm-x</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002fdvisvgm" accesskey="6">Configure options for <samp>texk/dvisvgm</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002ftexlive" accesskey="7">Configure options for <samp>texk/texlive</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002fxdvik" accesskey="8">Configure options for <samp>texk/xdvik</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-utils_002fxindy" accesskey="9">Configure options for <samp>utils/xindy</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002ddisable_002dall_002dpkgs" accesskey="n" rel="next"><code>--disable-all-pkgs</code></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dprog_002c-_002d_002ddisable_002dprog"></a> +<h4 class="subsection">7.2.1 <code>--enable-<var>prog</var></code>, <code>--disable-<var>prog</var></code></h4> + +<a name="index-_002d_002denable_002dprog"></a> +<a name="index-_002d_002ddisable_002dprog"></a> +<p>Do or do not build and install the program(s) of the module <code><var>prog</var></code>. +</p> + +<hr> +<a name="g_t_002d_002ddisable_002dall_002dpkgs"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002fweb2c" accesskey="n" rel="next">Configure options for <samp>texk/web2c</samp></a>, Previous: <a href="#g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog" accesskey="p" rel="prev"><code>--enable-<var>prog</var></code> <code>--disable-<var>prog</var></code></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002ddisable_002dall_002dpkgs-1"></a> +<h4 class="subsection">7.2.2 <code>--disable-all-pkgs</code></h4> + +<a name="index-_002d_002ddisable_002dall_002dpkgs"></a> +<p>Do not build any program modules by default—only those explicitly +enabled. This is useful when one wants to work on only a single +program, which is specified with an additional <code>--enable</code> option, +e.g., <code>--enable-dvipdfm-x</code>. It’s still simplest to check out and +configure the whole source tree, but at least only the program you are +interested in, and its dependencies, are built. The <code>configure</code> +will generally take less than a minute with everything disabled. (It +is a good idea to run <code>make check</code> after doing this, and after +making any changes, to ensure that whatever tests have been written +still pass.) +</p> +<p>Without this option, all modules are built except those that are +explicitly disabled or specify <code>disable</code> in their +<samp>ac/withenable.ac</samp> fragment. +</p> + +<hr> +<a name="Configure-options-for-texk_002fweb2c"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002fbibtex_002dx" accesskey="n" rel="next">Configure options for <samp>texk/bibtex-x</samp></a>, Previous: <a href="#g_t_002d_002ddisable_002dall_002dpkgs" accesskey="p" rel="prev"><code>--disable-all-pkgs</code></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002fweb2c-1"></a> +<h4 class="subsection">7.2.3 Configure options for <samp>texk/web2c</samp></h4> + +<a name="index-configure-options_002c-for-web2c"></a> + +<a name="index-_002d_002dwith_002dbanner_002dadd_003dstr"></a> +<p><code>--with-banner-add=<var>str</var></code><br>Add <code><var>str</var></code> to the +default version string (<code>TeX Live <var>year</var></code> or <code>Web2C +<var>year</var></code>) appended to banner lines. This is ignored for a native +TL build, but distro builds should specify, e.g., +<code>/<var>SomeDistro</var></code>. +</p> +<a name="index-_002d_002dwith_002deditor_003dcmd"></a> +<p><code>--with-editor=<var>cmd</var></code><br>Specify the command +<code><var>cmd</var></code> to invoke from the <code>e</code> option of TeX-like engines, +replacing the default <code>vi +%d '%s'</code> for Unix or <code>texworks +--position=%d "%s"</code> for Windows. +</p> +<a name="index-_002d_002dwith_002dfontconfig_002dincludes_003ddir"></a> +<a name="index-_002d_002dwith_002dfontconfig_002dlibdir_003ddir"></a> +<p><code>--with-fontconfig-includes=<var>dir</var></code>, +<code>--with-fontconfig-libdir=<var>dir</var></code><br>Building XeTeX on +non-Mac systems requires the <code>fontconfig</code> library headers and +code. If one or both of these options are given, the required flags +are derived from them; otherwise, they are determined via +<samp>pkg-config</samp> (if present). +</p> +<a name="index-X-toolkit"></a> +<a name="index-libXt"></a> +<a name="index-Xlib"></a> +<p><code>--with-mf-x-toolkit</code><br>Use the X toolkit (<samp>libXt</samp>) for +Metafont (the default is to use the lowest-level <samp>Xlib</samp> support; +it seems this has the best chance of working across X installations +nowadays). +</p> +<a name="index-_002d_002ddisable_002ddump_002dshare"></a> +<a name="index-LittleEndian-architectures"></a> +<p><code>--disable-dump-share</code><br>Make the <code>fmt</code>/<code>base</code> +dump files architecture dependent (somewhat faster on LittleEndian +architectures). +</p> +<a name="index-_002d_002ddisable_002dipc"></a> +<a name="index-interprocess-communication"></a> +<p><code>--disable-ipc</code><br>Disable TeX’s <code>--ipc</code> option. +</p> +<a name="index-_002d_002ddisable_002dmf_002dnowin"></a> +<a name="index-mf_002dnowin"></a> +<p><code>--disable-mf-nowin</code><br>Do not build a separate +non-graphically-capable Metafont (<samp>mf-nowin</samp>). +</p> +<a name="index-_002d_002ddisable_002domfonts"></a> +<a name="index-opl2ofm_002c-et-al_002e"></a> +<p><code>--disable-omfonts</code><br>Build the WEB versions of the +Omega font utilities <samp>ofm2opl</samp>, <samp>opl2ofm</samp>, <samp>ovf2ovp</samp>, +and <code>ovp2ovf</code> instead of the C version <samp>omfonts</samp>. The WEB +and C versions should be roughly equivalent. +</p> +<a name="index-_002d_002ddisable_002dtex"></a> +<a name="index-_002d_002denable_002detex"></a> +<a name="index-web2c_002eac"></a> +<p><code>--disable-tex</code>, <code>--enable-etex</code>, …<br>Do not or +do build the various TeX, Metafont, and MetaPost engines (defaults are +defined in the fragment <samp>texk/web2c/ac/web2c.ac</samp>). +</p> +<a name="index-_002d_002ddisable_002dweb_002dprogs"></a> +<p><code>--disable-web-progs</code><br>Do not build the core WEB programs +<samp>bibtex</samp>, …, <samp>weave</samp>. Useful if, e.g., you only want +to (re)build some engines. +</p> +<a name="index-_002d_002denable_002dauto_002dcore"></a> +<a name="index-preloaded-binaries"></a> +<p><code>--enable-auto-core</code><br>This option causes TeX and Metafont +to produce a core dump when a particular hacky filename is +encountered, for use in creating preloaded binaries. This is rarely +done nowadays. +</p> +<a name="index-_002d_002denable_002dlibtool_002dhack"></a> +<a name="index-libtool_002c-hack-for-avoiding-excessive-linking"></a> +<p><code>--enable-libtool-hack</code><br> +If enabled (which is the default for all platforms), prevents +<code>libtool</code> from linking explicitly with dependencies of +<samp>libfontconfig</samp> such as <samp>libexpat</samp>. +</p> +<a name="index-_002d_002denable_002d_002awin-for-Metafont-window-support"></a> +<p><code>--enable-*win</code><br>Include various types of other window +support for Metafont (EPSF output, <code>mftalk</code>, old terminals, …). +</p> +<a name="index-_002d_002denable_002dtex_002dsynctex"></a> +<a name="index-_002d_002ddisable_002detex_002dsynctex"></a> +<a name="index-synctex"></a> +<p><code>--enable-tex-synctex</code>, <code>--disable-etex-synctex</code>, +…<br>Build the TeX engines with or without <code>SyncTeX</code> +support; ignored for a native TeX Live build, defaults are again defined +in <samp>texk/web2c/ac/web2c.ac</samp>. +</p> + +<hr> +<a name="Configure-options-for-texk_002fbibtex_002dx"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002fdvipdfm_002dx" accesskey="n" rel="next">Configure options for <samp>texk/dvipdfm-x</samp></a>, Previous: <a href="#Configure-options-for-texk_002fweb2c" accesskey="p" rel="prev">Configure options for <samp>texk/web2c</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002fbibtex_002dx-1"></a> +<h4 class="subsection">7.2.4 Configure options for <samp>texk/bibtex-x</samp></h4> + +<a name="index-configure-options_002c-for-bibtex_002dx"></a> +<a name="index-bibtex8"></a> +<a name="index-bibtexu"></a> +<a name="index-bibtex_002dx"></a> +<p>The former programs <code>bibtex8</code> and <code>bibtexu</code> have been merged +into the module <code>bibtex-x</code> (extended BibTeX). +</p> +<a name="index-_002d_002ddisable_002dbibtex8"></a> +<p><code>--disable-bibtex8</code><br>Do not build the <samp>bibtex8</samp> program. +</p> +<p>–disable-bibtexu +<code>--disable-bibtexu</code><br>Do not build the <samp>bibtexu</samp> program +(building <samp>bibtexu</samp> requires <code>ICU</code> libraries). +</p> + +<hr> +<a name="Configure-options-for-texk_002fdvipdfm_002dx"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002fdvisvgm" accesskey="n" rel="next">Configure options for <samp>texk/dvisvgm</samp></a>, Previous: <a href="#Configure-options-for-texk_002fbibtex_002dx" accesskey="p" rel="prev">Configure options for <samp>texk/bibtex-x</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002fdvipdfm_002dx-1"></a> +<h4 class="subsection">7.2.5 Configure options for <samp>texk/dvipdfm-x</samp></h4> + +<a name="index-configure-options_002c-for-dvipdfm_002dx"></a> +<a name="index-dvipdfmx"></a> +<a name="index-xdvipdfmx"></a> + +<p>The former modules <code>dvipdfmx</code> (extended DVI to PDF converter) and +<code>xdvipdfmx</code> (the same, as used by XeTeX) have been merged into +<code>dvipdfm-x</code> at the source level. Two separate binaries are still +created by default. In addition, <samp>dvipdfm</samp> is created as a +symlink to <samp>dvipdfmx</samp>, with backward-compatible (very slightly +different) behavior. +</p> +<a name="index-_002d_002ddisable_002ddvipdfmx"></a> +<p><code>--disable-dvipdfmx</code><br>Do not build the <samp>dvipdfmx</samp> +program or create the <samp>dvipdfm</samp> symlink. +</p> +<a name="index-_002d_002ddisable_002dxdvipdfmx"></a> +<p><code>--disable-xdvipdfmx</code><br>Do not build the <samp>xdvipdfmx</samp> +program (building <samp>xdvipdfmx</samp> requires the <code>freetype</code> library). +</p> + +<hr> +<a name="Configure-options-for-texk_002fdvisvgm"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002ftexlive" accesskey="n" rel="next">Configure options for <samp>texk/texlive</samp></a>, Previous: <a href="#Configure-options-for-texk_002fdvipdfm_002dx" accesskey="p" rel="prev">Configure options for <samp>texk/dvipdfm-x</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002fdvisvgm-1"></a> +<h4 class="subsection">7.2.6 Configure options for <samp>texk/dvisvgm</samp></h4> + +<a name="index-configure-options_002c-for-dvisvgm"></a> +<a name="index-dvisvgm"></a> + +<a name="index-_002d_002dwith_002dsystem_002dlibgs"></a> +<p><code>--with-system-libgs</code><br>Build <samp>dvisvgm</samp> using installed +Ghostscript (<code>gs</code>) headers and library (not allowed for a native +TL build). The default is to load the <code>gs</code> library at runtime if +possible, or otherwise disable support for PostScript specials. +</p> +<a name="index-_002d_002dwithout_002dlibgs"></a> +<p><code>--without-libgs</code><br>Build <samp>dvisvgm</samp> without PostScript +support at all. Because the dynamic loading just mention defeats all +attempts at static linking, the result can crash due to library +incompatibilities, e.g., on CentOS 5. +</p> +<a name="index-_002d_002dwith_002dlibgs_002dincludes_002c-_002dlibdir"></a> +<p><code>--with-libgs-includes=<var>dir</var></code>, +<code>--with-libgs-libdir=<var>dir</var></code><br>Specify non-standard locations +of the Ghostscript headers and library. +</p> + +<hr> +<a name="Configure-options-for-texk_002ftexlive"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002fxdvik" accesskey="n" rel="next">Configure options for <samp>texk/xdvik</samp></a>, Previous: <a href="#Configure-options-for-texk_002fdvisvgm" accesskey="p" rel="prev">Configure options for <samp>texk/dvisvgm</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002ftexlive-1"></a> +<h4 class="subsection">7.2.7 Configure options for <samp>texk/texlive</samp></h4> + +<a name="index-configure-options_002c-for-texk_002ftexlive"></a> +<a name="index-_002d_002ddisable_002dlinked_002dscripts"></a> +<p><code>--disable-linked-scripts</code><br>Do not install the “linked +scripts” (see <a href="#Linked-scripts">Linked scripts</a>), except for the TL scripts required +to run <code>texlinks</code>. +</p> + +<hr> +<a name="Configure-options-for-texk_002fxdvik"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-utils_002fxindy" accesskey="n" rel="next">Configure options for <samp>utils/xindy</samp></a>, Previous: <a href="#Configure-options-for-texk_002ftexlive" accesskey="p" rel="prev">Configure options for <samp>texk/texlive</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002fxdvik-1"></a> +<h4 class="subsection">7.2.8 Configure options for <samp>texk/xdvik</samp></h4> + +<a name="index-configure-options_002c-for-xdvik"></a> +<a name="index-xdvik-1"></a> + +<a name="index-_002d_002dwith_002dgs_003dfilename"></a> +<p><code>--with-gs=<var>filename</var></code><br>Hardwire the location of Ghostscript +(<samp>gs</samp>). +</p> +<a name="index-_002d_002dwith_002dxdvi_002dx_002dtoolkit_003dkit"></a> +<a name="index-motif"></a> +<a name="index-xaw"></a> +<p><code>--with-xdvi-x-toolkit=<var>kit</var></code><br>Use toolkit +<code><var>kit</var></code> for <samp>xdvik</samp>, one of: <code>motif xaw xaw3d +neXtaw</code>. The default is <code>motif</code> if available, else <code>xaw</code>. +</p> +<a name="index-_002d_002denable_002dxi2_002dscrolling"></a> +<a name="index-XInput"></a> +<a name="index-scrolling"></a> +<p><code>--enable-xi2-scrolling</code><br>Use XInput 2.1 “smooth scrolling” +if available. (default: yes, except for a native TL build). +</p> + +<hr> +<a name="Configure-options-for-utils_002fxindy"></a> +<div class="header"> +<p> +Previous: <a href="#Configure-options-for-texk_002fxdvik" accesskey="p" rel="prev">Configure options for <samp>texk/xdvik</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-utils_002fxindy-1"></a> +<h4 class="subsection">7.2.9 Configure options for <samp>utils/xindy</samp></h4> + +<a name="index-configure-options_002c-for-xindy"></a> +<a name="index-xindy-2"></a> + +<a name="index-_002d_002denable_002dxindy_002drules"></a> +<p><code>--enable-xindy-rules</code><br>Build and install <code>xindy</code> rules +(default: yes, except for a native TL build). +</p> +<a name="index-_002d_002denable_002dxindy_002ddocs"></a> +<p><code>--enable-xindy-docs</code><br>Build and install <code>xindy</code> +documentation (default: yes, except for a native TL build). +</p> +<a name="index-_002d_002dwith_002dclisp_002druntime_003dfilename"></a> +<a name="index-lisp_002erun_002c-lisp_002eexe"></a> +<a name="index-CLISP"></a> +<p><code>--with-clisp-runtime=<var>filename</var></code><br>Specifies the +Full path for the CLISP runtime file (<samp>lisp.run</samp> or +<samp>lisp.exe</samp>) to be installed. When specified as <code>default</code> +(the default for a native TL build) the path is determined by the +CLISP executable; the value <code>system</code> (not allowed for a native TL +build, but the default for a non-native one) indicates that +<samp>xindy</samp> will use the installed version of <samp>clisp</samp> (which +must be identical to the one used to build <samp>xindy</samp>). +</p> +<a name="index-_002d_002dwith_002drecode"></a> +<a name="index-recode"></a> +<a name="index-iconv"></a> +<p><code>--with-recode</code><br>Use <samp>recode</samp> instead of <samp>iconv</samp> +to build the <code>xindy</code> rules and documentation, required for some +systems where <samp>iconv</samp> is missing or broken. +</p> + +<hr> +<a name="Library_002dspecific-configure-options"></a> +<div class="header"> +<p> +Next: <a href="#Variables-for-configure" accesskey="n" rel="next">Variables for configure</a>, Previous: <a href="#Program_002dspecific-configure-options" accesskey="p" rel="prev">Program-specific configure options</a>, Up: <a href="#Configure-options" accesskey="u" rel="up">Configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Library_002dspecific-configure-options-1"></a> +<h3 class="section">7.3 Library-specific configure options</h3> + +<a name="index-library_002dspecific-configure-options"></a> +<a name="index-configure-options_002c-library_002dspecific"></a> +<p>Here are (some of) the library-specific <code>configure</code> options, +starting with this generic one: +</p> +<a name="index-_002d_002dwith_002dsystem_002dlib-1"></a> +<p><code>--with-system-<var>lib</var></code> +</p> +<p>Use an installed (system) version of the library <code><var>lib</var></code>; +this option exists for most libraries, but is not allowed for a native +TL build. Using a system version implies also using the system +versions of all libraries (if any) that <var>lib</var> depends on. +</p> +<a name="index-_002d_002dwith_002dlib_002dincludes_003ddir_002c-_002dlibdir"></a> +<p>For many libraries <code>--with-<var>lib</var>-includes=<var>dir</var></code> and +<code>--with-<var>lib</var>-libdir=<var>dir</var></code> to specify non-standard +search locations; others use <samp>pkg-config</samp> or similar to determine +the required flags. +</p> +<p>The top-level <samp>configure</samp> script performs a consistency check for all +required system libraries and bails out if tests fail. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-kpathsea" accesskey="1">Configure options for <code>kpathsea</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-system-poppler" accesskey="2">Configure options for system <code>poppler</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Configure-options-for-kpathsea"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-system-poppler" accesskey="n" rel="next">Configure options for system <code>poppler</code></a>, Up: <a href="#Library_002dspecific-configure-options" accesskey="u" rel="up">Library-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-kpathsea-1"></a> +<h4 class="subsection">7.3.1 Configure options for <code>kpathsea</code></h4> + +<a name="index-configure-options_002c-for-kpathsea"></a> + +<p><code>--enable-<var>cmd</var>-default</code>, +<code>--disable-<var>cmd</var>-default</code><br>Determine the compile time default +whether or not to run <var>cmd</var>, one of: +</p><dl compact="compact"> +<dt><code>mkocp</code></dt> +<dd><p>(Omega compiled translation process file) +</p></dd> +<dt><code>mkofm</code></dt> +<dd><p>(Omega font metrics file) +</p></dd> +<dt><code>mktexfmt</code></dt> +<dd><p>(format/base dump file) +</p></dd> +<dt><code>mktexmf</code></dt> +<dd><p>(Metafont source) +</p></dd> +<dt><code>mktexpk</code></dt> +<dd><p>(PK bitmap font) +</p></dd> +<dt><code>mktextex</code></dt> +<dd><p>(TeX source) +</p></dd> +<dt><code>mktextfm</code></dt> +<dd><p>(TFM file) +</p></dd> +</dl> + +<p>to generate the specified type of file dynamically. +The default can be overridden by the user in any case. +</p> + +<hr> +<a name="Configure-options-for-system-poppler"></a> +<div class="header"> +<p> +Previous: <a href="#Configure-options-for-kpathsea" accesskey="p" rel="prev">Configure options for <code>kpathsea</code></a>, Up: <a href="#Library_002dspecific-configure-options" accesskey="u" rel="up">Library-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-system-poppler-1"></a> +<h4 class="subsection">7.3.2 Configure options for system <code>poppler</code></h4> + +<a name="index-configure-options_002c-for-system-poppler"></a> + +<a name="index-poppler"></a> +<a name="index-xpdf-as-library"></a> +<p>Building LuaTeX and XeTeX requires <code>poppler</code>, either from +the TL tree or system headers and library. Building pdfTeX +requires either <code>xpdf</code> from the TeX Live tree or system +<code>poppler</code> headers and library. +</p> +<a name="index-_002d_002dwith_002dsystem_002dpoppler"></a> +<p><code>--with-system-poppler</code><br>Use a system version (0.18 or +newer) of <code>poppler</code> for LuaTeX and XeTeX, and use +<samp>pkg-config</samp> to obtain the required flags. +</p> +<a name="index-_002d_002dwith_002dsystem_002dxpdf"></a> +<p><code>--with-system-xpdf</code><br>Use a system version (0.12 or better) +of <code>poppler</code> (and <samp>pkg-config</samp>) for pdfTeX instead of +<code>xpdf</code> from the TL tree. See <a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a>. +</p> +<hr> +<a name="Variables-for-configure"></a> +<div class="header"> +<p> +Previous: <a href="#Library_002dspecific-configure-options" accesskey="p" rel="prev">Library-specific configure options</a>, Up: <a href="#Configure-options" accesskey="u" rel="up">Configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Variables-for-configure-1"></a> +<h3 class="section">7.4 Variables for configure</h3> + +<a name="index-variables-for-configure"></a> +<a name="index-configure-variables"></a> + +<p>The values for these variables can be specified as <code>configure</code> +arguments of the form <code><var>VAR</var>=<var>value</var></code>. They can also be +defined in the environment, but that might not work for cross +compilations. +</p> +<dl compact="compact"> +<dt><code>CC</code> +<a name="index-CC"></a> +</dt> +<dt><code>CXX</code> +<a name="index-CXX"></a> +</dt> +<dt><code>CPPFLAGS</code> +<a name="index-CPPFLAGS"></a> +</dt> +<dd><p>And plenty more. As usual with Autoconf, these variables specify the +name (or full path) of compilers, preprocessor flags, and similar. +See <a href="GNU Autoconf.html#Preset-Output-Variables">(GNU Autoconf)autoconf</a>. +</p> +</dd> +<dt><code>CLISP</code> +<a name="index-CLISP-1"></a> +</dt> +<dd><a name="index-clisp"></a> +<p>Name (or full path) of the <samp>clisp</samp> executable, used to build +<code>xindy</code>. +</p> +</dd> +<dt><code>FT2_CONFIG</code> +<a name="index-FT2_005fCONFIG"></a> +</dt> +<dt><code>ICU_CONFIG</code> +<a name="index-ICU_005fCONFIG"></a> +</dt> +<dt><code>PKG_CONFIG</code> +<a name="index-PKG_005fCONFIG"></a> +</dt> +<dd><a name="index-freetype_002dconfig-1"></a> +<a name="index-icu_002dconfig"></a> +<a name="index-libfreetype"></a> +<a name="index-ICU-libraries"></a> +<p>These specify the name (or path) for the <samp>freetype-config</samp>, +<samp>icu-config</samp>, and <samp>pkg-config</samp> commands used to determine the +flags required for system versions of <samp>libfreetype</samp>, the ICU +libraries, or many other libraries. +</p> +</dd> +<dt><code>KPSEWHICH</code> +<a name="index-KPSEWHICH"></a> +</dt> +<dd><a name="index-kpsewhich"></a> +<p>Name (or path) of an installed <samp>kpsewhich</samp> binary, used by +<code>make check</code> to determine the location of, e.g., +<samp>cmbx10.tfm</samp>. +</p> +</dd> +<dt><code>MAKE</code> +<a name="index-MAKE"></a> +</dt> +<dt><code>SED</code> +<a name="index-SED"></a> +</dt> +<dd><p>And more. Name (or path) of the <code>make</code>, <code>sed</code>, and similar +programs; used at the top level and propagated to all subdirectories. +</p> +</dd> +<dt><code>PERL</code> +<a name="index-PERL"></a> +</dt> +<dt><code>LATEX</code> +<a name="index-LATEX"></a> +</dt> +<dt><code>PDFLATEX</code> +<a name="index-PDFLATEX"></a> +</dt> +<dd><p>Name (or full path) for the <samp>perl</samp>, <samp>latex</samp>, and <samp>pdflatex</samp> +commands used, e.g., to build the <code>xindy</code> documentation. +</p> +</dd> +</dl> + + +<hr> +<a name="Cross-compilation"></a> +<div class="header"> +<p> +Next: <a href="#Coding-conventions" accesskey="n" rel="next">Coding conventions</a>, Previous: <a href="#Configure-options" accesskey="p" rel="prev">Configure options</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Cross-compilation-1"></a> +<h2 class="chapter">8 Cross compilation</h2> + +<a name="index-cross-compilation"></a> +<p>In a cross compilation a <em>build</em> system is used to create +binaries to be executed on a <em>host</em> system with different +hardware and/or operating system. +</p> +<a name="index-native-cross-compilation"></a> +<p>In simple cases, the build system can execute binaries for the host +system. This typically occurs for bi-arch systems where, e.g., +<code>i386-linux</code> binaries can run on <code>x86_64-linux</code> systems and +<code>win32</code> binaries can run on <code>win64</code> systems. Although +sometimes called “native cross”, technically this is not cross +compilation at all. In most such cases it suffices to specify +suitable compiler flags. It might be useful to add the configure +option <code>--build=<var>host</var></code> to get the correct canonical host +name, but note that this should <em>not</em> be <code>--host=<var>host</var></code> +(see <a href="http://www.gnu.org/software/autoconf/manual/autoconf.html#Hosts-and-Cross_002dCompilation">Hosts and Cross-Compilation</a> in <cite>GNU Autoconf</cite>). +</p> +<p>In order to build, e.g., 32-bit binaries with <code>clang</code> on a 64-bit +OSX system one could use <br> <code>./Build --build=i386-apple-darwin +CC='clang -arch i386'</code> \ <br> <code>CXX='clang++ -arch i386' OBJCXX='clang++ -arch i386'</code> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Cross-configuring" accesskey="1">Cross configuring</a>:</td><td> </td><td align="left" valign="top">Configuring for cross compilation. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Cross-problems" accesskey="2">Cross problems</a>:</td><td> </td><td align="left" valign="top">Cross compilation problems. +</td></tr> +</table> + + +<hr> +<a name="Cross-configuring"></a> +<div class="header"> +<p> +Next: <a href="#Cross-problems" accesskey="n" rel="next">Cross problems</a>, Up: <a href="#Cross-compilation" accesskey="u" rel="up">Cross compilation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Cross-configuring-1"></a> +<h3 class="section">8.1 Cross configuring</h3> + +<a name="index-cross-compilation-configuring"></a> +<a name="index-configuring_002c-for-cross-compilation"></a> + +<a name="index-_002d_002dhost_003dhost"></a> +<a name="index-_002d_002dbuild_003dhost"></a> +<p>In a standard cross compilation, binaries for the host system cannot +execute on the build system and it is necessary to specify the +configure options <code>--host=<var>host</var></code> and +<code>--build=<var>build</var></code> with two different values. +</p> +<p>Building binaries requires suitable “cross” tools, e.g., compiler, +linker, and archiver, and perhaps a “cross” version of +<code>pkg-config</code> and similar to locate host system libraries. +Autoconf expects that these cross tools are given by their usual +variables or found under their usual name prefixed with +<code><var>host</var>-</code>. Here a list of such tools and corresponding +variables: +</p> +<div class="example"> +<pre class="example"><code>ar</code> AR +<code>freetype-config</code> FT2_CONFIG +<code>g++</code> CXX +<code>gcc</code> CC +<code>icu-config</code> ICU_CONFIG +<code>objdump</code> OBJDUMP +<code>pkg-config</code> PKG_CONFIG +<code>ranlib</code> RANLIB +<code>strip</code> STRIP +</pre></div> + +<a name="index-mingw32"></a> +<p>In order to, e.g., build <code>mingw32</code> binaries on +<code>x86_64-linux</code> with a cross compiler found as +<samp>i386-pc-mingw32-gcc</samp> one would specify +</p> +<div class="example"> +<pre class="example">--host=i386-pc-mingw32 --build=x86_64-linux-gnu +</pre></div> + +<p>or perhaps +</p> +<div class="example"> +<pre class="example">--host=mingw32 --build=x86_64-linux CC=i386-pc-mingw32-gcc +</pre></div> + +<p>but this latter, especially, might require adding <code>CXX</code> and others. +</p> +<p>Configure arguments such as <code>CFLAGS=…</code> refer to the cross +compiler. If necessary, you can specify compilers and flags for the +few auxiliary C and C++ programs required for the build process as +configure arguments +</p> +<a name="index-BUILDCC_002c-BUILDCFLAGS_002c-_2026"></a> +<div class="example"> +<pre class="example">BUILDCC=… +BUILDCPPFLAGS=… +BUILDCFLAGS=… +BUILDCXX=… +BUILDCXXFLAGS=… +BUILDLDFLAGS=… +</pre></div> + + +<hr> +<a name="Cross-problems"></a> +<div class="header"> +<p> +Previous: <a href="#Cross-configuring" accesskey="p" rel="prev">Cross configuring</a>, Up: <a href="#Cross-compilation" accesskey="u" rel="up">Cross compilation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Cross-problems-1"></a> +<h3 class="section">8.2 Cross problems</h3> + +<a name="index-cross-compilation-problems"></a> + +<p>The fact that binaries for the host system cannot be executed on the +build system causes some problems. +</p> +<p>One problem is that configure tests using <code>AC_RUN_IFELSE</code> can +compile and link the test program but cannot execute it. Such tests +should be avoided if possible and otherwise must supply a pessimistic +test result. +</p> +<a name="index-squeeze"></a> +<a name="index-web2c-program"></a> +<a name="index-freetype-cross-compiling"></a> +<a name="index-CC_005fBUILD"></a> +<p>Another problem arises if the build process must execute some +(auxiliary or installable) programs. Auxiliary programs can be placed +into a subdirectory that is configured natively as is done for +<samp>texk/web2c/web2c</samp>, <samp>texk/dvipsk/squeeze</samp>, and +<samp>texk/xdvik/squeeze</samp>. The module <samp>libs/freetype2</samp> uses the +value of <code>CC_BUILD</code>, <samp><var>build</var>-gcc</samp>, <samp>gcc</samp>, or +<samp>cc</samp> as compiler for the auxiliary program. +</p> +<a name="index-txt2zlib"></a> +<p>Building LuaTeX (or LuaJITTeX) uses the auxiliary program +<samp>txt2zlib</samp> to create <samp>pdflua.c</samp> and, if necessary, update the +distributed version of that file. In a cross compilation we simply use that +distributed file. +</p> +<a name="index-ICU-cross-compiling"></a> +<p>The situation for installable programs needed by the build process is +somewhat different. A quite expensive possibility, chosen for the ICU +libraries in module <samp>libs/icu</samp>, is to first compile natively for +the build system and in a second step to use these (uninstalled) +programs during the cross compilation. +</p> +<a name="index-tangle"></a> +<a name="index-ctangle"></a> +<a name="index-otangle"></a> +<a name="index-tie"></a> +<p>This approach would also be possible for the tools such as +<samp>tangle</samp> used in the module <samp>texk/web2c</samp> to build the WEB +programs, but that would require first building a native +<code>kpathsea</code> library. To avoid this complication, cross +compilation of the WEB or CWEB programs requires sufficiently recent +installed versions of <samp>tangle</samp>, <samp>ctangle</samp>, <samp>otangle</samp>, +and <samp>tie</samp>. +</p> +<a name="index-xindy-cross-compiling-impossible"></a> +<p>Building <code>xindy</code> requires running the host system <samp>clisp</samp> +binary, thus cross compilation is not possible. +</p> + +<hr> +<a name="Coding-conventions"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl" accesskey="n" rel="next">install-tl</a>, Previous: <a href="#Cross-compilation" accesskey="p" rel="prev">Cross compilation</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Coding-conventions-1"></a> +<h2 class="chapter">9 Coding conventions</h2> + +<a name="index-coding-conventions"></a> +<a name="index-conventions_002c-coding"></a> + +<p>Ideally, building all of TeX Live with <code>--enable-compiler-warnings=max</code> +should produce no (GCC) compiler warnings at all. In spite of +considerable efforts into that direction we are still far from that goal and +there are reasons that we may never fully reach it. Below are some rules +about declarations of functions or variables and the use of <code>const</code>. +These rules should be applied to all parts of the TeX Live tree, except some of +those maintained independently. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Declarations-and-definitions" accesskey="1">Declarations and definitions</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Const" accesskey="2">Const</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Declarations-and-definitions"></a> +<div class="header"> +<p> +Next: <a href="#Const" accesskey="n" rel="next">Const</a>, Up: <a href="#Coding-conventions" accesskey="u" rel="up">Coding conventions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Declarations-and-definitions-1"></a> +<h3 class="section">9.1 Declarations and definitions</h3> + +<a name="index-declarations-and-definitions_002c-in-source-code"></a> +<a name="index-source-code-declarations"></a> +<a name="index-ANSI-C"></a> +<a name="index-C_002c-ANSI_002c-required"></a> +<a name="index-C99_002c-avoided"></a> + +<a name="C-standards"></a> +<h4 class="subsubheading">C standards</h4> + +<p>The TeX Live build system no longer supports pre-ANSI C compilers. Thus +all function prototypes and definitions must conform to the ANSI C +standard (including <code>void</code> in the declaration of C functions with +no parameters). On the other hand, TL is built for a wide variety of +systems, not all of which support the C99 standard. Therefore using +C99 features should be avoided if that can easily be done. In +particular C code must not contain declarations after statements or +C++-style comments. +</p> +<a name="index-chktex"></a> +<a name="index-stpcpy"></a> +<p>If some C99 (or later) constructs must be used, the module should +verify that they are available and otherwise provide an alternative. +For example, the module <samp>texk/chktex</samp> uses the C99 function +<code>stpcpy()</code> that may or may not be available on a particular +system. It uses <code>AC_CHECK_DECLS([stpcpy])</code> in +<samp>configure.ac</samp> to test this, and provides the perhaps slightly +less efficient alternative +</p> +<div class="example"> +<pre class="example">#if !(defined HAVE_DECL_STPCPY && HAVE_DECL_STPCPY) +#static inline char *stpcpy(char *dest, const char *src) +{ + return strcpy(dest, src) + strlen(src); +} +#endif +</pre></div> + +<p>in the file <samp>Utility.h</samp>. +</p> + +<a name="Static-functions"></a> +<h4 class="subsubheading">Static functions</h4> + +<a name="index-static-functions"></a> +<p>Functions used in only one file should be declared <code>static</code>; they +require no prototype except as forward declaration. +</p> +<a name="Extern-functions"></a> +<h4 class="subsubheading">Extern functions</h4> + +<a name="index-extern-functions"></a> +<p>Functions not declared <code>static</code>, usually because they are used in +several files, require an (<code>extern</code>) prototype in exactly one +header file, which is included in the file defining the function and +in all files using that function—this is the only way to guarantee +consistency between definition and use. There should be no +<code>extern</code> declarations sprinkled throughout the C code (with or +without comments as to where that function is defined). +</p> +<a name="Variable-declarations"></a> +<h4 class="subsubheading">Variable declarations</h4> + +<a name="index-variable-declarations_002c-in-source-code"></a> +<p>The declaration of global variables follows analogous rules: they are +either declared <code>static</code> if used in only one file or declared +<code>extern</code> in exactly one header and instantiated in exactly one +file. +</p> +<hr> +<a name="Const"></a> +<div class="header"> +<p> +Previous: <a href="#Declarations-and-definitions" accesskey="p" rel="prev">Declarations and definitions</a>, Up: <a href="#Coding-conventions" accesskey="u" rel="up">Coding conventions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Const-1"></a> +<h3 class="section">9.2 Const</h3> + +<a name="index-const"></a> + +<p>The <code>const</code> feature of C is valuable, but easy to mis-use. +</p> +<a name="Function-parameters"></a> +<h4 class="subsubheading">Function parameters</h4> + +<p>Ideally, a function parameter not modified by the function should be +declared as <code>const</code>. This is important in particular for strings +(<code>char*</code>) because the actual arguments are often string literals. +It is perfectly legitimate and safe to use a type <code>char*</code> value +for a type <code>const char*</code> variable (in an assignment, as +initializer, as function argument, or as return value). It is equally +safe to use a type <code>char**</code> value for a type <code>const +char*const*</code> variable, but not for a type <code>const char**</code> variable +since that might cause modification of a quantity supposed to be +constant. +</p> +<a name="index-X11-headers_002c-and-const"></a> +<a name="index-libfreetype_002c-and-const"></a> +<p>Getting all <code>const</code> qualifiers right can get quite involved but +can almost always be done. There are only a couple notable +exceptions: the X11 headers are full of declarations that ought to use +<code>const</code> but do not, and the same is true to some extent for +<samp>libfreetype</samp> (but, thankfully, not for <code>zlib</code> nowadays). +</p> +<a name="What-must-be-avoided-with-const"></a> +<h4 class="subsubheading">What must be avoided with <code>const</code></h4> + +<a name="index-warning_002c-discards-qualifiers"></a> +<a name="index-discards-qualifiers-warning"></a> +<p>The GCC compiler warnings “assignment discards qualifiers…” +and analogous warnings for “initialization”, “passing arg”, or +“return” must be strenously avoided in our own code. The only +exception is when they are caused by X11 headers or macros or other +third party code. +</p> +<a name="What-should-be-avoided-with-const"></a> +<h4 class="subsubheading">What should be avoided with <code>const</code></h4> + +<a name="index-type-cast_002c-avoiding"></a> +<p>A type cast, e.g., from <code>const char*</code> to <code>char*</code> does not +solve any problems; depending on warning options, it may only hide +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. +</p> +<hr> +<a name="install_002dtl"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr" accesskey="n" rel="next">tlmgr</a>, Previous: <a href="#Coding-conventions" accesskey="p" rel="prev">Coding conventions</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="install_002dtl-1"></a> +<h2 class="appendix">Appendix A install-tl</h2> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#install_002dtl-NAME" accesskey="1">install-tl NAME</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-SYNOPSIS" accesskey="2">install-tl SYNOPSIS</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-DESCRIPTION" accesskey="3">install-tl DESCRIPTION</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-REFERENCES" accesskey="4">install-tl REFERENCES</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-OPTIONS" accesskey="5">install-tl OPTIONS</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-ENVIRONMENT-VARIABLES" accesskey="6">install-tl ENVIRONMENT VARIABLES</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-AUTHORS-AND-COPYRIGHT" accesskey="7">install-tl AUTHORS AND COPYRIGHT</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="install_002dtl-NAME"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-SYNOPSIS" accesskey="n" rel="next">install-tl SYNOPSIS</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="NAME"></a> +<h3 class="appendixsec">A.1 NAME</h3> + +<p>install-tl - TeX Live cross-platform installer +</p> +<hr> +<a name="install_002dtl-SYNOPSIS"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-DESCRIPTION" accesskey="n" rel="next">install-tl DESCRIPTION</a>, Previous: <a href="#install_002dtl-NAME" accesskey="p" rel="prev">install-tl NAME</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="SYNOPSIS"></a> +<h3 class="appendixsec">A.2 SYNOPSIS</h3> + +<p>install-tl [<em>option</em>]... +</p> +<p>install-tl.bat [<em>option</em>]... +</p> +<hr> +<a name="install_002dtl-DESCRIPTION"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-REFERENCES" accesskey="n" rel="next">install-tl REFERENCES</a>, Previous: <a href="#install_002dtl-SYNOPSIS" accesskey="p" rel="prev">install-tl SYNOPSIS</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="DESCRIPTION"></a> +<h3 class="appendixsec">A.3 DESCRIPTION</h3> + +<p>This installer creates a runnable TeX Live installation from various +media, including over the network. The installer works across all +platforms supported by TeX Live. For information on initially +downloading the TeX Live, see <a href="http://tug.org/texlive/acquire.html">http://tug.org/texlive/acquire.html</a>. +</p> +<p>The basic idea of TeX Live installation is to choose one of the +top-level <em>schemes</em>, each of which is defined as a different set of +<em>collections</em> and <em>packages</em>, where a collection is a set of packages, +and a package is what contains actual files. +</p> +<p>Within the installer, you can choose a scheme, and further customize the +set of collections to install, but not the set of the packages. To do +that, use <code>tlmgr</code> (reference below) after the initial installation is +completely. +</p> +<p>The default is <code>scheme-full</code>, to install everything, and this is highly +recommended. +</p> +<hr> +<a name="install_002dtl-REFERENCES"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-OPTIONS" accesskey="n" rel="next">install-tl OPTIONS</a>, Previous: <a href="#install_002dtl-DESCRIPTION" accesskey="p" rel="prev">install-tl DESCRIPTION</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="REFERENCES"></a> +<h3 class="appendixsec">A.4 REFERENCES</h3> + +<p>Post-installation configuration, package updates, and much more, are +handled through <strong>tlmgr</strong>(1), the TeX Live Manager +(<a href="http://tug.org/texlive/tlmgr.html">http://tug.org/texlive/tlmgr.html</a>). +</p> +<p>The most up-to-date version of this documentation is on the Internet at +<a href="http://tug.org/texlive/doc/install-tl.html">http://tug.org/texlive/doc/install-tl.html</a>. +</p> +<p>For the full documentation of TeX Live, see +<a href="http://tug.org/texlive/doc">http://tug.org/texlive/doc</a>. +</p> +<hr> +<a name="install_002dtl-OPTIONS"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-ENVIRONMENT-VARIABLES" accesskey="n" rel="next">install-tl ENVIRONMENT VARIABLES</a>, Previous: <a href="#install_002dtl-REFERENCES" accesskey="p" rel="prev">install-tl REFERENCES</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="OPTIONS"></a> +<h3 class="appendixsec">A.5 OPTIONS</h3> + +<p>As usual, all options can be specified in any order, and with either a +leading <code>-</code> or <code>--</code>. An argument value can be separated from its +option by either a space or <code>=</code>. +</p> +<dl compact="compact"> +<dt><strong>-gui</strong> [[=]<em>module</em>]</dt> +<dd><a name="install_002dtl-_002dgui-_005b_005b_003d_005dmodule_005d"></a> +<p>If no <em>module</em> is given starts the <code>perltk</code> (see below) GUI installer. +</p> +<p>If <em>module</em> is given loads the given installer module. Currently the +following modules are supported: +</p> +<dl compact="compact"> +<dt><code>text</code></dt> +<dd><a name="install_002dtl-text"></a> +<p>The text mode user interface (default on Unix systems). Same as the +<code>-no-gui</code> option. +</p> +</dd> +<dt><code>wizard</code></dt> +<dd><a name="install_002dtl-wizard"></a> +<p>The wizard mode user interface (default on Windows), asking only minimal +questions before installing all of TeX Live. +</p> +</dd> +<dt><code>perltk</code></dt> +<dd><a name="install_002dtl-perltk"></a> +<p>The expert GUI installer, providing access to more options. +Can also be invoked on Windows by running <code>install-tl-advanced.bat</code>. +</p> +</dd> +</dl> + +<p>The <code>perltk</code> and <code>wizard</code> modules, and thus also when calling with a +bare <code>-gui</code> (without <em>module</em>), requires the Perl/Tk module +(<a href="http://tug.org/texlive/distro.html#perltk">http://tug.org/texlive/distro.html#perltk</a>); if Perl/Tk is not +available, installation continues in text mode. +</p> +</dd> +<dt><strong>-no-gui</strong></dt> +<dd><a name="install_002dtl-_002dno_002dgui"></a> +<p>Use the text mode installer (default except on Windows). +</p> +</dd> +<dt><strong>-lang</strong> <em>llcode</em></dt> +<dd><a name="install_002dtl-_002dlang-llcode"></a> +<p>By default, the GUI tries to deduce your language from the environment +(on Windows via the registry, on Unix via <code>LC_MESSAGES</code>). If that fails +you can select a different language by giving this option with a +language code (based on ISO 639-1). Currently supported (but not +necessarily completely translated) are: English (en, default), Czech +(cs), German (de), French (fr), Italian (it), Japanese (ja), Dutch (nl), +Polish (pl), Brazilian Portuguese (pt_BR), Russian (ru), Slovak (sk), +Slovenian (sl), Serbian (sr), Ukrainian (uk), Vietnamese (vi), +simplified Chinese (zh_CN), and traditional Chinese (zh_TW). +</p> +</dd> +<dt><strong>-repository</strong> <em>url|path</em></dt> +<dd><a name="install_002dtl-_002drepository-url_007cpath"></a> +<p>Specify the package repository to be used as the source of the +installation, either a local directory via <code>/path/to/directory</code> or a +<code>file:/</code> url, or a network location via a <code>http://</code> or <code>ftp://</code> url. +(No other protocols are supported.) +</p> +<p>The default is to pick a mirror automatically, using +<a href="http://mirror.ctan.org/systems/texlive/tlnet">http://mirror.ctan.org/systems/texlive/tlnet</a>; the chosen mirror is +used for the entire download. You can use the special argument <code>ctan</code> +as an abbreviation for this. See <a href="http://ctan.org">http://ctan.org</a> for more about CTAN +and its mirrors. +</p> +<p>If the repository is on the network, trailing <code>/</code> characters and/or +trailing <code>/tlpkg</code> and <code>/archive</code> components are ignored. For example, +you could choose a particular CTAN mirror with something like this: +</p> +<pre class="verbatim"> -repository http://ctan.example.org/its/ctan/dir/systems/texlive/tlnet +</pre> +<p>Of course a real hostname and its particular top-level CTAN path +have to be specified. The list of CTAN mirrors is available at +<a href="http://ctan.org/mirrors">http://ctan.org/mirrors</a>. +</p> +<p>If the repository is local, the installation type (compressed or live) is +automatically determined, by checking for the presence of a +<code>archive</code> directory relative to the root. Compressed is +preferred if both are available, since it is faster. Here’s an example +of using a local directory: +</p> +<pre class="verbatim"> -repository /local/TL/repository +</pre> +<p>After installation is complete, you can use that installation as the +repository for another installation. If you chose to install less than +the full scheme containing all packages, the list of available schemes +will be adjusted accordingly. +</p> +<p>For backward compatibility and convenience, <code>--location</code> and <code>--repo</code> +are accepted as aliases for this option. +</p> +</dd> +<dt><strong>-select-repository</strong></dt> +<dd><a name="install_002dtl-_002dselect_002drepository"></a> +<p>This option allows manual selection of a mirror from the current list of +active CTAN mirrors. This option is supported in all installer modes +(text, wizard, perltk), and will also offer to install from local media +if available, or from a repository specified on the command line (see +above). It’s useful when the (default) automatic redirection does not +choose a good host for you. +</p> +</dd> +<dt><strong>-all-options</strong></dt> +<dd><a name="install_002dtl-_002dall_002doptions"></a> +<p>Normally options not relevant to the current platform are not shown +(i.e., when running on Unix, Windows-specific options are omitted). +Giving this command line option allows configuring settings in the +final <code>texlive.tlpdb</code> that do not have any immediate effect. +</p> +</dd> +<dt><strong>-custom-bin</strong> <em>path</em></dt> +<dd><a name="install_002dtl-_002dcustom_002dbin-path"></a> +<p>If you have built your own set of TeX Live binaries (perhaps because +your platform was not supported by TeX Live out of the box), this option +allows you to specify the <em>path</em> to a directory where the binaries for +the current system are present. The installation will continue as +usual, but at the end all files from <em>path</em> are copied over to +<code>bin/custom/</code> under your installation directory and this <code>bin/custom/</code> +directory is what will be added to the path for the post-install +actions. (By the way, for information on building TeX Live, see +<a href="http://tug.org/texlive/build.html">http://tug.org/texlive/build.html</a>). +</p> +</dd> +<dt><strong>-debug-translation</strong></dt> +<dd><a name="install_002dtl-_002ddebug_002dtranslation"></a> +<p>In GUI mode, this switch makes <code>tlmgr</code> report any missing, or more +likely untranslated, messages to standard error. Helpful for +translators to see what remains to be done. +</p> +</dd> +<dt><strong>-force-platform</strong> <em>platform</em></dt> +<dd><a name="install_002dtl-_002dforce_002dplatform-platform"></a> +<p>Instead of auto-detecting the current platform, use <em>platform</em>. +Binaries for this platform must be present and they must actually be +runnable, or installation will fail. <code>-force-arch</code> is a synonym. +</p> +</dd> +<dt><strong>-help</strong>, <strong>–help</strong>, <strong>-?</strong></dt> +<dd><a name="install_002dtl-_002dhelp_002c-_002d_002dhelp_002c-_002d_003f"></a> +<p>Display this help and exit (on the web via +<a href="http://tug.org/texlive/doc/install-tl.html">http://tug.org/texlive/doc/install-tl.html</a>). Sometimes the +<code>perldoc</code> and/or <code>PAGER</code> programs on the system have problems, +possibly resulting in control characters being literally output. This +can’t always be detected, but you can set the <code>NOPERLDOC</code> environment +variable and <code>perldoc</code> will not be used. +</p> +</dd> +<dt><strong>-in-place</strong></dt> +<dd><a name="install_002dtl-_002din_002dplace"></a> +<p>This is a quick-and-dirty installation option in case you already have +an rsync or svn checkout of TeX Live. It will use the checkout as-is +and will just do the necessary post-install. Be warned that the file +<code>tlpkg/texlive.tlpdb</code> may be rewritten, that removal has to be done +manually, and that the only realistic way to maintain this installation +is to redo it from time to time. This option is not available via the +installer interfaces. USE AT YOUR OWN RISK. +</p> +</dd> +<dt><strong>-logfile</strong> <em>file</em></dt> +<dd><a name="install_002dtl-_002dlogfile-file"></a> +<p>Write both all messages (informational, debugging, warnings) to <em>file</em>, +in addition to standard output or standard error. +</p> +<p>If this option is not given, the installer will create a log file +in the root of the writable installation tree, +for example, <code>/usr/local/texlive/YYYY/install-tl.log</code> for the <em>YYYY</em> +release. +</p> +</dd> +<dt><strong>-no-cls</strong></dt> +<dd><a name="install_002dtl-_002dno_002dcls"></a> +<p>(only for text mode installer) do not clear the screen when entering +a new menu (for debugging purposes). +</p> +</dd> +<dt><strong>-non-admin</strong></dt> +<dd><a name="install_002dtl-_002dnon_002dadmin"></a> +<p>For Windows only: configure for the current user, not for all users. +</p> +</dd> +<dt><strong>–persistent-downloads</strong></dt> +<dd><a name="install_002dtl-_002d_002dpersistent_002ddownloads"></a> +</dd> +<dt><strong>–no-persistent-downloads</strong></dt> +<dd><a name="install_002dtl-_002d_002dno_002dpersistent_002ddownloads"></a> +<p>For network installs, activating this option makes the installer try to +set up a persistent connection using the <code>Net::LWP</code> Perl module. This +opens only one connection between your computer and the server per +session and reuses it, instead of initiating a new download for each +package, which typically yields a significant speed-up. +</p> +<p>This option is turned on by default, and the installation program will +fall back to using <code>wget</code> if this is not possible. To disable usage of +LWP and persistent connections, use <code>--no-persistent-downloads</code>. +</p> +</dd> +<dt><strong>-portable</strong></dt> +<dd><a name="install_002dtl-_002dportable"></a> +<p>Install for portable use, e.g., on a USB stick. Also selectable from +within the perltk and text installers. +</p> +</dd> +<dt><strong>-print-platform</strong></dt> +<dd><a name="install_002dtl-_002dprint_002dplatform"></a> +<p>Print the TeX Live identifier for the detected platform +(hardware/operating system) combination to standard output, and exit. +<code>-print-arch</code> is a synonym. +</p> +</dd> +<dt><strong>-profile</strong> <em>profile</em></dt> +<dd><a name="install_002dtl-_002dprofile-profile"></a> +<p>Load the file <em>profile</em> and do the installation with no user +interaction, that is, a batch (unattended) install. +</p> +<p>A <em>profile</em> file contains all the values needed to perform an +installation. After a normal installation has finished, a profile for +that exact installation is written to the file +DEST/tlpkg/texlive.profile. That file can be given as the argument to +<code>-profile</code> to redo the exact same installation on a different system, +for example. Alternatively, you can use a custom profile, most easily +created by starting from a generated one and changing values, or an +empty file, which will take all the defaults. +</p> +<p>Normally a profile has to specify the value <code>1</code> for each collection to +be installed, even if the scheme is specified. This follows from the +logic of the installer in that you can first select a scheme and then +change the collections being installed. But for convenience there is an +exception to this within profiles: If the profile contains a variable +for <code>selected_scheme</code> and <em>no</em> collection variables at all are defined +in the profile, then the collections which the specified scheme requires +are installed. +</p> +<p>Thus, a line <code>selected_scheme scheme-medium</code> together with the +definitions of the installation directories (<code>TEXDIR</code>, <code>TEXMFHOME</code>, +<code>TEXMFLOCAL</code>, <code>TEXMFSYSCONFIG</code>, <code>TEXMFSYSVAR</code>) suffices to install +the medium scheme with all default options. +</p> +</dd> +<dt><strong>-q</strong></dt> +<dd><a name="install_002dtl-_002dq"></a> +<p>Omit normal informational messages. +</p> +</dd> +<dt><strong>-scheme</strong> <em>scheme</em></dt> +<dd><a name="install_002dtl-_002dscheme-scheme"></a> +<p>Schemes are the highest level of package grouping in TeX Live; the +default is to use the <code>full</code> scheme, which includes everything. This +option overrides that default. You can change the scheme again before +the actual installation with the usual menu. The <em>scheme</em> argument may +optionally have a prefix <code>scheme-</code>. The list of supported scheme names +depends on what your package repository provides; see the interactive +menu list. +</p> +</dd> +<dt><strong>-v</strong></dt> +<dd><a name="install_002dtl-_002dv"></a> +<p>Include verbose debugging messages; repeat for maximum debugging, as in +<code>-v -v</code>. (Further repeats are accepted but ignored.) +</p> +</dd> +<dt><strong>-version</strong>, <strong>–version</strong></dt> +<dd><a name="install_002dtl-_002dversion_002c-_002d_002dversion"></a> +<p>Output version information and exit. If <code>-v</code> has also been given the +revisions of the used modules are reported, too. +</p> +</dd> +</dl> + +<hr> +<a name="install_002dtl-ENVIRONMENT-VARIABLES"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-AUTHORS-AND-COPYRIGHT" accesskey="n" rel="next">install-tl AUTHORS AND COPYRIGHT</a>, Previous: <a href="#install_002dtl-OPTIONS" accesskey="p" rel="prev">install-tl OPTIONS</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="ENVIRONMENT-VARIABLES"></a> +<h3 class="appendixsec">A.6 ENVIRONMENT VARIABLES</h3> + +<p>For ease in scripting and debugging, <code>install-tl</code> will look for the +following environment variables. They are not of interest in normal +user installations. +</p> +<dl compact="compact"> +<dt><code>TEXLIVE_INSTALL_ENV_NOCHECK</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fENV_005fNOCHECK"></a> +<p>Omit the check for environment variables containing the string <code>tex</code>. +People developing TeX-related software are likely to have many such +variables. +</p> +</dd> +<dt><code>TEXLIVE_INSTALL_NO_CONTEXT_CACHE</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fNO_005fCONTEXT_005fCACHE"></a> +<p>Omit creating the ConTeXt cache. This is useful for redistributors. +</p> +</dd> +<dt><code>TEXLIVE_INSTALL_PREFIX</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fPREFIX"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFCONFIG</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFCONFIG"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFHOME</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFHOME"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFLOCAL</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFLOCAL"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFSYSCONFIG</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFSYSCONFIG"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFSYSVAR</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFSYSVAR"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFVAR</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFVAR"></a> +<p>Specify the respective directories. +</p> +</dd> +<dt><code>NOPERLDOC</code></dt> +<dd><a name="install_002dtl-NOPERLDOC"></a> +<p>Don’t try to run the <code>--help</code> message through <code>perldoc</code>. +</p> +</dd> +</dl> + +<hr> +<a name="install_002dtl-AUTHORS-AND-COPYRIGHT"></a> +<div class="header"> +<p> +Previous: <a href="#install_002dtl-ENVIRONMENT-VARIABLES" accesskey="p" rel="prev">install-tl ENVIRONMENT VARIABLES</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="AUTHORS-AND-COPYRIGHT"></a> +<h3 class="appendixsec">A.7 AUTHORS AND COPYRIGHT</h3> + +<p>This script and its documentation were written for the TeX Live +distribution (<a href="http://tug.org/texlive">http://tug.org/texlive</a>) and both are licensed under the +GNU General Public License Version 2 or later. +</p> +<hr> +<a name="tlmgr"></a> +<div class="header"> +<p> +Next: <a href="#Index" accesskey="n" rel="next">Index</a>, Previous: <a href="#install_002dtl" accesskey="p" rel="prev">install-tl</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="tlmgr-1"></a> +<h2 class="appendix">Appendix B tlmgr</h2> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-NAME" accesskey="1">tlmgr NAME</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-SYNOPSIS" accesskey="2">tlmgr SYNOPSIS</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-DESCRIPTION" accesskey="3">tlmgr DESCRIPTION</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-EXAMPLES" accesskey="4">tlmgr EXAMPLES</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-OPTIONS" accesskey="5">tlmgr OPTIONS</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-ACTIONS" accesskey="6">tlmgr ACTIONS</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-USER-MODE" accesskey="7">tlmgr USER MODE</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-CONFIGURATION-FILE-FOR-TLMGR" accesskey="8">tlmgr CONFIGURATION FILE FOR TLMGR</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-TAXONOMIES" accesskey="9">tlmgr TAXONOMIES</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-MULTIPLE-REPOSITORIES">tlmgr MULTIPLE REPOSITORIES</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-GUI-FOR-TLMGR">tlmgr GUI FOR TLMGR</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT">tlmgr MACHINE-READABLE OUTPUT</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-AUTHORS-AND-COPYRIGHT">tlmgr AUTHORS AND COPYRIGHT</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-NAME"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-SYNOPSIS" accesskey="n" rel="next">tlmgr SYNOPSIS</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="NAME-1"></a> +<h3 class="appendixsec">B.1 NAME</h3> + +<p>tlmgr - the TeX Live Manager +</p> +<hr> +<a name="tlmgr-SYNOPSIS"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-DESCRIPTION" accesskey="n" rel="next">tlmgr DESCRIPTION</a>, Previous: <a href="#tlmgr-NAME" accesskey="p" rel="prev">tlmgr NAME</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="SYNOPSIS-1"></a> +<h3 class="appendixsec">B.2 SYNOPSIS</h3> + +<p>tlmgr [<em>option</em>]... <em>action</em> [<em>option</em>]... [<em>operand</em>]... +</p> +<hr> +<a name="tlmgr-DESCRIPTION"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-EXAMPLES" accesskey="n" rel="next">tlmgr EXAMPLES</a>, Previous: <a href="#tlmgr-SYNOPSIS" accesskey="p" rel="prev">tlmgr SYNOPSIS</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="DESCRIPTION-1"></a> +<h3 class="appendixsec">B.3 DESCRIPTION</h3> + +<p><strong>tlmgr</strong> manages an existing TeX Live installation, both packages and +configuration options. For information on initially downloading and +installing TeX Live, see <a href="http://tug.org/texlive/acquire.html">http://tug.org/texlive/acquire.html</a>. +</p> +<p>The most up-to-date version of this documentation (updated nightly from +the development sources) is available at +<a href="http://tug.org/texlive/tlmgr.html">http://tug.org/texlive/tlmgr.html</a>, along with procedures for updating +<code>tlmgr</code> itself and information about test versions. +</p> +<p>TeX Live is organized into a few top-level <em>schemes</em>, each of which is +specified as a different set of <em>collections</em> and <em>packages</em>, where a +collection is a set of packages, and a package is what contains actual +files. Schemes typically contain a mix of collections and packages, but +each package is included in exactly one collection, no more and no less. +A TeX Live installation can be customized and managed at any level. +</p> +<p>See <a href="http://tug.org/texlive/doc">http://tug.org/texlive/doc</a> for all the TeX Live documentation +available. +</p> +<hr> +<a name="tlmgr-EXAMPLES"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-OPTIONS" accesskey="n" rel="next">tlmgr OPTIONS</a>, Previous: <a href="#tlmgr-DESCRIPTION" accesskey="p" rel="prev">tlmgr DESCRIPTION</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="EXAMPLES"></a> +<h3 class="appendixsec">B.4 EXAMPLES</h3> + +<p>After successfully installing TeX Live, here are a few common operations +with <code>tlmgr</code>: +</p> +<dl compact="compact"> +<dt><code>tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet</code></dt> +<dd><a name="tlmgr-tlmgr-option-repository-http_003a_002f_002fmirror_002ectan_002eorg_002fsystems_002ftexlive_002ftlnet"></a> +<p>Tell <code>tlmgr</code> to use a nearby CTAN mirror for future updates; useful if +you installed TeX Live from the DVD image and want continuing updates. +</p> +</dd> +<dt><code>tlmgr update --list</code></dt> +<dd><a name="tlmgr-tlmgr-update-_002d_002dlist"></a> +<p>Report what would be updated without actually updating anything. +</p> +</dd> +<dt><code>tlmgr update --all</code></dt> +<dd><a name="tlmgr-tlmgr-update-_002d_002dall"></a> +<p>Make your local TeX installation correspond to what is in the package +repository (typically useful when updating from CTAN). +</p> +</dd> +<dt><code>tlmgr info</code> <em>pkg</em></dt> +<dd><a name="tlmgr-tlmgr-info-pkg"></a> +<p>Display detailed information about <em>pkg</em>, such as the installation +status and description. +</p> +</dd> +</dl> + +<p>For all the capabilities and details of <code>tlmgr</code>, please read the +following voluminous information. +</p> +<hr> +<a name="tlmgr-OPTIONS"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-ACTIONS" accesskey="n" rel="next">tlmgr ACTIONS</a>, Previous: <a href="#tlmgr-EXAMPLES" accesskey="p" rel="prev">tlmgr EXAMPLES</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="OPTIONS-1"></a> +<h3 class="appendixsec">B.5 OPTIONS</h3> + +<p>The following options to <code>tlmgr</code> are global options, not specific to +any action. All options, whether global or action-specific, can be +given anywhere on the command line, and in any order. The first +non-option argument will be the main action. In all cases, +<code>--</code><em>option</em> and <code>-</code><em>option</em> are equivalent, and an <code>=</code> is optional +between an option name and its value. +</p> +<dl compact="compact"> +<dt><strong>–repository</strong> <em>url|path</em></dt> +<dd><a name="tlmgr-_002d_002drepository-url_007cpath"></a> +<p>Specifies the package repository from which packages should be installed +or updated, overriding the default package repository found in the +installation’s TeX Live Package Database (a.k.a. the TLPDB, defined +entirely in the file <code>tlpkg/texlive.tlpdb</code>). The documentation for +<code>install-tl</code> has more details about this +(<a href="http://tug.org/texlive/doc/install-tl.html">http://tug.org/texlive/doc/install-tl.html</a>). +</p> +<p><code>--repository</code> changes the repository location only for the current +run; to make a permanent change, use <code>option repository</code> (see the +<a href="#tlmgr-option">option</a> action). +</p> +<p>For backward compatibility and convenience, <code>--location</code> and <code>--repo</code> +are accepted as aliases for this option. +</p> +</dd> +<dt><strong>–gui</strong> [<em>action</em>]</dt> +<dd><a name="tlmgr-_002d_002dgui-_005baction_005d"></a> +<p><code>tlmgr</code> has a graphical interface as well as the command line +interface. You can give this option, <code>--gui</code>, together with an action +to be brought directly into the respective screen of the GUI. For +example, running +</p> +<pre class="verbatim"> tlmgr --gui update +</pre> +<p>starts you directly at the update screen. If no action is given, the +GUI will be started at the main screen. +</p> +</dd> +<dt><strong>–gui-lang</strong> <em>llcode</em></dt> +<dd><a name="tlmgr-_002d_002dgui_002dlang-llcode"></a> +<p>By default, the GUI tries to deduce your language from the environment +(on Windows via the registry, on Unix via <code>LC_MESSAGES</code>). If that fails +you can select a different language by giving this option with a +language code (based on ISO 639-1). Currently supported (but not +necessarily completely translated) are: English (en, default), Czech +(cs), German (de), French (fr), Italian (it), Japanese (ja), Dutch (nl), +Polish (pl), Brazilian Portuguese (pt_BR), Russian (ru), Slovak (sk), +Slovenian (sl), Serbian (sr), Ukrainian (uk), Vietnamese (vi), +simplified Chinese (zh_CN), and traditional Chinese (zh_TW). +</p> +</dd> +<dt><strong>–debug-translation</strong></dt> +<dd><a name="tlmgr-_002d_002ddebug_002dtranslation"></a> +<p>In GUI mode, this switch tells <code>tlmgr</code> to report any untranslated (or +missing) messages to standard error. This can help translators to see +what remains to be done. +</p> +</dd> +<dt><strong>–machine-readable</strong></dt> +<dd><a name="tlmgr-_002d_002dmachine_002dreadable"></a> +<p>Instead of the normal output intended for human consumption, write (to +standard output) a fixed format more suitable for machine parsing. See +the <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT">MACHINE-READABLE OUTPUT</a> section below. +</p> +</dd> +<dt><strong>–no-execute-actions</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002dexecute_002dactions"></a> +<p>Suppress the execution of the execute actions as defined in the tlpsrc +files. Documented only for completeness, as this is only useful in +debugging. +</p> +</dd> +<dt><strong>–package-logfile</strong> <em>file</em></dt> +<dd><a name="tlmgr-_002d_002dpackage_002dlogfile-file"></a> +<p><code>tlmgr</code> logs all package actions (install, remove, update, failed +updates, failed restores) to a separate log file, by default +<code>TEXMFSYSVAR/web2c/tlmgr.log</code>. This option allows you to specific a +different file for the log. +</p> +</dd> +<dt><strong>–pause</strong></dt> +<dd><a name="tlmgr-_002d_002dpause"></a> +<p>This option makes <code>tlmgr</code> wait for user input before exiting. Useful on +Windows to avoid disappearing command windows. +</p> +</dd> +<dt><strong>–persistent-downloads</strong></dt> +<dd><a name="tlmgr-_002d_002dpersistent_002ddownloads"></a> +</dd> +<dt><strong>–no-persistent-downloads</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002dpersistent_002ddownloads"></a> +<p>For network-based installations, this option (on by default) makes +<code>tlmgr</code> try to set up a persistent connection (using the <code>LWP</code> Perl +module). The idea is to open and reuse only one connection per session +between your computer and the server, instead of initiating a new +download for each package. +</p> +<p>If this is not possible, <code>tlmgr</code> will fall back to using <code>wget</code>. To +disable these persistent connections, use <code>--no-persistent-downloads</code>. +</p> +</dd> +<dt><strong>–pin-file</strong></dt> +<dd><a name="tlmgr-_002d_002dpin_002dfile"></a> +<p>Change the pinning file location from <code>TEXMFLOCAL/tlpkg/pinning.txt</code> +(see <a href="#tlmgr-Pinning">Pinning</a> below). Documented only for completeness, as this is +only useful in debugging. +</p> +</dd> +<dt><strong>–usermode</strong></dt> +<dd><a name="tlmgr-_002d_002dusermode"></a> +<p>Activates user mode for this run of <code>tlmgr</code>; see <a href="#tlmgr-USER-MODE">USER MODE</a> below. +</p> +</dd> +<dt><strong>–usertree</strong> <em>dir</em></dt> +<dd><a name="tlmgr-_002d_002dusertree-dir"></a> +<p>Uses <em>dir</em> for the tree in user mode; see <a href="#tlmgr-USER-MODE">USER MODE</a> below. +</p> +</dd> +</dl> + +<p>The standard options for TeX Live programs are also accepted: +<code>--help/-h/-?</code>, <code>--version</code>, <code>-q</code> (no informational messages), <code>-v</code> +(debugging messages, can be repeated). For the details about these, see +the <code>TeXLive::TLUtils</code> documentation. +</p> +<p>The <code>--version</code> option shows version information about the TeX Live +release and about the <code>tlmgr</code> script itself. If <code>-v</code> is also given, +revision number for the loaded TeX Live Perl modules are shown, too. +</p> +<hr> +<a name="tlmgr-ACTIONS"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-USER-MODE" accesskey="n" rel="next">tlmgr USER MODE</a>, Previous: <a href="#tlmgr-OPTIONS" accesskey="p" rel="prev">tlmgr OPTIONS</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="ACTIONS"></a> +<h3 class="appendixsec">B.6 ACTIONS</h3> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-help" accesskey="1">tlmgr help</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-version" accesskey="2">tlmgr version</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e" accesskey="3">tlmgr backup [--clean[=<em>N</em>]] [--backupdir <em>dir</em>] [--all | <em>pkg</em>]...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-candidates-pkg" accesskey="4">tlmgr candidates <em>pkg</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d" accesskey="5">tlmgr check [<em>option</em>]... [files|depends|executes|runfiles|all]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d" accesskey="6">tlmgr conf [texmf|tlmgr|updmap [--conffile <em>file</em>] [--delete] [<em>key</em> [<em>value</em>]]]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d" accesskey="7">tlmgr dump-tlpdb [--local|--remote]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-generate-_005boption_005d_002e_002e_002e-what" accesskey="8">tlmgr generate [<em>option</em>]... <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-gui" accesskey="9">tlmgr gui</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d">tlmgr info [<em>option</em>...] [collections|schemes|<em>pkg</em>...]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-init_002dusertree">tlmgr init-usertree</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e">tlmgr install [<em>option</em>]... <em>pkg</em>...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-option">tlmgr option</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-paper">tlmgr paper</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d">tlmgr path [--w32mode=user|admin] [add|remove]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-pinning">tlmgr pinning</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-platform-list_007cadd_007cremove-platform_002e_002e_002e">tlmgr platform list|add|remove <em>platform</em>...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-platform-set-platform">tlmgr platform set <em>platform</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-platform-set-auto">tlmgr platform set auto</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e">tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [<em>pkg</em>]...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-print_002dplatform">tlmgr print-platform</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d">tlmgr restore [--backupdir <em>dir</em>] [--all | <em>pkg</em> [<em>rev</em>]]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e">tlmgr remove [<em>option</em>]... <em>pkg</em>...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-repository">tlmgr repository</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what">tlmgr search [<em>option</em>...] <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-uninstall">tlmgr uninstall</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e">tlmgr update [<em>option</em>]... [<em>pkg</em>]...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-help"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-version" accesskey="n" rel="next">tlmgr version</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="help"></a> +<h4 class="appendixsubsec">B.6.1 help</h4> + +<p>Display this help information and exit (same as <code>--help</code>, and on the +web at <a href="http://tug.org/texlive/doc/tlmgr.html">http://tug.org/texlive/doc/tlmgr.html</a>). Sometimes the +<code>perldoc</code> and/or <code>PAGER</code> programs on the system have problems, +resulting in control characters being literally output. This can’t +always be detected, but you can set the <code>NOPERLDOC</code> environment +variable and <code>perldoc</code> will not be used. +</p> +<hr> +<a name="tlmgr-version"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e" accesskey="n" rel="next">tlmgr backup [--clean[=<em>N</em>]] [--backupdir <em>dir</em>] [--all | <em>pkg</em>]...</a>, Previous: <a href="#tlmgr-help" accesskey="p" rel="prev">tlmgr help</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="version"></a> +<h4 class="appendixsubsec">B.6.2 version</h4> + +<p>Gives version information (same as <code>--version</code>). +</p> +<p>If <code>-v</code> has been given the revisions of the used modules are reported, too. +</p> +<hr> +<a name="tlmgr-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-candidates-pkg" accesskey="n" rel="next">tlmgr candidates <em>pkg</em></a>, Previous: <a href="#tlmgr-version" accesskey="p" rel="prev">tlmgr version</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.3 backup [–clean[=<em>N</em>]] [–backupdir <em>dir</em>] [–all | <em>pkg</em>]...</h4> + +<p>If the <code>--clean</code> option is not specified, this action makes a backup of +the given packages, or all packages given <code>--all</code>. These backups are +saved to the value of the <code>--backupdir</code> option, if that is an existing and +writable directory. If <code>--backupdir</code> is not given, the <code>backupdir</code> +option setting in the TLPDB is used, if present. If both are missing, +no backups are made. +</p> +<p>If the <code>--clean</code> option is specified, backups are pruned (removed) +instead of saved. The optional integer value <em>N</em> may be specified to +set the number of backups that will be retained when cleaning. If <code>N</code> +is not given, the value of the <code>autobackup</code> option is used. If both are +missing, an error is issued. For more details of backup pruning, see +the <code>option</code> action. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–backupdir</strong> <em>directory</em></dt> +<dd><a name="tlmgr-_002d_002dbackupdir-directory"></a> +<p>Overrides the <code>backupdir</code> option setting in the TLPDB. +The <em>directory</em> argument is required and must specify an existing, +writable directory where backups are to be placed. +</p> +</dd> +<dt><strong>–all</strong></dt> +<dd><a name="tlmgr-_002d_002dall"></a> +<p>If <code>--clean</code> is not specified, make a backup of all packages in the TeX +Live installation; this will take quite a lot of space and time. If +<code>--clean</code> is specified, all packages are pruned. +</p> +</dd> +<dt><strong>–clean</strong>[=<em>N</em>]</dt> +<dd><a name="tlmgr-_002d_002dclean_005b_003dN_005d"></a> +<p>Instead of making backups, prune the backup directory of old backups, as +explained above. The optional integer argument <em>N</em> overrides the +<code>autobackup</code> option set in the TLPDB. You must use <code>--all</code> or a list +of packages together with this option, as desired. +</p> +</dd> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun"></a> +<p>Nothing is actually backed up or removed; instead, the actions to be +performed are written to the terminal. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-candidates-pkg"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d" accesskey="n" rel="next">tlmgr check [<em>option</em>]... [files|depends|executes|runfiles|all]</a>, Previous: <a href="#tlmgr-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e" accesskey="p" rel="prev">tlmgr backup [--clean[=<em>N</em>]] [--backupdir <em>dir</em>] [--all | <em>pkg</em>]...</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="candidates-pkg"></a> +<h4 class="appendixsubsec">B.6.4 candidates <em>pkg</em></h4> + +<dl compact="compact"> +<dt><strong>candidates <em>pkg</em></strong></dt> +<dd><a name="tlmgr-candidates-pkg-1"></a> +<p>Shows the available candidate repositories for package <em>pkg</em>. +See <a href="#tlmgr-MULTIPLE-REPOSITORIES">MULTIPLE REPOSITORIES</a> below. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d" accesskey="n" rel="next">tlmgr conf [texmf|tlmgr|updmap [--conffile <em>file</em>] [--delete] [<em>key</em> [<em>value</em>]]]</a>, Previous: <a href="#tlmgr-candidates-pkg" accesskey="p" rel="prev">tlmgr candidates <em>pkg</em></a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d"></a> +<h4 class="appendixsubsec">B.6.5 check [<em>option</em>]... [files|depends|executes|runfiles|all]</h4> + +<p>Executes one (or all) check(s) on the consistency of the installation. +</p> +<dl compact="compact"> +<dt><strong>files</strong></dt> +<dd><a name="tlmgr-files"></a> +<p>Checks that all files listed in the local TLPDB (<code>texlive.tlpdb</code>) are +actually present, and lists those missing. +</p> +</dd> +<dt><strong>depends</strong></dt> +<dd><a name="tlmgr-depends"></a> +<p>Lists those packages which occur as dependencies in an installed collections, +but are themselves not installed, and those packages that are not +contained in any collection. +</p> +<p>If you call <code>tlmgr check collections</code> this test will be carried out +instead since former versions for <code>tlmgr</code> called it that way. +</p> +</dd> +<dt><strong>executes</strong></dt> +<dd><a name="tlmgr-executes"></a> +<p>Check that the files referred to by <code>execute</code> directives in the TeX +Live Database are present. +</p> +</dd> +<dt><strong>runfiles</strong></dt> +<dd><a name="tlmgr-runfiles"></a> +<p>List those filenames that are occurring more than one time in the runfiles. +</p> +</dd> +</dl> + +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–use-svn</strong></dt> +<dd><a name="tlmgr-_002d_002duse_002dsvn"></a> +<p>Use the output of <code>svn status</code> instead of listing the files; for +checking the TL development repository. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d" accesskey="n" rel="next">tlmgr dump-tlpdb [--local|--remote]</a>, Previous: <a href="#tlmgr-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d" accesskey="p" rel="prev">tlmgr check [<em>option</em>]... [files|depends|executes|runfiles|all]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d"></a> +<h4 class="appendixsubsec">B.6.6 conf [texmf|tlmgr|updmap [–conffile <em>file</em>] [–delete] [<em>key</em> [<em>value</em>]]]</h4> + +<p>With only <code>conf</code>, show general configuration information for TeX Live, +including active configuration files, path settings, and more. This is +like the <code>texconfig conf</code> call, but works on all supported platforms. +</p> +<p>With either <code>conf texmf</code>, <code>conf tlmgr</code>, or <code>conf updmap</code> given in +addition, shows all key/value pairs (i.e., all settings) as saved in +<code>ROOT/texmf.cnf</code>, the tlmgr configuration file (see below), or the +first found (via kpsewhich) <code>updmap.cfg</code> file, respectively. +</p> +<p>If <em>key</em> is given in addition, shows the value of only that <em>key</em> in +the respective file. If option <em>–delete</em> is also given, the +configuration file – it is removed, not just commented out! +</p> +<p>If <em>value</em> is given in addition, <em>key</em> is set to <em>value</em> in the +respective file. <em>No error checking is done!</em> +</p> +<p>In all cases the file used can be explicitly specified via the option +<code>--conffile <em>file</em></code>, in case one wants to operate on a different file. +</p> +<p>Practical application: if the execution of (some or all) system commands +via <code>\write18</code> was left enabled during installation, you can disable +it afterwards: +</p> +<pre class="verbatim"> tlmgr conf texmf shell_escape 0 +</pre> +<p>A more complicated example: the <code>TEXMFHOME</code> tree (see the main TeX Live +guide, <a href="http://tug.org/texlive/doc.html">http://tug.org/texlive/doc.html</a>) can be set to multiple +directories, but they must be enclosed in braces and separated by +commas, so quoting the value to the shell is a good idea. Thus: +</p> +<pre class="verbatim"> tlmgr conf texmf TEXMFHOME "{~/texmf,~/texmfbis}" +</pre> +<p>Warning: The general facility is here, but tinkering with settings in +this way is very strongly discouraged. Again, no error checking on +either keys or values is done, so any sort of breakage is possible. +</p> +<hr> +<a name="tlmgr-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-generate-_005boption_005d_002e_002e_002e-what" accesskey="n" rel="next">tlmgr generate [<em>option</em>]... <em>what</em></a>, Previous: <a href="#tlmgr-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d" accesskey="p" rel="prev">tlmgr conf [texmf|tlmgr|updmap [--conffile <em>file</em>] [--delete] [<em>key</em> [<em>value</em>]]]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d"></a> +<h4 class="appendixsubsec">B.6.7 dump-tlpdb [–local|–remote]</h4> + +<p>Dump complete local or remote TLPDB to standard output, as-is. The +output is analogous to the <code>--machine-readable</code> output; see +<a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT">MACHINE-READABLE OUTPUT</a> section. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–local</strong></dt> +<dd><a name="tlmgr-_002d_002dlocal"></a> +<p>Dump the local tlpdb. +</p> +</dd> +<dt><strong>–remote</strong></dt> +<dd><a name="tlmgr-_002d_002dremote"></a> +<p>Dump the remote tlpdb. +</p> +</dd> +</dl> + +<p>Exactly one of <code>--local</code> and <code>--remote</code> must be given. +</p> +<p>In either case, the first line of the output specifies the repository +location, in this format: +</p> +<pre class="verbatim"> "location-url" "\t" location +</pre> +<p>where <code>location-url</code> is the literal field name, followed by a tab, and +<em>location</em> is the file or url to the repository. +</p> +<p>Line endings may be either LF or CRLF depending on the current platform. +</p> +<hr> +<a name="tlmgr-generate-_005boption_005d_002e_002e_002e-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-gui" accesskey="n" rel="next">tlmgr gui</a>, Previous: <a href="#tlmgr-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d" accesskey="p" rel="prev">tlmgr dump-tlpdb [--local|--remote]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="generate-_005boption_005d_002e_002e_002e-what"></a> +<h4 class="appendixsubsec">B.6.8 generate [<em>option</em>]... <em>what</em></h4> + +<dl compact="compact"> +<dt><strong>generate language</strong></dt> +<dd><a name="tlmgr-generate-language"></a> +</dd> +<dt><strong>generate language.dat</strong></dt> +<dd><a name="tlmgr-generate-language_002edat"></a> +</dd> +<dt><strong>generate language.def</strong></dt> +<dd><a name="tlmgr-generate-language_002edef"></a> +</dd> +<dt><strong>generate language.dat.lua</strong></dt> +<dd><a name="tlmgr-generate-language_002edat_002elua"></a> +</dd> +<dt><strong>generate fmtutil</strong></dt> +<dd><a name="tlmgr-generate-fmtutil"></a> +</dd> +</dl> + +<p>The <code>generate</code> action overwrites any manual changes made in the +respective files: it recreates them from scratch based on the +information of the installed packages, plus local adaptions. +The TeX Live installer and <code>tlmgr</code> routinely call <code>generate</code> for +all of these files. +</p> +<p>For managing your own fonts, please read the <code>updmap --help</code> +information and/or <a href="http://tug.org/fonts/fontinstall.html">http://tug.org/fonts/fontinstall.html</a>. +</p> +<p>In more detail: <code>generate</code> remakes any of the configuration files +<code>language.dat</code>, <code>language.def</code>, <code>language.dat.lua</code>, and +<code>fmtutil.cnf</code>, from the information present in the local TLPDB, plus +locally-maintained files. +</p> +<p>The locally-maintained files are <code>language-local.dat</code>, +<code>language-local.def</code>, <code>language-local.dat.lua</code>, or +<code>fmtutil-local.cnf</code>, searched for in <code>TEXMFLOCAL</code> in the respective +directories. If local additions are present, the final file is made by +starting with the main file, omitting any entries that the local file +specifies to be disabled, and finally appending the local file. +</p> +<p>(Historical note: The formerly supported <code>updmap-local.cfg</code> is no longer +read, since <code>updmap</code> now supports multiple <code>updmap.cfg</code> files. Thus, +local additions can and should be put into an <code>updmap.cfg</code> file in +<code>TEXMFLOCAL</code>. The <code>generate updmap</code> action no longer exists.) +</p> +<p>Local files specify entries to be disabled with a comment line, namely +one of these: +</p> +<pre class="verbatim"> #!NAME + %!NAME + --!NAME +</pre> +<p>where <code>fmtutil.cnf</code> uses <code>#</code>, <code>language.dat</code> and <code>language.def</code> use +<code>%</code>, and <code>language.dat.lua</code> use <code>--</code>. In all cases, the <em>name</em> is +the respective format name or hyphenation pattern identifier. +Examples: +</p> +<pre class="verbatim"> #!pdflatex + %!german + --!usenglishmax +</pre> +<p>(Of course, you’re not likely to actually want to disable those +particular items. They’re just examples.) +</p> +<p>After such a disabling line, the local file can include another entry +for the same item, if a different definition is desired. In general, +except for the special disabling lines, the local files follow the same +syntax as the master files. +</p> +<p>The form <code>generate language</code> recreates all three files <code>language.dat</code>, +<code>language.def</code>, and <code>language.dat.lua</code>, while the forms with an +extension recreates only that given language file. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–dest</strong> <em>output_file</em></dt> +<dd><a name="tlmgr-_002d_002ddest-output_005ffile"></a> +<p>specifies the output file (defaults to the respective location in +<code>TEXMFSYSVAR</code>). If <code>--dest</code> is given to <code>generate language</code>, it +serves as a basename onto which <code>.dat</code> will be appended for the name of +the <code>language.dat</code> output file, <code>.def</code> will be appended to the value +for the name of the <code>language.def</code> output file, and <code>.dat.lua</code> to the +name of the <code>language.dat.lua</code> file. (This is just to avoid +overwriting; if you want a specific name for each output file, we +recommend invoking <code>tlmgr</code> twice.) +</p> +</dd> +<dt><strong>–localcfg</strong> <em>local_conf_file</em></dt> +<dd><a name="tlmgr-_002d_002dlocalcfg-local_005fconf_005ffile"></a> +<p>specifies the (optional) local additions (defaults to the respective +location in <code>TEXMFLOCAL</code>). +</p> +</dd> +<dt><strong>–rebuild-sys</strong></dt> +<dd><a name="tlmgr-_002d_002drebuild_002dsys"></a> +<p>tells tlmgr to run necessary programs after config files have been +regenerated. These are: +<code>fmtutil-sys --all</code> after <code>generate fmtutil</code>, +<code>fmtutil-sys --byhyphen .../language.dat</code> after <code>generate language.dat</code>, +and +<code>fmtutil-sys --byhyphen .../language.def</code> after <code>generate language.def</code>. +</p> +<p>These subsequent calls cause the newly-generated files to actually take +effect. This is not done by default since those calls are lengthy +processes and one might want to made several related changes in +succession before invoking these programs. +</p> +</dd> +</dl> + +<p>The respective locations are as follows: +</p> +<pre class="verbatim"> tex/generic/config/language.dat (and language-local.dat); + tex/generic/config/language.def (and language-local.def); + tex/generic/config/language.dat.lua (and language-local.dat.lua); + web2c/fmtutil.cnf (and fmtutil-local.cnf); +</pre> +<hr> +<a name="tlmgr-gui"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d" accesskey="n" rel="next">tlmgr info [<em>option</em>...] [collections|schemes|<em>pkg</em>...]</a>, Previous: <a href="#tlmgr-generate-_005boption_005d_002e_002e_002e-what" accesskey="p" rel="prev">tlmgr generate [<em>option</em>]... <em>what</em></a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="gui"></a> +<h4 class="appendixsubsec">B.6.9 gui</h4> + +<p>Start the graphical user interface. See <strong>GUI</strong> below. +</p> +<hr> +<a name="tlmgr-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-init_002dusertree" accesskey="n" rel="next">tlmgr init-usertree</a>, Previous: <a href="#tlmgr-gui" accesskey="p" rel="prev">tlmgr gui</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d"></a> +<h4 class="appendixsubsec">B.6.10 info [<em>option</em>...] [collections|schemes|<em>pkg</em>...]</h4> + +<p>With no argument, lists all packages available at the package +repository, prefixing those already installed with <code>i</code>. +</p> +<p>With the single word <code>collections</code> or <code>schemes</code> as the argument, lists +the request type instead of all packages. +</p> +<p>With any other arguments, display information about <em>pkg</em>: the name, +category, short and long description, installation status, and TeX Live +revision number. If <em>pkg</em> is not locally installed, searches in the +remote installation source. +</p> +<p>It also displays information taken from the TeX Catalogue, namely the +package version, date, and license. Consider these, especially the +package version, as approximations only, due to timing skew of the +updates of the different pieces. By contrast, the <code>revision</code> value +comes directly from TL and is reliable. +</p> +<p>The former actions <code>show</code> and <code>list</code> are merged into this action, +but are still supported for backward compatibility. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–list</strong></dt> +<dd><a name="tlmgr-_002d_002dlist"></a> +<p>If the option <code>--list</code> is given with a package, the list of contained +files is also shown, including those for platform-specific dependencies. +When given with schemes and collections, <code>--list</code> outputs their +dependencies in a similar way. +</p> +</dd> +<dt><strong>–only-installed</strong></dt> +<dd><a name="tlmgr-_002d_002donly_002dinstalled"></a> +<p>If this options is given, the installation source will +not be used; only locally installed packages, collections, or schemes +are listed. +(Does not work for listing of packages for now) +</p> +</dd> +<dt><strong>–taxonomy</strong></dt> +<dd><a name="tlmgr-_002d_002dtaxonomy"></a> +</dd> +<dt><strong>–keyword</strong></dt> +<dd><a name="tlmgr-_002d_002dkeyword"></a> +</dd> +<dt><strong>–functionality</strong></dt> +<dd><a name="tlmgr-_002d_002dfunctionality"></a> +</dd> +<dt><strong>–characterization</strong></dt> +<dd><a name="tlmgr-_002d_002dcharacterization"></a> +<p>In addition to the normal data displayed, also display information for +given packages from the corresponding taxonomy (or all of them). See +<a href="#tlmgr-TAXONOMIES">TAXONOMIES</a> below for details. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-init_002dusertree"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" accesskey="n" rel="next">tlmgr install [<em>option</em>]... <em>pkg</em>...</a>, Previous: <a href="#tlmgr-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d" accesskey="p" rel="prev">tlmgr info [<em>option</em>...] [collections|schemes|<em>pkg</em>...]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="init_002dusertree"></a> +<h4 class="appendixsubsec">B.6.11 init-usertree</h4> + +<p>Sets up a texmf tree for so-called user mode management, either the +default user tree (<code>TEXMFHOME</code>), or one specified on the command line +with <code>--usertree</code>. See <a href="#tlmgr-USER-MODE">USER MODE</a> below. +</p> +<hr> +<a name="tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-option" accesskey="n" rel="next">tlmgr option</a>, Previous: <a href="#tlmgr-init_002dusertree" accesskey="p" rel="prev">tlmgr init-usertree</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.12 install [<em>option</em>]... <em>pkg</em>...</h4> + +<p>Install each <em>pkg</em> given on the command line. By default this installs +all packages on which the given <em>pkg</em>s are dependent, also. Options: +</p> +<dl compact="compact"> +<dt><strong>–file</strong></dt> +<dd><a name="tlmgr-_002d_002dfile"></a> +<p>Instead of fetching a package from the installation repository, use +the package files given on the command line. These files must +be standard TeX Live package files (with contained tlpobj file). +</p> +</dd> +<dt><strong>–reinstall</strong></dt> +<dd><a name="tlmgr-_002d_002dreinstall"></a> +<p>Reinstall a package (including dependencies for collections) even if it +already seems to be installed (i.e, is present in the TLPDB). This is +useful to recover from accidental removal of files in the hierarchy. +</p> +<p>When re-installing, only dependencies on normal packages are followed +(i.e., not those of category Scheme or Collection). +</p> +</dd> +<dt><strong>–no-depends</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends"></a> +<p>Do not install dependencies. (By default, installing a package ensures +that all dependencies of this package are fulfilled.) +</p> +</dd> +<dt><strong>–no-depends-at-all</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends_002dat_002dall"></a> +<p>Normally, when you install a package which ships binary files the +respective binary package will also be installed. That is, for a +package <code>foo</code>, the package <code>foo.i386-linux</code> will also be installed on +an <code>i386-linux</code> system. This option suppresses this behavior, and also +implies <code>--no-depends</code>. Don’t use it unless you are sure of what you +are doing. +</p> +</dd> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun-1"></a> +<p>Nothing is actually installed; instead, the actions to be performed are +written to the terminal. +</p> +</dd> +<dt><strong>–force</strong></dt> +<dd><a name="tlmgr-_002d_002dforce"></a> +<p>If updates to <code>tlmgr</code> itself (or other parts of the basic +infrastructure) are present, <code>tlmgr</code> will bail out and not perform the +installation unless this option is given. Not recommended. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-option"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-paper" accesskey="n" rel="next">tlmgr paper</a>, Previous: <a href="#tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" accesskey="p" rel="prev">tlmgr install [<em>option</em>]... <em>pkg</em>...</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="option"></a> +<h4 class="appendixsubsec">B.6.13 option</h4> + +<dl compact="compact"> +<dt><strong>option [show]</strong></dt> +<dd><a name="tlmgr-option-_005bshow_005d"></a> +</dd> +<dt><strong>option showall</strong></dt> +<dd><a name="tlmgr-option-showall"></a> +</dd> +<dt><strong>option <em>key</em> [<em>value</em>]</strong></dt> +<dd><a name="tlmgr-option-key-_005bvalue_005d"></a> +</dd> +</dl> + +<p>The first form shows the global TeX Live settings currently saved in the +TLPDB with a short description and the <code>key</code> used for changing it in +parentheses. +</p> +<p>The second form is similar, but also shows options which can be defined +but are not currently set to any value. +</p> +<p>In the third form, if <em>value</em> is not given, the setting for <em>key</em> is +displayed. If <em>value</em> is present, <em>key</em> is set to <em>value</em>. +</p> +<p>Possible values for <em>key</em> are (run <code>tlmgr option showall</code> for +the definitive list): +</p> +<pre class="verbatim"> repository (default package repository), + formats (create formats at installation time), + postcode (run postinst code blobs) + docfiles (install documentation files), + srcfiles (install source files), + backupdir (default directory for backups), + autobackup (number of backups to keep). + sys_bin (directory to which executables are linked by the path action) + sys_man (directory to which man pages are linked by the path action) + sys_info (directory to which Info files are linked by the path action) + desktop_integration (Windows-only: create Start menu shortcuts) + fileassocs (Windows-only: change file associations) + multiuser (Windows-only: install for all users) +</pre> +<p>One common use of <code>option</code> is to permanently change the installation to +get further updates from the Internet, after originally installing from +DVD. To do this, you can run +</p> +<pre class="verbatim"> tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet +</pre> +<p>The <code>install-tl</code> documentation has more information about the possible +values for <code>repository</code>. (For backward compatibility, <code>location</code> can +be used as alternative name for <code>repository</code>.) +</p> +<p>If <code>formats</code> is set (this is the default), then formats are regenerated +when either the engine or the format files have changed. Disable this +only when you know what you are doing. +</p> +<p>The <code>postcode</code> option controls execution of per-package +postinstallation action code. It is set by default, and again disabling +is not likely to be of interest except perhaps to developers. +</p> +<p>The <code>docfiles</code> and <code>srcfiles</code> options control the installation of +their respective files of a package. By default both are enabled (1). +This can be disabled (set to 0) if disk space is (very) limited. +</p> +<p>The options <code>autobackup</code> and <code>backupdir</code> determine the defaults for +the actions <code>update</code>, <code>backup</code> and <code>restore</code>. These three actions +need a directory in which to read or write the backups. If +<code>--backupdir</code> is not specified on the command line, the <code>backupdir</code> +option value is used (if set). +</p> +<p>The <code>autobackup</code> option (de)activates automatic generation of backups. +Its value is an integer. If the <code>autobackup</code> value is <code>-1</code>, no +backups are removed. If <code>autobackup</code> is 0 or more, it specifies the +number of backups to keep. Thus, backups are disabled if the value is +0. In the <code>--clean</code> mode of the <code>backup</code> action this option also +specifies the number to be kept. +</p> +<p>To setup <code>autobackup</code> to <code>-1</code> on the command line, use: +</p> +<pre class="verbatim"> tlmgr option -- autobackup -1 +</pre> +<p>The <code>--</code> avoids having the <code>-1</code> treated as an option. (<code>--</code> stops +parsing for options at the point where it appears; this is a general +feature across most Unix programs.) +</p> +<p>The <code>sys_bin</code>, <code>sys_man</code>, and <code>sys_info</code> options are used on +Unix-like systems to control the generation of links for executables, +info files and man pages. See the <code>path</code> action for details. +</p> +<p>The last three options control behaviour on Windows installations. If +<code>desktop_integration</code> is set, then some packages will install items in +a sub-folder of the Start menu for <code>tlmgr gui</code>, documentation, etc. If +<code>fileassocs</code> is set, Windows file associations are made (see also the +<code>postaction</code> action). Finally, if <code>multiuser</code> is set, then adaptions +to the registry and the menus are done for all users on the system +instead of only the current user. All three options are on by default. +</p> +<hr> +<a name="tlmgr-paper"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d" accesskey="n" rel="next">tlmgr path [--w32mode=user|admin] [add|remove]</a>, Previous: <a href="#tlmgr-option" accesskey="p" rel="prev">tlmgr option</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="paper"></a> +<h4 class="appendixsubsec">B.6.14 paper</h4> + +<dl compact="compact"> +<dt><strong>paper [a4|letter]</strong></dt> +<dd><a name="tlmgr-paper-_005ba4_007cletter_005d"></a> +</dd> +<dt><strong>[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [<em>papersize</em>|–list]<!-- /@w --></strong></dt> +<dd><a name="tlmgr-_005bxdvi_007cpdftex_007cdvips_007cdvipdfmx_007ccontext_007cpsutils_005d-paper-_005bpapersize_007c_002d_002dlist_005d"></a> +</dd> +</dl> + +<p>With no arguments (<code>tlmgr paper</code>), shows the default paper size setting +for all known programs. +</p> +<p>With one argument (e.g., <code>tlmgr paper a4</code>), sets the default for all +known programs to that paper size. +</p> +<p>With a program given as the first argument and no paper size specified +(e.g., <code>tlmgr dvips paper</code>), shows the default paper size for that +program. +</p> +<p>With a program given as the first argument and a paper size as the last +argument (e.g., <code>tlmgr dvips paper a4</code>), set the default for that +program to that paper size. +</p> +<p>With a program given as the first argument and <code>--list</code> given as the +last argument (e.g., <code>tlmgr dvips paper --list</code>), shows all valid paper +sizes for that program. The first size shown is the default. +</p> +<p>Incidentally, this syntax of having a specific program name before the +<code>paper</code> keyword is unusual. It is inherited from the longstanding +<code>texconfig</code> script, which supports other configuration settings for +some programs, notably <code>dvips</code>. <code>tlmgr</code> does not support those extra +settings. +</p> +<hr> +<a name="tlmgr-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-pinning" accesskey="n" rel="next">tlmgr pinning</a>, Previous: <a href="#tlmgr-paper" accesskey="p" rel="prev">tlmgr paper</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d"></a> +<h4 class="appendixsubsec">B.6.15 path [–w32mode=user|admin] [add|remove]</h4> + +<p>On Unix, merely adds or removes symlinks for binaries, man pages, and +info pages in the system directories specified by the respective options +(see the <a href="#tlmgr-option">option</a> description above). Does not change any +initialization files, either system or personal. +</p> +<p>On Windows, the registry part where the binary directory is added or +removed is determined in the following way: +</p> +<p>If the user has admin rights, and the option <code>--w32mode</code> is not given, +the setting <em>w32_multi_user</em> determines the location (i.e., if it is +on then the system path, otherwise the user path is changed). +</p> +<p>If the user has admin rights, and the option <code>--w32mode</code> is given, this +option determines the path to be adjusted. +</p> +<p>If the user does not have admin rights, and the option <code>--w32mode</code> +is not given, and the setting <em>w32_multi_user</em> is off, the user path +is changed, while if the setting <em>w32_multi_user</em> is on, a warning is +issued that the caller does not have enough privileges. +</p> +<p>If the user does not have admin rights, and the option <code>--w32mode</code> +is given, it must be <strong>user</strong> and the user path will be adjusted. If a +user without admin rights uses the option <code>--w32mode admin</code> a warning +is issued that the caller does not have enough privileges. +</p> +<hr> +<a name="tlmgr-pinning"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-platform-list_007cadd_007cremove-platform_002e_002e_002e" accesskey="n" rel="next">tlmgr platform list|add|remove <em>platform</em>...</a>, Previous: <a href="#tlmgr-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d" accesskey="p" rel="prev">tlmgr path [--w32mode=user|admin] [add|remove]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="pinning"></a> +<h4 class="appendixsubsec">B.6.16 pinning</h4> + +<p>The <code>pinning</code> action manages the pinning file, see <a href="#tlmgr-Pinning">Pinning</a> below. +</p> +<dl compact="compact"> +<dt><code>pinning show</code></dt> +<dd><a name="tlmgr-pinning-show"></a> +<p>Shows the current pinning data. +</p> +</dd> +<dt><code>pinning add</code> <em>repo</em> <em>pkgglob</em>...</dt> +<dd><a name="tlmgr-pinning-add-repo-pkgglob_002e_002e_002e"></a> +<p>Pins the packages matching the <em>pkgglob</em>(s) to the repository +<em>repo</em>. +</p> +</dd> +<dt><code>pinning remove</code> <em>repo</em> <em>pkgglob</em>...</dt> +<dd><a name="tlmgr-pinning-remove-repo-pkgglob_002e_002e_002e"></a> +<p>Any packages recorded in the pinning file matching the <pkgglob>s for +the given repository <em>repo</em> are removed. +</p> +</dd> +<dt><code>pinning remove <em>repo</em> --all</code></dt> +<dd><a name="tlmgr-pinning-remove-repo-_002d_002dall"></a> +<p>Remove all pinning data for repository <em>repo</em>. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-platform-list_007cadd_007cremove-platform_002e_002e_002e"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-platform-set-platform" accesskey="n" rel="next">tlmgr platform set <em>platform</em></a>, Previous: <a href="#tlmgr-pinning" accesskey="p" rel="prev">tlmgr pinning</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="platform-list_007cadd_007cremove-platform_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.17 platform list|add|remove <em>platform</em>...</h4> + +<hr> +<a name="tlmgr-platform-set-platform"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-platform-set-auto" accesskey="n" rel="next">tlmgr platform set auto</a>, Previous: <a href="#tlmgr-platform-list_007cadd_007cremove-platform_002e_002e_002e" accesskey="p" rel="prev">tlmgr platform list|add|remove <em>platform</em>...</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="platform-set-platform"></a> +<h4 class="appendixsubsec">B.6.18 platform set <em>platform</em></h4> + +<hr> +<a name="tlmgr-platform-set-auto"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e" accesskey="n" rel="next">tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [<em>pkg</em>]...</a>, Previous: <a href="#tlmgr-platform-set-platform" accesskey="p" rel="prev">tlmgr platform set <em>platform</em></a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="platform-set-auto"></a> +<h4 class="appendixsubsec">B.6.19 platform set auto</h4> + +<p><code>platform list</code> lists the TeX Live names of all the platforms +(a.k.a. architectures), (<code>i386-linux</code>, ...) available at the package +repository. +</p> +<p><code>platform add</code> <em>platform</em>... adds the executables for each given platform +<em>platform</em> to the installation from the repository. +</p> +<p><code>platform remove</code> <em>platform</em>... removes the executables for each given +platform <em>platform</em> from the installation, but keeps the currently +running platform in any case. +</p> +<p><code>platform set</code> <em>platform</em> switches TeX Live to always use the given +platform instead of auto detection. +</p> +<p><code>platform set auto</code> switches TeX Live to auto detection mode for platform. +</p> +<p>Platform detection is needed to select the proper <code>xz</code>, <code>xzdec</code> and +<code>wget</code> binaries that are shipped with TeX Live. +</p> +<p><code>arch</code> is a synonym for <code>platform</code>. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun-2"></a> +<p>Nothing is actually installed; instead, the actions to be performed are +written to the terminal. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-print_002dplatform" accesskey="n" rel="next">tlmgr print-platform</a>, Previous: <a href="#tlmgr-platform-set-auto" accesskey="p" rel="prev">tlmgr platform set auto</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.20 postaction [–w32mode=user|admin] [–fileassocmode=1|2] [–all] [install|remove] [shortcut|fileassoc|script] [<em>pkg</em>]...</h4> + +<p>Carry out the postaction <code>shortcut</code>, <code>fileassoc</code>, or <code>script</code> given +as the second required argument in install or remove mode (which is the +first required argument), for either the packages given on the command +line, or for all if <code>--all</code> is given. +</p> +<p>If the option <code>--w32mode</code> is given the value <code>user</code>, all actions will +only be carried out in the user-accessible parts of the +registry/filesystem, while the value <code>admin</code> selects the system-wide +parts of the registry for the file associations. If you do not have +enough permissions, using <code>--w32mode=admin</code> will not succeed. +</p> +<p><code>--fileassocmode</code> specifies the action for file associations. If it is +set to 1 (the default), only new associations are added; if it is set to +2, all associations are set to the TeX Live programs. (See also +<code>option fileassocs</code>.) +</p> +<hr> +<a name="tlmgr-print_002dplatform"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d" accesskey="n" rel="next">tlmgr restore [--backupdir <em>dir</em>] [--all | <em>pkg</em> [<em>rev</em>]]</a>, Previous: <a href="#tlmgr-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e" accesskey="p" rel="prev">tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [<em>pkg</em>]...</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="print_002dplatform"></a> +<h4 class="appendixsubsec">B.6.21 print-platform</h4> + +<p>Print the TeX Live identifier for the detected platform +(hardware/operating system) combination to standard output, and exit. +<code>--print-arch</code> is a synonym. +</p> +<hr> +<a name="tlmgr-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" accesskey="n" rel="next">tlmgr remove [<em>option</em>]... <em>pkg</em>...</a>, Previous: <a href="#tlmgr-print_002dplatform" accesskey="p" rel="prev">tlmgr print-platform</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d"></a> +<h4 class="appendixsubsec">B.6.22 restore [–backupdir <em>dir</em>] [–all | <em>pkg</em> [<em>rev</em>]]</h4> + +<p>Restore a package from a previously-made backup. +</p> +<p>If <code>--all</code> is given, try to restore the latest revision of all +package backups found in the backup directory. +</p> +<p>Otherwise, if neither <em>pkg</em> nor <em>rev</em> are given, list the available backup +revisions for all packages. +</p> +<p>With <em>pkg</em> given but no <em>rev</em>, list all available backup revisions of +<em>pkg</em>. +</p> +<p>When listing available packages tlmgr shows the revision and in +parenthesis the creation time if available (in format yyyy-mm-dd hh:mm). +</p> +<p>With both <em>pkg</em> and <em>rev</em>, tries to restore the package from the +specified backup. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–all</strong></dt> +<dd><a name="tlmgr-_002d_002dall-1"></a> +<p>Try to restore the latest revision of all package backups found in the +backup directory. Additional non-option arguments (like <em>pkg</em>) are not +allowed. +</p> +</dd> +<dt><strong>–backupdir</strong> <em>directory</em></dt> +<dd><a name="tlmgr-_002d_002dbackupdir-directory-1"></a> +<p>Specify the directory where the backups are to be found. If not given it +will be taken from the configuration setting in the TLPDB. +</p> +</dd> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun-3"></a> +<p>Nothing is actually restored; instead, the actions to be performed are +written to the terminal. +</p> +</dd> +<dt><strong>–force</strong></dt> +<dd><a name="tlmgr-_002d_002dforce-1"></a> +<p>Don’t ask questions. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-repository" accesskey="n" rel="next">tlmgr repository</a>, Previous: <a href="#tlmgr-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d" accesskey="p" rel="prev">tlmgr restore [--backupdir <em>dir</em>] [--all | <em>pkg</em> [<em>rev</em>]]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.23 remove [<em>option</em>]... <em>pkg</em>...</h4> + +<p>Remove each <em>pkg</em> specified. Removing a collection removes all package +dependencies (unless <code>--no-depends</code> is specified), but not any +collection dependencies of that collection. However, when removing a +package, dependencies are never removed. Options: +</p> +<dl compact="compact"> +<dt><strong>–no-depends</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends-1"></a> +<p>Do not remove dependent packages. +</p> +</dd> +<dt><strong>–no-depends-at-all</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends_002dat_002dall-1"></a> +<p>See above under <strong>install</strong> (and beware). +</p> +</dd> +<dt><strong>–force</strong></dt> +<dd><a name="tlmgr-_002d_002dforce-2"></a> +<p>By default, removal of a package or collection that is a dependency of +another collection or scheme is not allowed. With this option, the +package will be removed unconditionally. Use with care. +</p> +<p>A package that has been removed using the <code>--force</code> option because it +is still listed in an installed collection or scheme will not be +updated, and will be mentioned as <strong>forcibly removed</strong> in the output of +<strong>tlmgr update –list</strong>. +</p> +</dd> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun-4"></a> +<p>Nothing is actually removed; instead, the actions to be performed are +written to the terminal. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-repository"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] <em>what</em></a>, Previous: <a href="#tlmgr-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" accesskey="p" rel="prev">tlmgr remove [<em>option</em>]... <em>pkg</em>...</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="repository"></a> +<h4 class="appendixsubsec">B.6.24 repository</h4> + +<dl compact="compact"> +<dt><strong>repository list</strong></dt> +<dd><a name="tlmgr-repository-list"></a> +</dd> +<dt><strong>repository list <em>path|tag</em></strong></dt> +<dd><a name="tlmgr-repository-list-path_007ctag"></a> +</dd> +<dt><strong>repository add <em>path</em> [<em>tag</em>]</strong></dt> +<dd><a name="tlmgr-repository-add-path-_005btag_005d"></a> +</dd> +<dt><strong>repository remove <em>path|tag</em></strong></dt> +<dd><a name="tlmgr-repository-remove-path_007ctag"></a> +</dd> +<dt><strong>repository set <em>path</em>[#<em>tag</em>] [<em>path</em>[#<em>tag</em>] ...]</strong></dt> +<dd><a name="tlmgr-repository-set-path_005b_0023tag_005d-_005bpath_005b_0023tag_005d-_002e_002e_002e_005d"></a> +<p>This action manages the list of repositories. See <a href="#tlmgr-MULTIPLE-REPOSITORIES">MULTIPLE +REPOSITORIES</a> below for detailed explanations. +</p> +<p>The first form (<code>list</code>) lists all configured repositories and the +respective tags if set. If a path, url, or tag is given after the +<code>list</code> keyword, it is interpreted as source from where to +initialize a TeX Live Database and lists the contained packages. +This can also be an up-to-now not used repository, both locally +and remote. If one pass in addition <code>--with-platforms</code>, for each +package the available platforms (if any) are listed, too. +</p> +<p>The third form (<code>add</code>) adds a repository +(optionally attaching a tag) to the list of repositories. The forth +form (<code>remove</code>) removes a repository, either by full path/url, or by +tag. The last form (<code>set</code>) sets the list of repositories to the items +given on the command line, not keeping previous settings +</p> +<p>In all cases, one of the repositories must be tagged as <code>main</code>; +otherwise, all operations will fail! +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-uninstall" accesskey="n" rel="next">tlmgr uninstall</a>, Previous: <a href="#tlmgr-repository" accesskey="p" rel="prev">tlmgr repository</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-what"></a> +<h4 class="appendixsubsec">B.6.25 search [<em>option</em>...] <em>what</em></h4> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfile-what" accesskey="1">tlmgr search [<em>option</em>...] --file <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what" accesskey="2">tlmgr search [<em>option</em>...] --taxonomy <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what" accesskey="3">tlmgr search [<em>option</em>...] --keyword <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what" accesskey="4">tlmgr search [<em>option</em>...] --functionality <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what" accesskey="5">tlmgr search [<em>option</em>...] --characterization <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dall-what" accesskey="6">tlmgr search [<em>option</em>...] --all <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfile-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] --taxonomy <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dfile-what"></a> +<h4 class="appendixsubsubsec">B.6.25.1 search [<em>option</em>...] –file <em>what</em></h4> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] --keyword <em>what</em></a>, Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfile-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] --file <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what"></a> +<h4 class="appendixsubsubsec">B.6.25.2 search [<em>option</em>...] –taxonomy <em>what</em></h4> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] --functionality <em>what</em></a>, Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] --taxonomy <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what"></a> +<h4 class="appendixsubsubsec">B.6.25.3 search [<em>option</em>...] –keyword <em>what</em></h4> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] --characterization <em>what</em></a>, Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] --keyword <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what"></a> +<h4 class="appendixsubsubsec">B.6.25.4 search [<em>option</em>...] –functionality <em>what</em></h4> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dall-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] --all <em>what</em></a>, Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] --functionality <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what"></a> +<h4 class="appendixsubsubsec">B.6.25.5 search [<em>option</em>...] –characterization <em>what</em></h4> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dall-what"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] --characterization <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dall-what"></a> +<h4 class="appendixsubsubsec">B.6.25.6 search [<em>option</em>...] –all <em>what</em></h4> + +<p>By default, search the names, short descriptions, and long descriptions +of all locally installed packages for the argument <em>what</em>, interpreted +as a regular expression. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–global</strong></dt> +<dd><a name="tlmgr-_002d_002dglobal"></a> +<p>Search the TeX Live Database of the installation medium, instead of the +local installation. +</p> +</dd> +<dt><strong>–word</strong></dt> +<dd><a name="tlmgr-_002d_002dword"></a> +<p>Restrict the search to match only full words. For example, searching for +<code>table</code> with this option will not output packages containing the +word <code>tables</code> (unless they also contain the word <code>table</code> on its own). +</p> +</dd> +<dt><strong>–list</strong></dt> +<dd><a name="tlmgr-_002d_002dlist-1"></a> +<p>If a search for any (or all) taxonomies is done, by specifying one of +the taxonomy options below, then instead of searching for packages, list +the entire corresponding taxonomy (or all of them). See +<a href="#tlmgr-TAXONOMIES">TAXONOMIES</a> below. +</p> +</dd> +</dl> + +<p>Other search options are selected by specifying one of the following: +</p> +<dl compact="compact"> +<dt><strong>–file</strong></dt> +<dd><a name="tlmgr-_002d_002dfile-1"></a> +<p>List all filenames containing <em>what</em>. +</p> +</dd> +<dt><strong>–taxonomy</strong></dt> +<dd><a name="tlmgr-_002d_002dtaxonomy-1"></a> +</dd> +<dt><strong>–keyword</strong></dt> +<dd><a name="tlmgr-_002d_002dkeyword-1"></a> +</dd> +<dt><strong>–functionality</strong></dt> +<dd><a name="tlmgr-_002d_002dfunctionality-1"></a> +</dd> +<dt><strong>–characterization</strong></dt> +<dd><a name="tlmgr-_002d_002dcharacterization-1"></a> +<p>Search in the corresponding taxonomy (or all) instead of the package +descriptions. See <a href="#tlmgr-TAXONOMIES">TAXONOMIES</a> below. +</p> +</dd> +<dt><strong>–all</strong></dt> +<dd><a name="tlmgr-_002d_002dall-2"></a> +<p>Search for package names, descriptions, and taxonomies, but not files. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-uninstall"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e" accesskey="n" rel="next">tlmgr update [<em>option</em>]... [<em>pkg</em>]...</a>, Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] <em>what</em></a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="uninstall"></a> +<h4 class="appendixsubsec">B.6.26 uninstall</h4> + +<p>Uninstalls the entire TeX Live installation. Options: +</p> +<dl compact="compact"> +<dt><strong>–force</strong></dt> +<dd><a name="tlmgr-_002d_002dforce-3"></a> +<p>Do not ask for confirmation, remove immediately. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-uninstall" accesskey="p" rel="prev">tlmgr uninstall</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.27 update [<em>option</em>]... [<em>pkg</em>]...</h4> + +<p>Updates the packages given as arguments to the latest version available +at the installation source. Either <code>--all</code> or at least one <em>pkg</em> name +must be specified. Options: +</p> +<dl compact="compact"> +<dt><strong>–all</strong></dt> +<dd><a name="tlmgr-_002d_002dall-3"></a> +<p>Update all installed packages except for <code>tlmgr</code> itself. Thus, if +updates to <code>tlmgr</code> itself are present, this will simply give an error, +unless also the option <code>--force</code> or <code>--self</code> is given. (See below.) +</p> +<p>In addition to updating the installed packages, during the update of a +collection the local installation is (by default) synchronized to the +status of the collection on the server, for both additions and removals. +</p> +<p>This means that if a package has been removed on the server (and thus +has also been removed from the respective collection), <code>tlmgr</code> will +remove the package in the local installation. This is called +“auto-remove” and is announced as such when using the option +<code>--list</code>. This auto-removal can be suppressed using the option +<code>--no-auto-remove</code> (not recommended, see option description). +</p> +<p>Analogously, if a package has been added to a collection on the server +that is also installed locally, it will be added to the local +installation. This is called “auto-install” and is announced as such +when using the option <code>--list</code>. This auto-installation can be +suppressed using the option <code>--no-auto-install</code>. +</p> +<p>An exception to the collection dependency checks (including the +auto-installation of packages just mentioned) are those that have been +“forcibly removed” by you, that is, you called <code>tlmgr remove --force</code> +on them. (See the <code>remove</code> action documentation.) To reinstall any +such forcibly removed packages use <code>--reinstall-forcibly-removed</code>. +</p> +<p>If you want to exclude some packages from the current update run (e.g., +due to a slow link), see the <code>--exclude</code> option below. +</p> +</dd> +<dt><strong>–self</strong></dt> +<dd><a name="tlmgr-_002d_002dself"></a> +<p>Update <code>tlmgr</code> itself (that is, the infrastructure packages) if updates +to it are present. On Windows this includes updates to the private Perl +interpreter shipped inside TeX Live. +</p> +<p>If this option is given together with either <code>--all</code> or a list of +packages, then <code>tlmgr</code> will be updated first and, if this update +succeeds, the new version will be restarted to complete the rest of the +updates. +</p> +<p>In short: +</p> +<pre class="verbatim"> tlmgr update --self # update infrastructure only + tlmgr update --self --all # update infrastructure and all packages + tlmgr update --force --all # update all packages but *not* infrastructure + # ... this last at your own risk, not recommended! +</pre> +</dd> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun-5"></a> +<p>Nothing is actually installed; instead, the actions to be performed are +written to the terminal. This is a more detailed report than <code>--list</code>. +</p> +</dd> +<dt><strong>–list</strong> [<em>pkg</em>]</dt> +<dd><a name="tlmgr-_002d_002dlist-_005bpkg_005d"></a> +<p>Concisely list the packages which would be updated, newly installed, or +removed, without actually changing anything. +If <code>--all</code> is also given, all available updates are listed. +If <code>--self</code> is given, but not <code>--all</code>, only updates to the +critical packages (tlmgr, texlive infrastructure, perl on Windows, etc.) +are listed. +If neither <code>--all</code> nor <code>--self</code> is given, and in addition no <em>pkg</em> is +given, then <code>--all</code> is assumed (thus, <code>tlmgr update --list</code> is the +same as <code>tlmgr update --list --all</code>). +If neither <code>--all</code> nor <code>--self</code> is given, but specific package names are +given, those packages are checked for updates. +</p> +</dd> +<dt><strong>–exclude</strong> <em>pkg</em></dt> +<dd><a name="tlmgr-_002d_002dexclude-pkg"></a> +<p>Exclude <em>pkg</em> from the update process. If this option is given more +than once, its arguments accumulate. +</p> +<p>An argument <em>pkg</em> excludes both the package <em>pkg</em> itself and all +its related platform-specific packages <em>pkg.ARCH</em>. For example, +</p> +<pre class="verbatim"> tlmgr update --all --exclude a2ping +</pre> +<p>will not update <code>a2ping</code>, <code>a2ping.i386-linux</code>, or +any other <code>a2ping.</code><em>ARCH</em> package. +</p> +<p>If this option specifies a package that would otherwise be a candidate +for auto-installation, auto-removal, or reinstallation of a forcibly +removed package, <code>tlmgr</code> quits with an error message. Excludes are not +supported in these circumstances. +</p> +</dd> +<dt><strong>–no-auto-remove</strong> [<em>pkg</em>]...</dt> +<dd><a name="tlmgr-_002d_002dno_002dauto_002dremove-_005bpkg_005d_002e_002e_002e"></a> +<p>By default, <code>tlmgr</code> tries to remove packages which have disappeared on +the server, as described above under <code>--all</code>. This option prevents +such removals, either for all packages (with <code>--all</code>), or for just the +given <em>pkg</em> names. This can lead to an inconsistent TeX installation, +since packages are not infrequently renamed or replaced by their +authors. Therefore this is not recommend. +</p> +</dd> +<dt><strong>–no-auto-install</strong> [<em>pkg</em>]...</dt> +<dd><a name="tlmgr-_002d_002dno_002dauto_002dinstall-_005bpkg_005d_002e_002e_002e"></a> +<p>Under normal circumstances <code>tlmgr</code> will install packages which are new +on the server, as described above under <code>--all</code>. This option prevents +any such automatic installation, either for all packages (with +<code>--all</code>), or the given <em>pkg</em> names. +</p> +<p>Furthermore, after the <code>tlmgr</code> run using this has finished, the +packages that would have been auto-installed <em>will be considered as +forcibly removed</em>. So, if <code>foobar</code> is the only new package on the +server, then +</p> +<pre class="verbatim"> tlmgr update --all --no-auto-install +</pre> +<p>is equivalent to +</p> +<pre class="verbatim"> tlmgr update --all + tlmgr remove --force foobar +</pre> +</dd> +<dt><strong>–reinstall-forcibly-removed</strong></dt> +<dd><a name="tlmgr-_002d_002dreinstall_002dforcibly_002dremoved"></a> +<p>Under normal circumstances <code>tlmgr</code> will not install packages that have +been forcibly removed by the user; that is, removed with <code>remove +--force</code>, or whose installation was prohibited by <code>--no-auto-install</code> +during an earlier update. +</p> +<p>This option makes <code>tlmgr</code> ignore the forcible removals and re-install +all such packages. This can be used to completely synchronize an +installation with the server’s idea of what is available: +</p> +<pre class="verbatim"> tlmgr update --reinstall-forcibly-removed --all +</pre> +</dd> +<dt><strong>–backup</strong> and <strong>–backupdir</strong> <em>directory</em></dt> +<dd><a name="tlmgr-_002d_002dbackup-and-_002d_002dbackupdir-directory"></a> +<p>These two options control the creation of backups of packages <em>before</em> +updating; that is, backup of packages as currently installed. If +neither of these options are given, no backup package will be saved. If +<code>--backupdir</code> is given and specifies a writable directory then a backup +will be made in that location. If only <code>--backup</code> is given, then a +backup will be made to the directory previously set via the <code>option</code> +action (see below). If both are given then a backup will be made to the +specified <em>directory</em>. +</p> +<p>You can set options via the <code>option</code> action to automatically create +backups for all packages, and/or keep only a certain number of +backups. Please see the <code>option</code> action for details. +</p> +<p><code>tlmgr</code> always makes a temporary backup when updating packages, in case +of download or other failure during an update. In contrast, the purpose +of this <code>--backup</code> option is to allow you to save a persistent backup +in case the actual <em>content</em> of the update causes problems, e.g., +introduces an incompatibility. +</p> +<p>The <code>restore</code> action explains how to restore from a backup. +</p> +</dd> +<dt><strong>–no-depends</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends-2"></a> +<p>If you call for updating a package normally all depending packages +will also be checked for updates and updated if necessary. This switch +suppresses this behavior. +</p> +</dd> +<dt><strong>–no-depends-at-all</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends_002dat_002dall-2"></a> +<p>See above under <strong>install</strong> (and beware). +</p> +</dd> +<dt><strong>–force</strong></dt> +<dd><a name="tlmgr-_002d_002dforce-4"></a> +<p>Force update of normal packages, without updating <code>tlmgr</code> itself +(unless the <code>--self</code> option is also given). Not recommended. +</p> +<p>Also, <code>update --list</code> is still performed regardless of this option. +</p> +</dd> +</dl> + +<p>If the package on the server is older than the package already installed +(e.g., if the selected mirror is out of date), <code>tlmgr</code> does not +downgrade. Also, packages for uninstalled platforms are not installed. +</p> +<hr> +<a name="tlmgr-USER-MODE"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-CONFIGURATION-FILE-FOR-TLMGR" accesskey="n" rel="next">tlmgr CONFIGURATION FILE FOR TLMGR</a>, Previous: <a href="#tlmgr-ACTIONS" accesskey="p" rel="prev">tlmgr ACTIONS</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="USER-MODE"></a> +<h3 class="appendixsec">B.7 USER MODE</h3> + +<p><code>tlmgr</code> provides a restricted way, called “user mode”, to manage +arbitrary texmf trees in the same way as the main installation. For +example, this allows people without write permissions on the +installation location to update/install packages into a tree of their +own. +</p> +<p><code>tlmgr</code> is switched into user mode with the command line option +<code>--usermode</code>. It does not switch automatically, nor is there any +configuration file setting for it. Thus, this option has to be +explicitly given every time user mode is to be activated. +</p> +<p>This mode of <code>tlmgr</code> works on a user tree, by default the value of the +<code>TEXMFHOME</code> variable. This can be overridden with the command line +option <code>--usertree</code>. In the following when we speak of the user tree +we mean either <code>TEXMFHOME</code> or the one given on the command line. +</p> +<p>Not all actions are allowed in user mode; <code>tlmgr</code> will warn you and not +carry out any problematic actions. Currently not supported (and +probably will never be) is the <code>platform</code> action. The <code>gui</code> action is +currently not supported, but may be in a future release. +</p> +<p>Some <code>tlmgr</code> actions don’t need any write permissions and thus work the +same in user mode and normal mode. Currently these are: <code>check</code>, +<code>help</code>, <code>list</code>, <code>print-platform</code>, <code>search</code>, <code>show</code>, <code>version</code>. +</p> +<p>On the other hand, most of the actions dealing with package management +do need write permissions, and thus behave differently in user mode, as +described below: <code>install</code>, <code>update</code>, <code>remove</code>, <code>option</code>, <code>paper</code>, +<code>generate</code>, <code>backup</code>, <code>restore</code>, <code>uninstall</code>, <code>symlinks</code>. +</p> +<p>Before using <code>tlmgr</code> in user mode, you have to set up the user tree +with the <code>init-usertree</code> action. This creates <em>usertree</em><code>/web2c</code> and +<em>usertree</em><code>/tlpkg/tlpobj</code>, and a minimal +<em>usertree</em><code>/tlpkg/texlive.tlpdb</code>. At that point, you can tell +<code>tlmgr</code> to do the (supported) actions by adding the <code>--usermode</code> +command line option. +</p> +<p>In user mode the file <em>usertree</em><code>/tlpkg/texlive.tlpdb</code> contains only +the packages that have been installed into the user tree using <code>tlmgr</code>, +plus additional options from the “virtual” package +<code>00texlive.installation</code> (similar to the main installation’s +<code>texlive.tlpdb</code>). +</p> +<p>All actions on packages in user mode can only be carried out on packages +that are known as <code>relocatable</code>. This excludes all packages containing +executables and a few other core packages. Of the 2500 or so packages +currently in TeX Live the vast majority are relocatable and can be +installed into a user tree. +</p> +<p>Description of changes of actions in user mode: +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-user-mode-install" accesskey="1">tlmgr user mode install</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-user-mode-backup_003b-restore_003b-remove_003b-update" accesskey="2">tlmgr user mode backup; restore; remove; update</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-user-mode-generate_003b-option_003b-paper" accesskey="3">tlmgr user mode generate; option; paper</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-user-mode-install"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-user-mode-backup_003b-restore_003b-remove_003b-update" accesskey="n" rel="next">tlmgr user mode backup; restore; remove; update</a>, Up: <a href="#tlmgr-USER-MODE" accesskey="u" rel="up">tlmgr USER MODE</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="user-mode-install"></a> +<h4 class="appendixsubsec">B.7.1 user mode install</h4> + +<p>In user mode, the <code>install</code> action checks that the package and all +dependencies are all either relocated or already installed in the system +installation. If this is the case, it unpacks all containers to be +installed into the user tree (to repeat, that’s either <code>TEXMFHOME</code> or +the value of <code>--usertree</code>) and add the respective packages to the user +tree’s <code>texlive.tlpdb</code> (creating it if need be). +</p> +<p>Currently installing a collection in user mode installs all dependent +packages, but in contrast to normal mode, does <em>not</em> install dependent +collections. For example, in normal mode <code>tlmgr install +collection-context</code> would install <code>collection-basic</code> and other +collections, while in user mode, <em>only</em> the packages mentioned in +<code>collection-context</code> are installed. +</p> +<hr> +<a name="tlmgr-user-mode-backup_003b-restore_003b-remove_003b-update"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-user-mode-generate_003b-option_003b-paper" accesskey="n" rel="next">tlmgr user mode generate; option; paper</a>, Previous: <a href="#tlmgr-user-mode-install" accesskey="p" rel="prev">tlmgr user mode install</a>, Up: <a href="#tlmgr-USER-MODE" accesskey="u" rel="up">tlmgr USER MODE</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="user-mode-backup_003b-restore_003b-remove_003b-update"></a> +<h4 class="appendixsubsec">B.7.2 user mode backup; restore; remove; update</h4> + +<p>In user mode, these actions check that all packages to be acted on are +installed in the user tree before proceeding; otherwise, they behave +just as in normal mode. +</p> +<hr> +<a name="tlmgr-user-mode-generate_003b-option_003b-paper"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-user-mode-backup_003b-restore_003b-remove_003b-update" accesskey="p" rel="prev">tlmgr user mode backup; restore; remove; update</a>, Up: <a href="#tlmgr-USER-MODE" accesskey="u" rel="up">tlmgr USER MODE</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="user-mode-generate_003b-option_003b-paper"></a> +<h4 class="appendixsubsec">B.7.3 user mode generate; option; paper</h4> + +<p>In user mode, these actions operate only on the user tree’s +configuration files and/or <code>texlive.tlpdb</code>. +creates configuration files in user tree +</p> +<hr> +<a name="tlmgr-CONFIGURATION-FILE-FOR-TLMGR"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-TAXONOMIES" accesskey="n" rel="next">tlmgr TAXONOMIES</a>, Previous: <a href="#tlmgr-USER-MODE" accesskey="p" rel="prev">tlmgr USER MODE</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="CONFIGURATION-FILE-FOR-TLMGR"></a> +<h3 class="appendixsec">B.8 CONFIGURATION FILE FOR TLMGR</h3> + +<p>A small subset of the command line options can be set in a config file +for <code>tlmgr</code> which resides in <code>TEXMFCONFIG/tlmgr/config</code>. By default, the +config file is in <code>~/.texliveYYYY/texmf-config/tlmgr/config</code> (replacing +<code>YYYY</code> with the year of your TeX Live installation). This is <em>not</em> +<code>TEXMFSYSVAR</code>, so that the file is specific to a single user. +</p> +<p>In this file, empty lines and lines starting with # are ignored. All +other lines must look like +</p> +<pre class="verbatim"> key = value +</pre> +<p>where the allowed keys are <code>gui-expertmode</code> (value 0 or 1), +<code>persistent-downloads</code> (value 0 or 1), <code>auto-remove</code> (value 0 or 1), +and <code>gui-lang</code> (value like in the command line option). +</p> +<p><code>persistent-downloads</code>, <code>gui-lang</code>, and <code>auto-remove</code> correspond to +the respective command line options of the same name. <code>gui-expertmode</code> +switches between the full GUI and a simplified GUI with only the +important and mostly used settings. +</p> +<hr> +<a name="tlmgr-TAXONOMIES"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-MULTIPLE-REPOSITORIES" accesskey="n" rel="next">tlmgr MULTIPLE REPOSITORIES</a>, Previous: <a href="#tlmgr-CONFIGURATION-FILE-FOR-TLMGR" accesskey="p" rel="prev">tlmgr CONFIGURATION FILE FOR TLMGR</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="TAXONOMIES"></a> +<h3 class="appendixsec">B.9 TAXONOMIES</h3> + +<p>tlmgr allows searching and listing of various categorizations, which we +call <em>taxonomies</em>, as provided by an enhanced TeX Catalogue (available +for testing at <a href="http://az.ctan.org">http://az.ctan.org</a>). This is useful when, for +example, you don’t know a specific package name but have an idea of the +functionality you need; or when you want to see all packages relating to +a given area. +</p> +<p>There are three different taxonomies, specified by the following +options: +</p> +<dl compact="compact"> +<dt><code>--keyword</code></dt> +<dd><a name="tlmgr-_002d_002dkeyword-2"></a> +<p>The keywords, as specified at <a href="http://az.ctan.org/keyword">http://az.ctan.org/keyword</a>. +</p> +</dd> +<dt><code>--functionality</code></dt> +<dd><a name="tlmgr-_002d_002dfunctionality-2"></a> +<p>The “by-topic” categorization created by J\"urgen Fenn, as specified +at <a href="http://az.ctan.org/characterization/by-function">http://az.ctan.org/characterization/by-function</a>. +</p> +</dd> +<dt><code>--characterization</code></dt> +<dd><a name="tlmgr-_002d_002dcharacterization-2"></a> +<p>Both the primary and secondary functionalities, as specified at +<a href="http://az.ctan.org/characterization/choose_dimen">http://az.ctan.org/characterization/choose_dimen</a>. +</p> +</dd> +<dt><code>--taxonomy</code></dt> +<dd><a name="tlmgr-_002d_002dtaxonomy-2"></a> +<p>Operate on all the taxonomies. +</p> +</dd> +</dl> + +<p>The taxonomies are updated nightly and stored within TeX Live, so +Internet access is not required to search them. +</p> +<p>Examples: +</p> +<pre class="verbatim"> tlmgr search --taxonomy exercise # check all taxonomies for "exercise" + tlmgr search --taxonomy --word table # check for "table" on its own + tlmgr search --list --keyword # dump entire keyword taxonomy + tlmgr show --taxonomy pdftex # show pdftex package information, + # including all taxonomy entries +</pre> +<hr> +<a name="tlmgr-MULTIPLE-REPOSITORIES"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-GUI-FOR-TLMGR" accesskey="n" rel="next">tlmgr GUI FOR TLMGR</a>, Previous: <a href="#tlmgr-TAXONOMIES" accesskey="p" rel="prev">tlmgr TAXONOMIES</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="MULTIPLE-REPOSITORIES"></a> +<h3 class="appendixsec">B.10 MULTIPLE REPOSITORIES</h3> + +<p>The main TeX Live repository contains a vast array of packages. +Nevertheless, additional local repositories can be useful to provide +locally-installed resources, such as proprietary fonts and house styles. +Also, alternative package repositories distribute packages that cannot +or should not be included in TeX Live, for whatever reason. +</p> +<p>The simplest and most reliable method is to temporarily set the +installation source to any repository (with the <code>-repository</code> or +<code>option repository</code> command line options), and perform your operations. +</p> +<p>When you are using multiple repositories over a sustained time, however, +explicitly switching between them becomes inconvenient. Thus, it’s +possible to tell <code>tlmgr</code> about additional repositories you want to use. +The basic command is <code>tlmgr repository add</code>. The rest of this section +explains further. +</p> +<p>When using multiple repositories, one of them has to be set as the main +repository, which distributes most of the installed packages. When you +switch from a single repository installation to a multiple repository +installation, the previous sole repository will be set as the main +repository. +</p> +<p>By default, even if multiple repositories are configured, packages are +<em>still</em> <em>only</em> installed from the main repository. Thus, simply +adding a second repository does not actually enable installation of +anything from there. You also have to specify which packages should be +taken from the new repository, by specifying so-called “pinning” +rules, described next. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-Pinning" accesskey="1">tlmgr Pinning</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-Pinning"></a> +<div class="header"> +<p> +Up: <a href="#tlmgr-MULTIPLE-REPOSITORIES" accesskey="u" rel="up">tlmgr MULTIPLE REPOSITORIES</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Pinning"></a> +<h4 class="appendixsubsec">B.10.1 Pinning</h4> + +<p>When a package <code>foo</code> is pinned to a repository, a package <code>foo</code> in any +other repository, even if it has a higher revision number, will not be +considered an installable candidate. +</p> +<p>As mentioned above, by default everything is pinned to the main +repository. Let’s now go through an example of setting up a second +repository and enabling updates of a package from it. +</p> +<p>First, check that we have support for multiple repositories, and have +only one enabled (as is the case by default): +</p> +<pre class="verbatim"> $ tlmgr repository list + List of repositories (with tags if set): + /var/www/norbert/tlnet +</pre> +<p>Ok. Let’s add the <code>tlcontrib</code> repository (this is a real +repository, hosted at <a href="http://tlcontrib.metatex.org">http://tlcontrib.metatex.org</a>, maintained by +Taco Hoekwater et al.), with the tag <code>tlcontrib</code>: +</p> +<pre class="verbatim"> $ tlmgr repository add http://tlcontrib.metatex.org/2012 tlcontrib +</pre> +<p>Check the repository list again: +</p> +<pre class="verbatim"> $ tlmgr repository list + List of repositories (with tags if set): + http://tlcontrib.metatex.org/2012 (tlcontrib) + /var/www/norbert/tlnet (main) +</pre> +<p>Now we specify a pinning entry to get the package <code>context</code> from +<code>tlcontrib</code>: +</p> +<pre class="verbatim"> $ tlmgr pinning add tlcontrib context +</pre> +<p>Check that we can find <code>context</code>: +</p> +<pre class="verbatim"> $ tlmgr show context + tlmgr: package repositories: + ... + package: context + repository: tlcontrib/26867 + ... +</pre> +<p>- install <code>context</code>: +</p> +<pre class="verbatim"> $ tlmgr install context + tlmgr: package repositories: + ... + [1/1, ??:??/??:??] install: context @tlcontrib [ +</pre> +<p>In the output here you can see that the <code>context</code> package has been +installed from the <code>tlcontrib</code> repository (<code>@tlcontrib</code>). +</p> +<p>Finally, <code>tlmgr pinning</code> also supports removing certain or all packages +from a given repository: +</p> +<pre class="verbatim"> $ tlmgr pinning remove tlcontrib context # remove just context + $ tlmgr pinning remove tlcontrib --all # take nothing from tlcontrib +</pre> +<p>A summary of the <code>tlmgr pinning</code> actions is given above. +</p> +<hr> +<a name="tlmgr-GUI-FOR-TLMGR"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT" accesskey="n" rel="next">tlmgr MACHINE-READABLE OUTPUT</a>, Previous: <a href="#tlmgr-MULTIPLE-REPOSITORIES" accesskey="p" rel="prev">tlmgr MULTIPLE REPOSITORIES</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="GUI-FOR-TLMGR"></a> +<h3 class="appendixsec">B.11 GUI FOR TLMGR</h3> + +<p>The graphical user interface for <code>tlmgr</code> needs Perl/Tk to be installed. +For Windows the necessary modules are shipped within TeX Live, for all +other (i.e., Unix-based) systems Perl/Tk (as well as Perl of course) has +to be installed. <a href="http://tug.org/texlive/distro.html#perltk">http://tug.org/texlive/distro.html#perltk</a> has a +list of invocations for some distros. +</p> +<p>When started with <code>tlmgr gui</code> the graphical user interface will be +shown. The main window contains a menu bar, the main display, and a +status area where messages normally shown on the console are displayed. +</p> +<p>Within the main display there are three main parts: the <code>Display +configuration</code> area, the list of packages, and the action buttons. +</p> +<p>Also, at the top right the currently loaded repository is shown; this +also acts as a button and when clicked will try to load the default +repository. To load a different repository, see the <code>tlmgr</code> menu item. +</p> +<p>Finally, the status area at the bottom of the window gives additional +information about what is going on. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-Main-display" accesskey="1">tlmgr Main display</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-Menu-bar" accesskey="2">tlmgr Menu bar</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-Main-display"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-Menu-bar" accesskey="n" rel="next">tlmgr Menu bar</a>, Up: <a href="#tlmgr-GUI-FOR-TLMGR" accesskey="u" rel="up">tlmgr GUI FOR TLMGR</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Main-display"></a> +<h4 class="appendixsubsec">B.11.1 Main display</h4> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-Display-configuration-area" accesskey="1">tlmgr Display configuration area</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-Package-list-area" accesskey="2">tlmgr Package list area</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-Main-display-action-buttons" accesskey="3">tlmgr Main display action buttons</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-Display-configuration-area"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-Package-list-area" accesskey="n" rel="next">tlmgr Package list area</a>, Up: <a href="#tlmgr-Main-display" accesskey="u" rel="up">tlmgr Main display</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Display-configuration-area"></a> +<h4 class="appendixsubsubsec">B.11.1.1 Display configuration area</h4> + +<p>The first part of the main display allows you to specify (filter) which +packages are shown. By default, all are shown. Changes here are +reflected right away. +</p> +<dl compact="compact"> +<dt>Status</dt> +<dd><a name="tlmgr-Status"></a> +<p>Select whether to show all packages (the default), only those installed, +only those <em>not</em> installed, or only those with update available. +</p> +</dd> +<dt>Category</dt> +<dd><a name="tlmgr-Category"></a> +<p>Select which categories are shown: packages, collections, and/or +schemes. These are briefly explained in the <a href="#tlmgr-DESCRIPTION">DESCRIPTION</a> section +above. +</p> +</dd> +<dt>Match</dt> +<dd><a name="tlmgr-Match"></a> +<p>Select packages matching for a specific pattern. By default, this uses +the same algorithm as <code>tlmgr search</code>, i.e., searches everything: +descriptions, taxonomies, and/or filenames. You can also select any +subset for searching. +</p> +</dd> +<dt>Selection</dt> +<dd><a name="tlmgr-Selection"></a> +<p>Select packages to those selected, those not selected, or all. Here, +“selected” means that the checkbox in the beginning of the line of a +package is ticked. +</p> +</dd> +<dt>Display configuration buttons</dt> +<dd><a name="tlmgr-Display-configuration-buttons"></a> +<p>To the right there are three buttons: select all packages, select none +(a.k.a. deselect all), and reset all these filters to the defaults, +i.e., show all available. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-Package-list-area"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-Main-display-action-buttons" accesskey="n" rel="next">tlmgr Main display action buttons</a>, Previous: <a href="#tlmgr-Display-configuration-area" accesskey="p" rel="prev">tlmgr Display configuration area</a>, Up: <a href="#tlmgr-Main-display" accesskey="u" rel="up">tlmgr Main display</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Package-list-area"></a> +<h4 class="appendixsubsubsec">B.11.1.2 Package list area</h4> + +<p>The second are of the main display lists all installed packages. If a +repository is loaded, those that are available but not installed are +also listed. +</p> +<p>Double clicking on a package line pops up an informational window with +further details: the long description, included files, etc. +</p> +<p>Each line of the package list consists of the following items: +</p> +<dl compact="compact"> +<dt>a checkbox</dt> +<dd><a name="tlmgr-a-checkbox"></a> +<p>Used to select particular packages; some of the action buttons (see +below) work only on the selected packages. +</p> +</dd> +<dt>package name</dt> +<dd><a name="tlmgr-package-name"></a> +<p>The name (identifier) of the package as given in the database. +</p> +</dd> +<dt>local revision (and version)</dt> +<dd><a name="tlmgr-local-revision-_0028and-version_0029"></a> +<p>If the package is installed the TeX Live revision number for the +installed package will be shown. If there is a catalogue version given +in the database for this package, it will be shown in parentheses. +However, the catalogue version, unlike the TL revision, is not +guaranteed to reflect what is actually installed. +</p> +</dd> +<dt>remote revision (and version)</dt> +<dd><a name="tlmgr-remote-revision-_0028and-version_0029"></a> +<p>If a repository has been loaded the revision of the package in the +repository (if present) is shown. As with the local column, if a +catalogue version is provided it will be displayed. And also as with +the local column, the catalogue version may be stale. +</p> +</dd> +<dt>short description</dt> +<dd><a name="tlmgr-short-description"></a> +<p>The short description of the package. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-Main-display-action-buttons"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-Package-list-area" accesskey="p" rel="prev">tlmgr Package list area</a>, Up: <a href="#tlmgr-Main-display" accesskey="u" rel="up">tlmgr Main display</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Main-display-action-buttons"></a> +<h4 class="appendixsubsubsec">B.11.1.3 Main display action buttons</h4> + +<p>Below the list of packages are several buttons: +</p> +<dl compact="compact"> +<dt>Update all installed</dt> +<dd><a name="tlmgr-Update-all-installed"></a> +<p>This calls <code>tlmgr update --all</code>, i.e., tries to update all available +packages. Below this button is a toggle to allow reinstallation of +previously removed packages as part of this action. +</p> +<p>The other four buttons only work on the selected packages, i.e., those +where the checkbox at the beginning of the package line is ticked. +</p> +</dd> +<dt>Update</dt> +<dd><a name="tlmgr-Update"></a> +<p>Update only the selected packages. +</p> +</dd> +<dt>Install</dt> +<dd><a name="tlmgr-Install"></a> +<p>Install the selected packages; acts like <code>tlmgr install</code>, i.e., also +installs dependencies. Thus, installing a collection installs all its +constituent packages. +</p> +</dd> +<dt>Remove</dt> +<dd><a name="tlmgr-Remove"></a> +<p>Removes the selected packages; acts like <code>tlmgr remove</code>, i.e., it will +also remove dependencies of collections (but not dependencies of normal +packages). +</p> +</dd> +<dt>Backup</dt> +<dd><a name="tlmgr-Backup"></a> +<p>Makes a backup of the selected packages; acts like <code>tlmgr backup</code>. This +action needs the option <code>backupdir</code> set (see <code>Options -</code> General>). +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-Menu-bar"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-Main-display" accesskey="p" rel="prev">tlmgr Main display</a>, Up: <a href="#tlmgr-GUI-FOR-TLMGR" accesskey="u" rel="up">tlmgr GUI FOR TLMGR</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Menu-bar"></a> +<h4 class="appendixsubsec">B.11.2 Menu bar</h4> + +<p>The following entries can be found in the menu bar: +</p> +<dl compact="compact"> +<dt><code>tlmgr</code> menu</dt> +<dd><a name="tlmgr-tlmgr-menu"></a> +<p>The items here load various repositories: the default as specified in +the TeX Live database, the default network repository, the repository +specified on the command line (if any), and an arbitrarily +manually-entered one. Also has the so-necessary <code>quit</code> operation. +</p> +</dd> +<dt><code>Options menu</code></dt> +<dd><a name="tlmgr-Options-menu"></a> +<p>Provides access to several groups of options: <code>Paper</code> (configuration of +default paper sizes), <code>Platforms</code> (only on Unix, configuration of the +supported/installed platforms), <code>GUI Language</code> (select language used in +the GUI interface), and <code>General</code> (everything else). +</p> +<p>Several toggles are also here. The first is <code>Expert options</code>, which is +set by default. If you turn this off, the next time you start the GUI a +simplified screen will be shown that display only the most important +functionality. This setting is saved in the configuration file of +<code>tlmgr</code>; see <a href="#tlmgr-CONFIGURATION-FILE-FOR-TLMGR">CONFIGURATION FILE FOR TLMGR</a> for details. +</p> +<p>The other toggles are all off by default: for debugging output, to +disable the automatic installation of new packages, and to disable the +automatic removal of packages deleted from the server. Playing with the +choices of what is or isn’t installed may lead to an inconsistent TeX Live +installation; e.g., when a package is renamed. +</p> +</dd> +<dt><code>Actions menu</code></dt> +<dd><a name="tlmgr-Actions-menu"></a> +<p>Provides access to several actions: update the filename database (aka +<code>ls-R</code>, <code>mktexlsr</code>, <code>texhash</code>), rebuild all formats (<code>fmtutil-sys +--all</code>), update the font map database (<code>updmap-sys</code>), restore from a backup +of a package, and use of symbolic links in system directories (not on +Windows). +</p> +<p>The final action is to remove the entire TeX Live installation (also not +on Windows). +</p> +</dd> +<dt><code>Help menu</code></dt> +<dd><a name="tlmgr-Help-menu"></a> +<p>Provides access to the TeX Live manual (also on the web at +<a href="http://tug.org/texlive/doc.html">http://tug.org/texlive/doc.html</a>) and the usual “About” box. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-MACHINE_002dREADABLE-OUTPUT"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-AUTHORS-AND-COPYRIGHT" accesskey="n" rel="next">tlmgr AUTHORS AND COPYRIGHT</a>, Previous: <a href="#tlmgr-GUI-FOR-TLMGR" accesskey="p" rel="prev">tlmgr GUI FOR TLMGR</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="MACHINE_002dREADABLE-OUTPUT"></a> +<h3 class="appendixsec">B.12 MACHINE-READABLE OUTPUT</h3> + +<p>With the <code>--machine-readable</code> option, <code>tlmgr</code> writes to stdout in the +fixed line-oriented format described here, and the usual informational +messages for human consumption are written to stderr (normally they are +written to stdout). The idea is that a program can get all the +information it needs by reading stdout. +</p> +<p>Currently this option only applies to the +<a href="#tlmgr-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e">update</a>, +<a href="#tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e">install</a>, and +<a href="#tlmgr-option">option</a> actions. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-Machine_002dreadable-update-and-install-output" accesskey="1">tlmgr Machine-readable <code>update</code> and <code>install</code> output</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-Machine_002dreadable-option-output" accesskey="2">tlmgr Machine-readable <code>option</code> output</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-Machine_002dreadable-update-and-install-output"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-Machine_002dreadable-option-output" accesskey="n" rel="next">tlmgr Machine-readable <code>option</code> output</a>, Up: <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT" accesskey="u" rel="up">tlmgr MACHINE-READABLE OUTPUT</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Machine_002dreadable-update-and-install-output"></a> +<h4 class="appendixsubsec">B.12.1 Machine-readable <code>update</code> and <code>install</code> output</h4> + +<p>The output format is as follows: +</p> +<pre class="verbatim"> fieldname "\t" value + ... + "end-of-header" + pkgname status localrev serverrev size runtime esttot + ... + "end-of-updates" + other output from post actions, not in machine readable form +</pre> +<p>The header section currently has two fields: <code>location-url</code> (the +repository source from which updates are being drawn), and +<code>total-bytes</code> (the total number of bytes to be downloaded). +</p> +<p>The <em>localrev</em> and <em>serverrev</em> fields for each package are the +revision numbers in the local installation and server repository, +respectively. The <em>size</em> field is the number of bytes to be +downloaded, i.e., the size of the compressed tar file for a network +installation, not the unpacked size. The runtime and esttot fields +are only present for updated and auto-install packages, and contain +the currently passed time since start of installation/updates +and the estimated total time. +</p> +<p>Line endings may be either LF or CRLF depending on the current platform. +</p> +<dl compact="compact"> +<dt><code>location-url</code> <em>location</em></dt> +<dd><a name="tlmgr-location_002durl-location"></a> +<p>The <em>location</em> may be a url (including <code>file:///foo/bar/...</code>), or a +directory name (<code>/foo/bar</code>). It is the package repository from which +the new package information was drawn. +</p> +</dd> +<dt><code>total-bytes</code> <em>count</em></dt> +<dd><a name="tlmgr-total_002dbytes-count"></a> +<p>The <em>count</em> is simply a decimal number, the sum of the sizes of all the +packages that need updating or installing (which are listed subsequently). +</p> +</dd> +</dl> + +<p>Then comes a line with only the literal string <code>end-of-header</code>. +</p> +<p>Each following line until a line with literal string <code>end-of-updates</code> +reports on one package. The fields on +each line are separated by a tab. Here are the fields. +</p> +<dl compact="compact"> +<dt><em>pkgname</em></dt> +<dd><a name="tlmgr-pkgname"></a> +<p>The TeX Live package identifier, with a possible platform suffix for +executables. For instance, <code>pdftex</code> and <code>pdftex.i386-linux</code> are given +as two separate packages, one on each line. +</p> +</dd> +<dt><em>status</em></dt> +<dd><a name="tlmgr-status"></a> +<p>The status of the package update. One character, as follows: +</p> +<dl compact="compact"> +<dt><code>d</code></dt> +<dd><a name="tlmgr-d"></a> +<p>The package was removed on the server. +</p> +</dd> +<dt><code>f</code></dt> +<dd><a name="tlmgr-f"></a> +<p>The package was removed in the local installation, even though a +collection depended on it. (E.g., the user ran <code>tlmgr remove +--force</code>.) +</p> +</dd> +<dt><code>u</code></dt> +<dd><a name="tlmgr-u"></a> +<p>Normal update is needed. +</p> +</dd> +<dt><code>r</code></dt> +<dd><a name="tlmgr-r"></a> +<p>Reversed non-update: the locally-installed version is newer than the +version on the server. +</p> +</dd> +<dt><code>a</code></dt> +<dd><a name="tlmgr-a"></a> +<p>Automatically-determined need for installation, the package is new on +the server and is (most probably) part of an installed collection. +</p> +</dd> +<dt><code>i</code></dt> +<dd><a name="tlmgr-i"></a> +<p>Package will be installed and isn’t present in the local installation +(action install). +</p> +</dd> +<dt><code>I</code></dt> +<dd><a name="tlmgr-I"></a> +<p>Package is already present but will be reinstalled (action install). +</p> +</dd> +</dl> + +</dd> +<dt><em>localrev</em></dt> +<dd><a name="tlmgr-localrev"></a> +<p>The revision number of the installed package, or <code>-</code> if it is not +present locally. +</p> +</dd> +<dt><em>serverrev</em></dt> +<dd><a name="tlmgr-serverrev"></a> +<p>The revision number of the package on the server, or <code>-</code> if it is not +present on the server. +</p> +</dd> +<dt><em>size</em></dt> +<dd><a name="tlmgr-size"></a> +<p>The size in bytes of the package on the server. The sum of all the +package sizes is given in the <code>total-bytes</code> header field mentioned above. +</p> +</dd> +<dt><em>runtime</em></dt> +<dd><a name="tlmgr-runtime"></a> +<p>The run time since start of installations or updates. +</p> +</dd> +<dt><em>esttot</em></dt> +<dd><a name="tlmgr-esttot"></a> +<p>The estimated total time. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-Machine_002dreadable-option-output"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-Machine_002dreadable-update-and-install-output" accesskey="p" rel="prev">tlmgr Machine-readable <code>update</code> and <code>install</code> output</a>, Up: <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT" accesskey="u" rel="up">tlmgr MACHINE-READABLE OUTPUT</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Machine_002dreadable-option-output"></a> +<h4 class="appendixsubsec">B.12.2 Machine-readable <code>option</code> output</h4> + +<p>The output format is as follows: +</p> +<pre class="verbatim"> key "\t" value +</pre> +<p>If a value is not saved in the database the string <code>(not set)</code> is shown. +</p> +<p>If you are developing a program that uses this output, and find that +changes would be helpful, do not hesitate to write the mailing list. +</p> +<hr> +<a name="tlmgr-AUTHORS-AND-COPYRIGHT"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT" accesskey="p" rel="prev">tlmgr MACHINE-READABLE OUTPUT</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="AUTHORS-AND-COPYRIGHT-1"></a> +<h3 class="appendixsec">B.13 AUTHORS AND COPYRIGHT</h3> + +<p>This script and its documentation were written for the TeX Live +distribution (<a href="http://tug.org/texlive">http://tug.org/texlive</a>) and both are licensed under the +GNU General Public License Version 2 or later. +</p> + +<hr> +<a name="Index"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr" accesskey="p" rel="prev">tlmgr</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Index-1"></a> +<h2 class="unnumbered">Index</h2> + +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>-</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a> + +</td></tr></table> +<table class="index-cp" border="0"> +<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-1">-</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dbindir-configure-option"><code>--bindir configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026"><code>--prefix</code> <code>--bindir</code> …</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dbuild_003dhost"><code>--build=<var>host</var></code></a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dall_002dpackages-configure-option"><code>--disable-all-packages configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-one-package">Build one package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dall_002dpkgs"><code>--disable-all-pkgs</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dall_002dpkgs"><code>--disable-all-pkgs</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dbibtex8"><code>--disable-bibtex8</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fbibtex_002dx">Configure options for <samp>texk/bibtex-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002ddump_002dshare"><code>--disable-dump-share</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002ddvipdfmx"><code>--disable-dvipdfmx</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvipdfm_002dx">Configure options for <samp>texk/dvipdfm-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002detex_002dsynctex"><code>--disable-etex-synctex</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dipc"><code>--disable-ipc</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dlinked_002dscripts"><code>--disable-linked-scripts</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002ftexlive">Configure options for <samp>texk/texlive</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dmf_002dnowin"><code>--disable-mf-nowin</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dmissing"><code>--disable-missing</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dmissing"><code>--disable-missing</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dnative_002dtexlive_002dbuild"><code>--disable-native-texlive-build</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild"><code>--disable-native-texlive-build</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002domfonts"><code>--disable-omfonts</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dprog"><code>--disable-<var>prog</var></code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog"><code>--enable-<var>prog</var></code> <code>--disable-<var>prog</var></code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dtex"><code>--disable-tex</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dweb_002dprogs"><code>--disable-web-progs</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dxdvipdfmx"><code>--disable-xdvipdfmx</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvipdfm_002dx">Configure options for <samp>texk/dvipdfm-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002d_002awin-for-Metafont-window-support"><code>--enable-*win <span class="roman">for Metafont window support</span></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dauto_002dcore"><code>--enable-auto-core</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dcompiler_002dwarnings_003dlevel"><code>--enable-compiler-warnings=<var>level</var></code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel"><code>--enable-compiler-warnings=</code><var>level</var></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dcxx_002druntime_002dhack-configure-option"><code>--enable-cxx-runtime-hack configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002detex"><code>--enable-etex</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dlibtool_002dhack"><code>--enable-libtool-hack</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dmaintainer_002dmode"><code>--enable-maintainer-mode</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dmaintainer_002dmode"><code>--enable-maintainer-mode</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dmaintainer_002dmode-configure-option"><code>--enable-maintainer-mode configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dmktextfm_002ddefault"><code>--enable-mktextfm-default</code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dmultiplatform"><code>--enable-multiplatform</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dmultiplatform"><code>--enable-multiplatform</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dprog"><code>--enable-<var>prog</var></code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog"><code>--enable-<var>prog</var></code> <code>--disable-<var>prog</var></code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dshared"><code>--enable-shared</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dshared"><code>--enable-shared</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dsilent_002drules"><code>--enable-silent-rules</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dsilent_002drules"><code>--enable-silent-rules</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dtex_002dsynctex"><code>--enable-tex-synctex</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dtexlive_002dbuild"><code>--enable-texlive-build</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild"><code>--disable-native-texlive-build</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dxi2_002dscrolling"><code>--enable-xi2-scrolling</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dxindy_002ddocs"><code>--enable-xindy-docs</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dxindy_002drules"><code>--enable-xindy-rules</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dhost_003dhost"><code>--host=<var>host</var></code></a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dlibdir"><code>--libdir</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dmultiplatform"><code>--enable-multiplatform</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dno_002dclean-Build-option"><code>--no-clean Build <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-problems">Build problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dprefix-configure-option"><code>--prefix configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026"><code>--prefix</code> <code>--bindir</code> …</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dbanner_002dadd_003dstr"><code>--with-banner-add=<var>str</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dclisp_002druntime_003dfilename"><code>--with-clisp-runtime=<var>filename</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002deditor_003dcmd"><code>--with-editor=<var>cmd</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dfontconfig_002dincludes_003ddir"><code>--with-fontconfig-includes=<var>dir</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dfontconfig_002dlibdir_003ddir"><code>--with-fontconfig-libdir=<var>dir</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dgs_003dfilename"><code>--with-gs=<var>filename</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dlib_002dincludes_003ddir_002c-_002dlibdir"><code>--with-<var>lib</var>-includes=<var>dir</var><span class="roman">,</span> -libdir</code></a>:</td><td> </td><td valign="top"><a href="#Library_002dspecific-configure-options">Library-specific configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dlibgs_002dincludes_002c-_002dlibdir"><code>--with-libgs-includes<span class="roman">,</span> -libdir</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvisvgm">Configure options for <samp>texk/dvisvgm</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002drecode"><code>--with-recode</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dkpathsea"><code>--with-system-kpathsea</code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dlib"><code>--with-system-<var>lib</var></code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dlib-1"><code>--with-system-<var>lib</var></code></a>:</td><td> </td><td valign="top"><a href="#Library_002dspecific-configure-options">Library-specific configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dlibgs"><code>--with-system-libgs</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvisvgm">Configure options for <samp>texk/dvisvgm</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dpoppler"><code>--with-system-poppler</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-system-poppler">Configure options for system <code>poppler</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dxpdf"><code>--with-system-xpdf</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-system-poppler">Configure options for system <code>poppler</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dxdvi_002dx_002dtoolkit"><code>--with-xdvi-x-toolkit</code></a>:</td><td> </td><td valign="top"><a href="#xdvik-package"><code>xdvik</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dxdvi_002dx_002dtoolkit_003dkit"><code>--with-xdvi-x-toolkit=<var>kit</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dlibgs"><code>--without-libgs</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvisvgm">Configure options for <samp>texk/dvisvgm</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dln_002ds"><code>--without-ln-s</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002dwithout_002dln_002ds"><code>--without-ln-s</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dx"><code>--without-x</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002dwithout_002dx"><code>--without-x</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dC-configure-option"><code>-C configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dj-make-option"><code>-j make <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-A">A</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-adapting-TeX-Live-for-distros">adapting TeX Live for distros</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adding-a-new-generic-library">adding a new generic library</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adding-a-new-program">adding a new program</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adding-a-new-TeX_002dspecific-library">adding a new TeX-specific library</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-TeX_002dspecific-library-module">Adding a new TeX-specific library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adding-to-TeX-Live">adding to TeX Live</a>:</td><td> </td><td valign="top"><a href="#Extending-TeX-Live">Extending TeX Live</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-am_002f-top_002dlevel-directory"><samp>am/</samp> top-level directory</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ANSI-C">ANSI C</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-asymptote"><code>asymptote</code></a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-asymptote-1"><code>asymptote</code></a>:</td><td> </td><td valign="top"><a href="#asymptote"><code>asymptote</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Autoconf">Autoconf</a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-autoconf-macros">autoconf macros</a>:</td><td> </td><td valign="top"><a href="#Autoconf-macros">Autoconf macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Automake">Automake</a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-B">B</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-biber"><code>biber</code></a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibtex_002dx"><code>bibtex-x</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fbibtex_002dx">Configure options for <samp>texk/bibtex-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibtex8"><code>bibtex8</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fbibtex_002dx">Configure options for <samp>texk/bibtex-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibtexu"><code>bibtexu</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fbibtex_002dx">Configure options for <samp>texk/bibtex-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BSD-distro">BSD distro</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-directory_002c-required">build directory, required</a>:</td><td> </td><td valign="top"><a href="#Building">Building</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-iteration">build iteration</a>:</td><td> </td><td valign="top"><a href="#Build-iteration">Build iteration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-on-demand">build on demand</a>:</td><td> </td><td valign="top"><a href="#Build-one-package">Build one package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-one-package">build one package</a>:</td><td> </td><td valign="top"><a href="#Build-one-package">Build one package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-problems">build problems</a>:</td><td> </td><td valign="top"><a href="#Build-problems">Build problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Build-script"><code>Build <span class="roman">script</span></code></a>:</td><td> </td><td valign="top"><a href="#Building">Building</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-system_002c-design-of">build system, design of</a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BUILDCC_002c-BUILDCFLAGS_002c-_2026"><code>BUILDCC<span class="roman">,</span> BUILDCFLAGS<span class="roman">, …</span></code></a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-building">building</a>:</td><td> </td><td valign="top"><a href="#Building">Building</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-building-a-distribution">building a distribution</a>:</td><td> </td><td valign="top"><a href="#Build-distribution">Build distribution</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-building-in-parallel">building in parallel</a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-C">C</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-C_002c-ANSI_002c-required">C, ANSI, required</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-C99_002c-avoided">C99, avoided</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cache-file_002c-for-configure">cache file, for <code>configure</code></a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cache-for-configure">cache for <code>configure</code></a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-callexe_002ec"><code>callexe.c</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CC"><code>CC</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CC_005fBUILD"><code>CC_BUILD</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-chktex"><code>chktex</code></a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-clisp"><code>clisp</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CLISP-1"><code>CLISP</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CLISP">CLISP</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-clisp_002c-required-by-xindy"><code>clisp</code>, required by <code>xindy</code></a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-coding-conventions">coding conventions</a>:</td><td> </td><td valign="top"><a href="#Coding-conventions">Coding conventions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compilers_002c-C-and-C_002b_002b">compilers, C and C++</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002eguess_002c-config_002esub"><code>config.guess<span class="roman">,</span> config.sub</code></a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options"><code>configure</code> options</a>:</td><td> </td><td valign="top"><a href="#Configure-options">Configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-bibtex_002dx"><code>configure</code> options, for <code>bibtex-x</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fbibtex_002dx">Configure options for <samp>texk/bibtex-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-dvipdfm_002dx"><code>configure</code> options, for <code>dvipdfm-x</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvipdfm_002dx">Configure options for <samp>texk/dvipdfm-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-dvisvgm"><code>configure</code> options, for <samp>dvisvgm</samp></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvisvgm">Configure options for <samp>texk/dvisvgm</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-kpathsea"><code>configure</code> options, for <code>kpathsea</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-kpathsea">Configure options for <code>kpathsea</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-system-poppler"><code>configure</code> options, for system <code>poppler</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-system-poppler">Configure options for system <code>poppler</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-texk_002ftexlive"><code>configure</code> options, for <samp>texk/texlive</samp></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002ftexlive">Configure options for <samp>texk/texlive</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-web2c"><code>configure</code> options, for <code>web2c</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-xdvik"><code>configure</code> options, for <samp>xdvik</samp></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-xindy"><code>configure</code> options, for <samp>xindy</samp></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-global"><code>configure</code> options, global</a>:</td><td> </td><td valign="top"><a href="#Global-configure-options">Global configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-library_002dspecific"><code>configure</code> options, library-specific</a>:</td><td> </td><td valign="top"><a href="#Library_002dspecific-configure-options">Library-specific configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-program_002dspecific"><code>configure</code> options, program-specific</a>:</td><td> </td><td valign="top"><a href="#Program_002dspecific-configure-options">Program-specific configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-variables"><code>configure</code> variables</a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuring_002c-for-cross-compilation">configuring, for cross compilation</a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-const"><code>const</code></a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conventions_002c-coding">conventions, coding</a>:</td><td> </td><td valign="top"><a href="#Coding-conventions">Coding conventions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CPPFLAGS"><code>CPPFLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross-compilation">cross compilation</a>:</td><td> </td><td valign="top"><a href="#Cross-compilation">Cross compilation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross-compilation-configuring">cross compilation configuring</a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross-compilation-problems">cross compilation problems</a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross-compilation_002c-with-host-binary">cross compilation, with host binary</a>:</td><td> </td><td valign="top"><a href="#xdvik-package"><code>xdvik</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ctangle"><code>ctangle</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CXX"><code>CXX</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-D">D</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-declarations-and-definitions_002c-in-source-code">declarations and definitions, in source code</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dependencies_002c-with-several-output-files">dependencies, with several output files</a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DESTDIR"><code>DESTDIR</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026"><code>--prefix</code> <code>--bindir</code> …</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-directories_002c-for-installation">directories, for installation</a>:</td><td> </td><td valign="top"><a href="#Installation-directories">Installation directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-directories_002c-top_002dlevel">directories, top-level</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-discards-qualifiers-warning">discards qualifiers warning</a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dist-and-distcheck-targets-for-make"><code>dist</code> and <code>distcheck</code> targets for <code>make</code></a>:</td><td> </td><td valign="top"><a href="#Build-distribution">Build distribution</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-distribution-tarball_002c-making">distribution tarball, making</a>:</td><td> </td><td valign="top"><a href="#Build-distribution">Build distribution</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-distro_002c-building-for">distro, building for</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfmx"><code>dvipdfmx</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvipdfm_002dx">Configure options for <samp>texk/dvipdfm-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvisvgm"><code>dvisvgm</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvisvgm">Configure options for <samp>texk/dvisvgm</samp></a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-E">E</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-environment-variables_002c-for-configure">environment variables, for <code>configure</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options">Configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-exec_005fprefix"><code>exec_prefix</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dmultiplatform"><code>--enable-multiplatform</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extending-TeX-Live">extending TeX Live</a>:</td><td> </td><td valign="top"><a href="#Extending-TeX-Live">Extending TeX Live</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extern-functions"><code>extern</code> functions</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extra_002f-top_002dlevel-directory"><samp>extra/</samp> top-level directory</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-F">F</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-failure-to-build">failure to build</a>:</td><td> </td><td valign="top"><a href="#Build-problems">Build problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ffcall_002c-required-by-xindy"><code>ffcall</code>, required by <code>xindy</code></a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-flags_002c-macros-for-library-and-header">flags, macros for library and header</a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fontconfig-library_002c-required-by-xetex"><code>fontconfig</code> library, required by <code>xetex</code></a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FreeType">FreeType</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-freetype-cross-compiling"><code>freetype</code> cross compiling</a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-freetype-library"><code>freetype <span class="roman">library</span></code></a>:</td><td> </td><td valign="top"><a href="#freetype-library"><code>freetype</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-freetype_002dconfig"><code>freetype-config</code></a>:</td><td> </td><td valign="top"><a href="#freetype-library"><code>freetype</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-freetype_002dconfig-1"><code>freetype-config</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FT2_005fCONFIG"><code>FT2_CONFIG</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-G">G</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-general-setup-macros">general setup macros</a>:</td><td> </td><td valign="top"><a href="#General-setup-macros">General setup macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-generic-library-module_002c-adding">generic library module, adding</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-global-configure-options">global <code>configure</code> options</a>:</td><td> </td><td valign="top"><a href="#Global-configure-options">Global configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gmake_002c-required"><code>gmake</code>, required</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GNU-make_002c-required">GNU <code>make</code>, required</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GNU-tools_002c-needed-for-building">GNU tools, needed for building</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GNU_002fLinux-distro">GNU/Linux distro</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Gnulib_002c-used-for-common-files">Gnulib, used for common files</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-I">I</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-iconv"><code>iconv</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ICU-cross-compiling">ICU cross compiling</a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ICU-libraries">ICU libraries</a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-icu_002dconfig"><code>icu-config</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ICU_005fCONFIG"><code>ICU_CONFIG</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-infrastructure_002c-tools-needed-for">infrastructure, tools needed for</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-install_002dtl_002c-TeX-Live-installer"><code>install-tl<span class="roman">, TeX Live installer</span></code></a>:</td><td> </td><td valign="top"><a href="#Installing">Installing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-installation-directories">installation directories</a>:</td><td> </td><td valign="top"><a href="#Installation-directories">Installation directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-installing">installing</a>:</td><td> </td><td valign="top"><a href="#Installing">Installing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-interprocess-communication">interprocess communication</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-introduction">introduction</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-iteration-through-sources_002c-by-configure-and-make">iteration through sources, by <code>configure</code> and <code>make</code></a>:</td><td> </td><td valign="top"><a href="#Build-iteration">Build iteration</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-K">K</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea-library"><code>kpathsea <span class="roman">library</span></code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_002eac"><code>kpathsea.ac</code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002dlibpng_002dflags_002em4"><code>kpse-libpng-flags.m4</code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002dpkgs_002em4"><code>kpse-pkgs.m4</code></a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002dzlib_002dflags_002em4"><code>kpse-zlib-flags.m4</code></a>:</td><td> </td><td valign="top"><a href="#zlib-library"><code>zlib</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpsewhich"><code>kpsewhich</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSEWHICH"><code>KPSEWHICH</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fADD_005fFLAGS"><code>KPSE_ADD_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fALL_005fSYSTEM_005fFLAGS"><code>KPSE_ALL_SYSTEM_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fBASIC"><code>KPSE_BASIC</code></a>:</td><td> </td><td valign="top"><a href="#General-setup-macros">General setup macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCHECK_005fLATEX"><code>KPSE_CHECK_LATEX</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-programs">Macros for programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCHECK_005fPDFLATEX"><code>KPSE_CHECK_PDFLATEX</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-programs">Macros for programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCHECK_005fPERL"><code>KPSE_CHECK_PERL</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-programs">Macros for programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCHECK_005fWIN32"><code>KPSE_CHECK_WIN32</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOMMON"><code>KPSE_COMMON</code></a>:</td><td> </td><td valign="top"><a href="#General-setup-macros">General setup macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOMPILER_005fVISIBILITY"><code>KPSE_COMPILER_VISIBILITY</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOMPILER_005fWARNINGS"><code>KPSE_COMPILER_WARNINGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOND_005fMINGW32"><code>KPSE_COND_MINGW32</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOND_005fWIN32"><code>KPSE_COND_WIN32</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOND_005fWIN32_005fWRAP"><code>KPSE_COND_WIN32_WRAP</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005fcv_005fcxx_005fhack"><code>kpse_cv_cxx_hack</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005fcv_005fhave_005fwin32"><code>kpse_cv_have_win32</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005fcv_005fvisibility_005fc_005bxx_005dflags"><code>kpse_cv_visibility_c[xx]flags</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005fcv_005fwarning_005fcflags"><code>kpse_cv_warning_cflags</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCXX_005fHACK"><code>KPSE_CXX_HACK</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fENABLE_005fPROG"><code>KPSE_ENABLE_PROG</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLARGEFILE"><code>KPSE_LARGEFILE</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-libraries">Macros for libraries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLIBPNG_005fFLAGS"><code>KPSE_LIBPNG_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLIBPNG_005fFLAGS-1"><code>KPSE_LIBPNG_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005flibs_005fpkgs"><code>kpse_libs_pkgs</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLIB_005fFLAGS"><code>KPSE_<var>LIB</var>_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLIB_005fFLAGS-1"><code>KPSE_<var>LIB</var>_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLIB_005fSYSTEM_005fFLAGS"><code>KPSE_<var>LIB</var>_SYSTEM_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fPROG_005fLEX"><code>KPSE_PROG_LEX</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-programs">Macros for programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fRESTORE_005fFLAGS"><code>KPSE_RESTORE_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005ftexk_005fpkgs"><code>kpse_texk_pkgs</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005ftexlibs_005fpkgs"><code>kpse_texlibs_pkgs</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-TeX_002dspecific-library-module">Adding a new TeX-specific library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fTRY_005fLIB"><code>KPSE_TRY_LIB</code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fTRY_005fLIB-1"><code>KPSE_TRY_LIB</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fTRY_005fLIBXX"><code>KPSE_TRY_LIBXX</code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fTRY_005fLIBXX-1"><code>KPSE_TRY_LIBXX</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005futils_005fpkgs"><code>kpse_utils_pkgs</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fWIN32_005fCALL"><code>KPSE_WIN32_CALL</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fWITH_005fLIB"><code>KPSE_WITH_LIB</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fWITH_005fTEXLIB"><code>KPSE_WITH_TEXLIB</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-TeX_002dspecific-library-module">Adding a new TeX-specific library module</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-L">L</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-large-file-support">large file support</a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LATEX"><code>LATEX</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-layout-of-sources">layout of sources</a>:</td><td> </td><td valign="top"><a href="#Layout-and-infrastructure">Layout and infrastructure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LFS-_0028large-file-support_0029">LFS (large file support)</a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libfreetype"><code>libfreetype</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libfreetype_002c-and-const"><code>libfreetype</code>, and <code>const</code></a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libpng-library"><code>libpng <span class="roman">library</span></code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-library-module_002c-generic_002c-adding">library module, generic, adding</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-library-module_002c-TeX_002dspecific_002c-adding">library module, TeX-specific, adding</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-TeX_002dspecific-library-module">Adding a new TeX-specific library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-library-modules">library modules</a>:</td><td> </td><td valign="top"><a href="#Library-modules">Library modules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-library_002dspecific-configure-options">library-specific <code>configure</code> options</a>:</td><td> </td><td valign="top"><a href="#Library_002dspecific-configure-options">Library-specific configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libstc_002b_002b_002c-statically-linking"><code>libstc++<span class="roman">, statically linking</span></code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Libtool">Libtool</a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libtool_002c-hack-for-avoiding-excessive-linking"><code>libtool<span class="roman">, hack for avoiding excessive linking</span></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libXt"><code>libXt</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linked-scripts">linked scripts</a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linking-C_002b_002b-libraries-statically">linking C++ libraries statically</a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lisp_002erun_002c-lisp_002eexe"><code>lisp.run<span class="roman">,</span> lisp.exe</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LittleEndian-architectures">LittleEndian architectures</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-M">M</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-m4_002f-top_002dlevel-directory"><samp>m4/</samp> top-level directory</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-for-compilers">macros, for compilers</a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-for-libraries">macros, for libraries</a>:</td><td> </td><td valign="top"><a href="#Macros-for-libraries">Macros for libraries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-for-library-and-header-flags">macros, for library and header flags</a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-for-programs">macros, for programs</a>:</td><td> </td><td valign="top"><a href="#Macros-for-programs">Macros for programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-for-Windows">macros, for Windows</a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-general-setup">macros, general setup</a>:</td><td> </td><td valign="top"><a href="#General-setup-macros">General setup macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MAKE"><code>MAKE</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-make-_002dt"><code>make -t</code></a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mf_002dnowin"><code>mf-nowin</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mingw32"><code>mingw32</code></a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MINGW32_002c-Automake-conditional"><code>MINGW32<span class="roman">, Automake conditional</span></code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktex_002eac"><code>mktex.ac</code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktextfm"><code>mktextfm</code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-modules_002c-for-libraries">modules, for libraries</a>:</td><td> </td><td valign="top"><a href="#Library-modules">Library modules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-modules_002c-for-programs">modules, for programs</a>:</td><td> </td><td valign="top"><a href="#Program-modules">Program modules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-motif"><code>motif</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-N">N</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-native-cross-compilation">native cross compilation</a>:</td><td> </td><td valign="top"><a href="#Cross-compilation">Cross compilation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-O">O</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-one-package_002c-building">one package, building</a>:</td><td> </td><td valign="top"><a href="#Build-one-package">Build one package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-OpenGL_002c-required-for-Asymptote">OpenGL, required for Asymptote</a>:</td><td> </td><td valign="top"><a href="#asymptote"><code>asymptote</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-operating-system-distribution_002c-building-for">operating system distribution, building for</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-opl2ofm_002c-et-al_002e"><code>opl2ofm<span class="roman">, et al.</span></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-otangle"><code>otangle</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-overall-build-process">overall build process</a>:</td><td> </td><td valign="top"><a href="#Building">Building</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-P">P</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-parallel-build">parallel build</a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-paths_002c-for-installation">paths, for installation</a>:</td><td> </td><td valign="top"><a href="#Installation-directories">Installation directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDF-files_002c-size-of">PDF files, size of</a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDFLATEX"><code>PDFLATEX</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PERL"><code>PERL</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-perl_002c-required-by-web2c_002c-etc_002e"><code>perl</code>, required by <code>web2c</code>, etc.</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PKG_005fCONFIG"><code>PKG_CONFIG</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain_002etex_002c-not-in-source-tree"><code>plain.tex<span class="roman">, not in source tree</span></code></a>:</td><td> </td><td valign="top"><a href="#Installing">Installing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-png-library"><code>png <span class="roman">library</span></code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-poppler"><code>poppler</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-system-poppler">Configure options for system <code>poppler</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-files_002c-size-of">PostScript files, size of</a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Preining_002c-Norbert">Preining, Norbert</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-preloaded-binaries">preloaded binaries</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-prerequisites-for-building">prerequisites for building</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-problems-with-build">problems with build</a>:</td><td> </td><td valign="top"><a href="#Build-problems">Build problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-program-module_002c-adding">program module, adding</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-program-modules">program modules</a>:</td><td> </td><td valign="top"><a href="#Program-modules">Program modules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-program_002dspecific-configure-options">program-specific <code>configure</code> options</a>:</td><td> </td><td valign="top"><a href="#Program_002dspecific-configure-options">Program-specific configure options</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-R">R</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-reautoconf"><code>reautoconf</code></a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-recode"><code>recode</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-requirements-for-building">requirements for building</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-runscript_002eexe"><code>runscript.exe</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-S">S</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-scripts_002c-linked-and-not-maintained">scripts, linked and not maintained</a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-scrolling"><code>scrolling</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SED"><code>SED</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-setup-macros_002c-general">setup macros, general</a>:</td><td> </td><td valign="top"><a href="#General-setup-macros">General setup macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-shared-libraries_002c-using-vs_002e-avoiding">shared libraries, using vs. avoiding</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-size-of-PDF-and-PS-files">size of PDF and PS files</a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-size-of-source-tree">size of source tree</a>:</td><td> </td><td valign="top"><a href="#Build-one-package">Build one package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-source-code-declarations">source code declarations</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-source-directory-building_002c-not-supported">source directory building, not supported</a>:</td><td> </td><td valign="top"><a href="#Building">Building</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-source-tree">source tree</a>:</td><td> </td><td valign="top"><a href="#Layout-and-infrastructure">Layout and infrastructure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-squeeze"><code>squeeze</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-squeeze_002fconfigure_002eac"><code>squeeze/configure.ac</code></a>:</td><td> </td><td valign="top"><a href="#xdvik-package"><code>xdvik</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-static-functions"><code>static</code> functions</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-static-linking-for-C_002b_002b">static linking for C++</a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-stpcpy"><code>stpcpy</code></a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Subversion-repository">Subversion repository</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-support-files_002c-separate-from-build">support files, separate from build</a>:</td><td> </td><td valign="top"><a href="#Installing">Installing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-symlinks_002c-used-for-scripts">symlinks, used for scripts</a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-synctex">synctex</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-system-distribution_002c-building-for">system distribution, building for</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-T">T</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-t1utils-package"><code>t1utils <span class="roman">package</span></code></a>:</td><td> </td><td valign="top"><a href="#t1utils-package"><code>t1utils</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tangle"><code>tangle</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tests_002c-running">tests, running</a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002dspecific-library-module_002c-adding">TeX-specific library module, adding</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-TeX_002dspecific-library-module">Adding a new TeX-specific library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texlive_002etlpdb_002c-TeX-Live-database"><code>texlive.tlpdb<span class="roman">, TeX Live database</span></code></a>:</td><td> </td><td valign="top"><a href="#Installing">Installing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tie"><code>tie</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-timestamps_002c-in-repository">timestamps, in repository</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tools_002c-for-building">tools, for building</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-top_002dlevel-directories">top-level directories</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-touching-files-to-avoid-rerunning">touching files to avoid rerunning</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-txt2zlib"><code>txt2zlib</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-type-cast_002c-avoiding">type cast, avoiding</a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-U">U</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-use_002dcommit_002dtimes_002c-Subversion"><code>use-commit-times<span class="roman">, Subversion</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-V">V</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-variable-declarations_002c-in-source-code">variable declarations, in source code</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-variables-for-configure">variables for <code>configure</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-W">W</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-warning_002c-discards-qualifiers">warning, discards qualifiers</a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WARNING_005fC_005bXX_005dFLAGS"><code>WARNING_C[XX]FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-web2c-program"><code>web2c <span class="roman">program</span></code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-web2c_002eac"><code>web2c.ac</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-wget"><code>wget</code></a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WIN32_002c-Automake-conditional"><code>WIN32<span class="roman">, Automake conditional</span></code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WIN32_005fWRAP_002c-Automake-conditional"><code>WIN32_WRAP<span class="roman">, Automake conditional</span></code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Windows_002c-invoking-scripts-on">Windows, invoking scripts on</a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Windows_002c-macros-for">Windows, macros for</a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-withenable_002eac_002c-for-new-modules"><code>withenable.ac<span class="roman">, for new modules</span></code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-wrapper-binary-for-scripts-on-Windows">wrapper binary for scripts on Windows</a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-X">X</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-X-toolkit">X toolkit</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-X11-headers_002c-and-const">X11 headers, and <code>const</code></a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-X11_002c-required-by-X-clients">X11, required by X clients</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xasy"><code>xasy</code></a>:</td><td> </td><td valign="top"><a href="#asymptote"><code>asymptote</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xaw"><code>xaw</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xdvik"><code>xdvik</code></a>:</td><td> </td><td valign="top"><a href="#xdvik-package"><code>xdvik</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xdvik-1"><code>xdvik</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xdvipdfmx"><code>xdvipdfmx</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvipdfm_002dx">Configure options for <samp>texk/dvipdfm-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xindy"><code>xindy</code></a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xindy-1"><code>xindy</code></a>:</td><td> </td><td valign="top"><a href="#xindy-package"><code>xindy</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xindy-2"><code>xindy</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xindy-cross-compiling-impossible"><code>xindy</code> cross compiling impossible</a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-XInput"><code>XInput</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Xlib"><code>Xlib</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xpdf-as-library"><code>xpdf <span class="roman">as library</span></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-system-poppler">Configure options for system <code>poppler</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xz"><code>xz</code></a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-Z">Z</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-zlib-library"><code>zlib <span class="roman">library</span></code></a>:</td><td> </td><td valign="top"><a href="#zlib-library"><code>zlib</code> library</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>-</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a> + +</td></tr></table> + +<hr> + + + +</body> +</html> diff --git a/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.pdf b/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.pdf Binary files differnew file mode 100644 index 00000000000..0873eca1bf8 --- /dev/null +++ b/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.pdf |