diff options
author | Karl Berry <karl@freefriends.org> | 2017-02-13 19:32:16 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-02-13 19:32:16 +0000 |
commit | 11e8da1007c229802798bcb15cc69c62f5b8e5f6 (patch) | |
tree | 21ea55592dac546a4558e8a958db8f2e21f1505e /Build/source/doc | |
parent | 5ef2fb04a27cd5ef7c85fbefec889b2503259290 (diff) |
TL source doc updates for TLPATCHES, dvisvgm, m4 1.4.18
git-svn-id: svn://tug.org/texlive/trunk@43213 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/doc')
-rw-r--r-- | Build/source/doc/build-tools.txt | 2 | ||||
-rw-r--r-- | Build/source/doc/tlbuild.info | 759 | ||||
-rw-r--r-- | Build/source/doc/tlbuild.texi | 122 |
3 files changed, 466 insertions, 417 deletions
diff --git a/Build/source/doc/build-tools.txt b/Build/source/doc/build-tools.txt index 4da14b3889a..67eeb3c6270 100644 --- a/Build/source/doc/build-tools.txt +++ b/Build/source/doc/build-tools.txt @@ -3,5 +3,5 @@ automake (GNU automake) 1.15 bison (GNU Bison) 3.0.4 flex 2.6.0 ltmain.sh (GNU libtool) 2.4.6 -m4 (GNU M4) 1.4.17 +m4 (GNU M4) 1.4.18 makeinfo (GNU texinfo) 6.1 diff --git a/Build/source/doc/tlbuild.info b/Build/source/doc/tlbuild.info index e30d2b914c1..98e2d5b8ef6 100644 --- a/Build/source/doc/tlbuild.info +++ b/Build/source/doc/tlbuild.info @@ -3,8 +3,8 @@ tlbuild.texi. This file documents the TeX Live build system and more. - Copyright (C) 2016 Karl Berry. -Copyright (C) 2013, 2014, 2015 Karl Berry & Peter Breitenlohner. +Copyright (C) 2016-2017 Karl Berry. +Copyright (C) 2013-2015 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 @@ -53,7 +53,8 @@ File: tlbuild.info, Node: Introduction, Next: Overview of build system, Prev: 1 Introduction ************** -This manual (dated April 2016) corresponds to the TeX Live 2016 release. +This manual (dated February 2017) corresponds to the TeX Live 2016 +release. This manual is aimed at system installers and programmers, and focuses on how to configure, build, and develop the TeX Live (TL) @@ -90,8 +91,8 @@ found in other TL documentation resources, such as: As an exception, the full documentation for 'install-tl' and 'tlmgr' is included here, just because it is convenient to do so. The same text is available online (linked from <http://tug.org/texlive/doc.html>, or -by invoking the program with '--help' (or look at the end of the source -file). +by invoking the program with '--help' (or look at the end of the +source). File: tlbuild.info, Node: Overview of build system, Next: Prerequisites, Prev: Introduction, Up: Top @@ -127,8 +128,8 @@ list of all 'configure' options. 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, 'configure' options to be -seen at the top-level, and more. An explicit list of all available -modules is kept in only one, central, place ('m4/kpse-pkgs.m4'). +seen at the top level, and more. An explicit list of all available +modules is kept in only one central place, namely 'm4/kpse-pkgs.m4'. A second, related goal is to configure and build each library before configuring any other (program or library) module which uses that @@ -140,9 +141,9 @@ version of that library. independently. The corresponding modules use (most of) the distributed source tree and document any modifications of that source. - All this is for the sake of simplifying both upgrading of modules -maintained independently and integrating new modules into the TL build -system. (Not to say that either task is trivial.) + All this is for the sake of simplifying both upgrading of modules and +integrating new modules into the TL build system. (Not to say that +either task is trivial.) File: tlbuild.info, Node: Prerequisites, Next: Building, Prev: Overview of build system, Up: Top @@ -155,13 +156,17 @@ the TL source tree, requires only C and C++ compilers and GNU 'make'. (If 'make' from your 'PATH' is not GNU make, you can set 'MAKE' in the environment to whatever is necessary.) - Indeed, GNU 'make' is required only because of some third-party -libraries, notably FreeType; all the TL-maintained directories (and + GNU 'make' 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 'make'. However, a few programs in the tree have additional requirements: +'dvisvgm' + requires a C++11 compiler, such as gcc 4.8.1 (or later) or clang + 3.3 (or later). + 'web2c' requires 'perl' for some tests run by 'make check'. @@ -267,7 +272,7 @@ File: tlbuild.info, Node: Build problems, Next: Build in parallel, Prev: Buil If configuring or building a module fails, you should first find and fix the problem, then perhaps remove the subdirectory for that module from -the build tree, and finally rerun the top-level 'make' (or 'Build' with +the build tree, and finally rerun the top level 'make' (or 'Build' with '--no-clean' as its first argument). @@ -291,7 +296,7 @@ File: tlbuild.info, Node: Build distribution, Next: Build one package, Prev: 4.4 Build distribution ====================== -Running 'make dist' at the top-level creates a tarball +Running 'make dist' at the top level creates a tarball 'tex-live-YYYY-MM-DD.tar.xz' from the TL source tree. Running 'make distcheck' also verifies that this tarball suffices to build and install all of TL. @@ -557,12 +562,12 @@ build and install them together with some of their support files. * Menu: -* Build system tools:: If modifying infrastructure files. -* Top-level directories:: -* Autoconf macros:: TL-specific Autoconf macros. -* Library modules:: Details on some specific libraries, -* Program modules:: and on some programs. -* Extending TeX Live:: Adding a new module. +* Build system tools:: Modifying infrastructure files. +* Top-level directories:: libs texk utils; am auxdir build-aux m4; doc extra. +* Autoconf macros:: TL-specific Autoconf macros. +* Library modules:: Handling libraries, with examples. +* Program modules:: Handling programs, with examples. +* Extending TeX Live:: Adding a new module. File: tlbuild.info, Node: Build system tools, Next: Top-level directories, Up: Layout and infrastructure @@ -589,7 +594,7 @@ many extra hassles, so don't do that, tempting as it may be. bison (GNU Bison) 3.0.4 flex 2.6.0 ltmain.sh (GNU libtool) 2.4.6 - m4 (GNU M4) 1.4.17 + m4 (GNU M4) 1.4.18 makeinfo (GNU texinfo) 6.1 These versions should be used to update the generated files (e.g., @@ -623,11 +628,11 @@ the main source directories are 'texk/' (TeX-specific programs and libraries), 'utils/' (additional programs), and 'libs/' (generic libraries). - The top-level directories 'am/' and 'm4/' contain 'Makefile.am' -fragments and Autoconf macros, respectively, used in many places. -Specifically, the file 'm4/kpse-pkgs.m4' contains lists of all program -and library modules; missing modules are silently ignored. (This helps -in creating cut-down source trees.) + In addition, the top-level directories 'am/' and 'm4/' contain +'Makefile.am' fragments and Autoconf macros, respectively, used in many +places. Specifically, the file 'm4/kpse-pkgs.m4' contains lists of all +program and library modules; missing modules are silently ignored. +(This helps in creating cut-down source trees.) Each module contributes fragments (in separate files) defining its capabilities and requirements to the 'configure.ac' scripts at the @@ -640,17 +645,23 @@ configured for the benefit of 'make' targets such as 'dist' or 'distcheck'. The top-level 'build-aux/' directory contains the common files -'compile', 'config.guess', 'config.sub', 'depcomp', etc. for most -packages, pulled from the GNU Gnulib sources +'compile', 'config.guess', 'config.sub', 'depcomp', etc. used by most +packages. These are from the GNU Gnulib sources (<http://www.gnu.org/software/gnulib>), which in turn synchronizes with the appropriate ultimate upstream repository. There are, however, independent copies in, e.g., 'libs/freetype2/freetype-*/builds/unix/', -and similar places. The 'reautoconf' script does not touch those, but a -TL cron job keeps them in sync (nightly). +and a few other places. The 'reautoconf' script does not touch those, +but a TL cron job keeps them in sync (nightly). The directory 'extra/' contains things which are not part of the TL -build, but are present just for (someone's) convenience, e.g., -'epstopdf' which is developed here. +build, but are present just for (someone's) convenience, e.g., is +'epstopdf' development source is here. + + When the top-level './Build' script is used to build TL, two more two +more top-level directories appear: 'Work/' for the build tree, and +'inst/' for the install tree (from 'make install'). These names (and +everything else about 'Build''s operation) can be changed by setting +environment variables before running it; see the script file. File: tlbuild.info, Node: Autoconf macros, Next: Library modules, Prev: Top-level directories, Up: Layout and infrastructure @@ -881,9 +892,8 @@ File: tlbuild.info, Node: png library, Next: zlib library, Up: Library module ---------------------------------------- This generic library uses the source tree in, e.g., the subdirectory -'libpng-1.6.16' with all modifications for TL recorded in -'libpng-1.6.16-PATCHES/*'. The 'configure.ac' fragment -'ac/withenable.ac' contains +'libpng-src/' with all modifications for TL recorded in 'TLPATCHES/*'. +The 'configure.ac' fragment 'ac/withenable.ac' contains KPSE_WITH_LIB([libpng], [zlib]) @@ -1002,9 +1012,9 @@ File: tlbuild.info, Node: t1utils package, Next: xindy package, Up: Program m 6.5.1 The 't1utils' package in 'utils/t1utils' ---------------------------------------------- -Once again we use the distributed source tree 't1utils-1.39' with -modifications documented in 't1utils-1.39-PATCHES/*' and a proxy build -system consisting of 'configure.ac' and 'Makefile.am'. The fragment +Once again we use the distributed source tree 't1utils-src' with +modifications documented in 'TLPATCHES/*' and a proxy build system +consisting of 'configure.ac' and 'Makefile.am'. The fragment 'ac/withenable.ac' contains KPSE_ENABLE_PROG([t1utils]) @@ -1018,12 +1028,11 @@ File: tlbuild.info, Node: xindy package, Next: xdvik package, Prev: t1utils p 6.5.2 The 'xindy' package in 'utils/xindy' ------------------------------------------ -This module uses the distributed source tree 'xindy-2.5.1' with -modifications documented in 'xindy-2.5.1-PATCHES/*', a proxy -'configure.ac', and a wrapper 'Makefile.am' that descends into -'xindy-2.5.1'. The 'xindy' build requires that the distributed -'Makefile's allow a 'VPATH' build, can handle all targets, and do not -refer to '${top_srcdir}' or '${top_builddir}'. The fragment +This module uses the distributed source tree 'xindy-src/' with +modifications documented in 'TLPATCHES/*', a proxy 'configure.ac', and a +wrapper 'Makefile.am' that descends into 'xindy-src'. The 'xindy' build +requires a 'make' that supports a 'VPATH' build, can handle all targets, +and do not refer to '${top_srcdir}' or '${top_builddir}'. The fragment 'ac/withenable.ac' contains KPSE_ENABLE_PROG([xindy], , [disable native]) @@ -1083,6 +1092,13 @@ File: tlbuild.info, Node: Extending TeX Live, Prev: Program modules, Up: Layo This section outlines the basic process for adding new packages to the TL build system. + In any case, a new package directory 'foo' should contain the +original sources, as modified for TL, in 'foo/foo-src', and the changes +should be documented in 'foo/TLPATCHES/*'; changes should also be +submitted upstream whenever reasonable, of course. In addition, 'foo/' +will need the usual Automake build-related files ('configure.ac', +'Makefile.am', etc. Please keep a 'ChangeLog' for all TL changes. + * Menu: * Adding a new program module:: @@ -1857,8 +1873,9 @@ 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 -'const'. These rules should be applied to all parts of the TeX Live -tree, except some of those maintained independently. +'const'. These rules should be applied to most of the TeX Live tree, +the exception being code that is maintained independently and whose +maintainers don't want to accept patches. * Menu: @@ -4510,7 +4527,7 @@ Index * ANSI C: Declarations and definitions. (line 6) * ApplicationServices Mac framework, required by xetex: Prerequisites. - (line 27) + (line 31) * asymptote: Linked scripts. (line 22) * asymptote <1>: asymptote. (line 6) * Autoconf: Overview of build system. @@ -4534,10 +4551,13 @@ Index * Build script: Building. (line 6) * build system, design of: Overview of build system. (line 6) +* build-aux/ top-level directory: Top-level directories. + (line 30) * BUILDCC, BUILDCFLAGS, ...: Cross configuring. (line 42) * building: Building. (line 6) * building a distribution: Build distribution. (line 6) * building in parallel: Build in parallel. (line 6) +* C++11, required by dvisvgm: Prerequisites. (line 19) * C, ANSI, required: Declarations and definitions. (line 6) * C99, avoided: Declarations and definitions. @@ -4558,11 +4578,11 @@ Index (line 17) * CLISP <1>: Configure options for utils/xindy. (line 14) -* clisp, required by xindy: Prerequisites. (line 31) -* Cocoa Mac framework, required by xetex: Prerequisites. (line 27) +* clisp, required by xindy: Prerequisites. (line 35) +* Cocoa Mac framework, required by xetex: Prerequisites. (line 31) * coding conventions: Coding conventions. (line 6) * compilers, C and C++: Prerequisites. (line 6) -* config.guess, config.sub: Top-level directories. +* config.guess, config.sub, ...: Top-level directories. (line 30) * configure options: Configure options. (line 6) * configure options, for bibtex-x: Configure options for texk/bibtex-x. @@ -4604,7 +4624,7 @@ Index * CXX: Variables for configure. (line 11) * CXX=C++-COMPILER: Build one package. (line 74) -* Debian installation of build prerequisites: Prerequisites. (line 56) +* Debian installation of build prerequisites: Prerequisites. (line 60) * declarations and definitions, in source code: Declarations and definitions. (line 6) * dependencies, with several output files: Build in parallel. (line 6) @@ -4622,6 +4642,7 @@ Index (line 6) * dvisvgm: Configure options for texk/dvisvgm. (line 6) +* dvisvgm requirement for C++11: Prerequisites. (line 19) * environment variables, for configure: Configure options. (line 16) * exec_prefix: --enable-multiplatform. (line 6) @@ -4631,10 +4652,10 @@ Index * extra/ top-level directory: Top-level directories. (line 39) * failure to build: Build problems. (line 6) -* ffcall, required by xindy: Prerequisites. (line 31) +* ffcall, required by xindy: Prerequisites. (line 35) * flags, macros for library and header: Macros for library and header flags. (line 6) -* fontconfig library, required by xetex: Prerequisites. (line 27) +* fontconfig library, required by xetex: Prerequisites. (line 31) * FreeType: Prerequisites. (line 11) * freetype cross compiling: Cross problems. (line 13) * freetype library: freetype library. (line 6) @@ -4663,6 +4684,8 @@ Index * ICU_CONFIG: Variables for configure. (line 22) * infrastructure, tools needed for: Build system tools. (line 6) +* inst/ top-level directory: Top-level directories. + (line 43) * install-tl, TeX Live installer: Installing. (line 8) * installation directories: Installation directories. (line 6) @@ -4674,7 +4697,7 @@ Index (line 6) * kpathsea library: kpathsea library. (line 6) * kpathsea.ac: kpathsea library. (line 20) -* kpse-libpng-flags.m4: png library. (line 43) +* kpse-libpng-flags.m4: png library. (line 42) * kpse-pkgs.m4: Overview of build system. (line 30) * kpse-zlib-flags.m4: zlib library. (line 6) @@ -4707,7 +4730,7 @@ Index * KPSE_LARGEFILE: Macros for libraries. (line 8) * KPSE_LIBPNG_FLAGS: Macros for library and header flags. (line 10) -* KPSE_LIBPNG_FLAGS <1>: png library. (line 43) +* KPSE_LIBPNG_FLAGS <1>: png library. (line 42) * kpse_libs_pkgs: Adding a new generic library module. (line 6) * KPSE_LIB_FLAGS: Macros for library and header flags. @@ -4723,10 +4746,10 @@ Index (line 6) * kpse_texlibs_pkgs: Adding a new TeX-specific library module. (line 11) -* KPSE_TRY_LIB: png library. (line 18) +* KPSE_TRY_LIB: png library. (line 17) * KPSE_TRY_LIB <1>: Adding a new generic library module. (line 20) -* KPSE_TRY_LIBXX: png library. (line 31) +* KPSE_TRY_LIBXX: png library. (line 30) * KPSE_TRY_LIBXX <1>: Adding a new generic library module. (line 20) * kpse_utils_pkgs: Adding a new program module. @@ -4803,7 +4826,7 @@ Index (line 41) * PERL: Variables for configure. (line 39) -* perl, required by web2c, etc.: Prerequisites. (line 19) +* perl, required by web2c, etc.: Prerequisites. (line 23) * PKG_CONFIG: Variables for configure. (line 23) * plain.tex, not in source tree: Installing. (line 8) @@ -4884,11 +4907,13 @@ Index * Windows, macros for: Macros for Windows. (line 6) * withenable.ac, for new modules: Adding a new program module. (line 14) +* Work/ top-level directory: Top-level directories. + (line 43) * wrapper binary for scripts on Windows: Linked scripts. (line 6) * X toolkit: Configure options for texk/web2c. (line 22) * X11 headers, and const: Const. (line 21) -* X11, required by X clients: Prerequisites. (line 23) +* X11, required by X clients: Prerequisites. (line 27) * xasy: asymptote. (line 6) * xaw: Configure options for texk/xdvik. (line 9) @@ -4914,313 +4939,313 @@ Index Tag Table: -Node: Top1030 -Node: Introduction1948 -Node: Overview of build system3705 -Node: Prerequisites5769 -Node: Building8073 -Node: Build iteration9321 -Node: Build problems10393 -Node: Build in parallel10796 -Node: Build distribution11388 -Node: Build one package11959 -Node: Installing15545 -Node: Installation directories16560 -Node: Linked scripts18376 -Node: Distro builds19857 -Node: Layout and infrastructure22247 -Node: Build system tools23036 -Node: Top-level directories25045 -Node: Autoconf macros27086 -Node: General setup macros27787 -Node: Macros for programs28654 -Node: Macros for compilers29466 -Node: Macros for libraries30900 -Node: Macros for library and header flags31326 -Node: Macros for Windows33206 -Node: Library modules34783 -Node: png library35272 -Node: zlib library37561 -Node: freetype library38076 -Node: kpathsea library38604 -Node: Program modules40003 -Node: t1utils package40431 -Node: xindy package40994 -Node: xdvik package42173 -Node: asymptote43246 -Node: Extending TeX Live43697 -Node: Adding a new program module44065 -Node: Adding a new generic library module45584 -Node: Adding a new TeX-specific library module47797 -Node: Configure options48484 -Node: Global configure options49866 -Node: --disable-native-texlive-build50408 -Node: --prefix --bindir ...51398 -Node: --disable-largefile51938 -Node: --disable-missing52623 -Node: --enable-compiler-warnings=LEVEL53024 -Node: --enable-cxx-runtime-hack53763 -Node: --enable-maintainer-mode54190 -Node: --enable-multiplatform54719 -Node: --enable-shared55257 -Node: --enable-silent-rules55628 -Node: --without-ln-s56084 -Node: --without-x56435 -Node: Program-specific configure options56623 -Node: --enable-PROG --disable-PROG57266 -Node: --disable-all-pkgs57543 -Node: Configure options for texk/web2c58529 -Node: Configure options for texk/bibtex-x61047 -Node: Configure options for texk/dvipdfm-x61590 -Node: Configure options for texk/dvisvgm62363 -Node: Configure options for texk/texlive63249 -Node: Configure options for texk/xdvik63670 -Node: Configure options for utils/xindy64274 -Node: Library-specific configure options65175 -Node: Configure options for kpathsea66186 -Node: Configure options for system poppler66895 -Node: Variables for configure67686 -Node: Cross compilation69114 -Node: Cross configuring70413 -Node: Cross problems72086 -Node: Coding conventions73733 -Node: Declarations and definitions74402 -Node: Const76584 -Node: install-tl78447 -Node: install-tl NAME78788 -Node: install-tl SYNOPSIS78946 -Node: install-tl DESCRIPTION79154 -Node: install-tl REFERENCES80155 -Node: install-tl OPTIONS80671 -Ref: install-tl *-gui* [[=]_module_]81025 -Ref: install-tl text81234 -Ref: install-tl wizard81357 -Ref: install-tl perltk81511 -Ref: install-tl *-no-gui*81945 -Ref: install-tl *-lang* _llcode_82026 -Ref: install-tl *-repository* _url|path_82713 -Ref: install-tl *-select-repository*84524 -Ref: install-tl *-all-options*84960 -Ref: install-tl *-custom-bin* _path_85267 -Ref: install-tl *-debug-translation*85922 -Ref: install-tl *-force-platform* _platform_86141 -Ref: install-tl *-help*, *--help*, *-?*86385 -Ref: install-tl *-in-place*86778 -Ref: install-tl *-logfile* _file_87305 -Ref: install-tl *-no-cls*87656 -Ref: install-tl *-non-admin*87787 -Ref: install-tl *--persistent-downloads*87892 -Ref: install-tl *--no-persistent-downloads*87920 -Ref: install-tl *-portable*88528 -Ref: install-tl *-print-platform*88667 -Ref: install-tl *-profile* _profile_88860 -Ref: install-tl *-q*90354 -Ref: install-tl *-scheme* _scheme_90416 -Ref: install-tl *-v*90890 -Ref: install-tl *-version*, *--version*91051 -Node: install-tl ENVIRONMENT VARIABLES91182 -Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK91571 -Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE91773 -Ref: install-tl TEXLIVE_INSTALL_PREFIX91879 -Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG91910 -Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME91939 -Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL91969 -Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG92003 -Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR92034 -Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR92062 -Ref: install-tl NOPERLDOC92117 -Node: install-tl AUTHORS AND COPYRIGHT92181 -Node: tlmgr92539 -Node: tlmgr NAME92976 -Node: tlmgr SYNOPSIS93101 -Node: tlmgr DESCRIPTION93291 -Node: tlmgr EXAMPLES94387 -Ref: tlmgr tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet94678 -Ref: tlmgr tlmgr update --list94859 -Ref: tlmgr tlmgr update --all94952 -Ref: tlmgr tlmgr info _pkg_95108 -Node: tlmgr OPTIONS95314 -Ref: tlmgr *--repository* _url|path_95834 -Ref: tlmgr *--gui* [_action_]96559 -Ref: tlmgr *--gui-lang* _llcode_96966 -Ref: tlmgr *--debug-translation*97649 -Ref: tlmgr *--machine-readable*97852 -Ref: tlmgr *--no-execute-actions*98120 -Ref: tlmgr *--package-logfile* _file_98313 -Ref: tlmgr *--pause*98568 -Ref: tlmgr *--persistent-downloads*98723 -Ref: tlmgr *--no-persistent-downloads*98751 -Ref: tlmgr *--pin-file*99245 -Ref: tlmgr *--usermode*99463 -Ref: tlmgr *--usertree* _dir_99583 -Node: tlmgr ACTIONS100133 -Node: tlmgr help101365 -Node: tlmgr version101841 -Node: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]...102159 -Ref: tlmgr *--backupdir* _directory_103253 -Ref: tlmgr *--all*103450 -Ref: tlmgr *--clean*[=_N_]103672 -Ref: tlmgr *--dry-run*103969 -Node: tlmgr candidates _pkg_104089 -Ref: tlmgr *candidates _pkg_* 1104376 -Node: tlmgr check [_option_]... [files|depends|executes|runfiles|all]104520 -Ref: tlmgr *files*104963 -Ref: tlmgr *depends*105098 -Ref: tlmgr *executes*105440 -Ref: tlmgr *runfiles*105558 -Ref: tlmgr *--use-svn*105670 -Node: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]105787 -Node: tlmgr dump-tlpdb [--local|--remote]107859 -Ref: tlmgr *--local*108369 -Ref: tlmgr *--remote*108408 -Node: tlmgr generate [_option_]... _what_108830 -Ref: tlmgr *generate language*109071 -Ref: tlmgr *generate language.dat*109096 -Ref: tlmgr *generate language.def*109121 -Ref: tlmgr *generate language.dat.lua*109150 -Ref: tlmgr *generate fmtutil*109170 -Ref: tlmgr *--dest* _output_file_111407 -Ref: tlmgr *--localcfg* _local_conf_file_111983 -Ref: tlmgr *--rebuild-sys*112106 -Node: tlmgr gui112967 -Node: tlmgr info [_option_...] [collections|schemes|_pkg_...]113211 -Ref: tlmgr *--list*114416 -Ref: tlmgr *--only-installed*114695 -Ref: tlmgr *--taxonomy*114910 -Ref: tlmgr *--keyword*114922 -Ref: tlmgr *--functionality*114940 -Ref: tlmgr *--characterization*114961 -Node: tlmgr init-usertree115174 -Node: tlmgr install [_option_]... _pkg_...115600 -Ref: tlmgr *--file*115964 -Ref: tlmgr *--reinstall*116190 -Ref: tlmgr *--no-depends*116570 -Ref: tlmgr *--no-depends-at-all*116729 -Ref: tlmgr *--dry-run* 1117127 -Ref: tlmgr *--force*117245 -Node: tlmgr option117451 -Ref: tlmgr *option [show]*117624 -Ref: tlmgr *option showall*117642 -Ref: tlmgr *option _key_ [_value_]*117668 -Node: tlmgr paper121516 -Ref: tlmgr *paper [a4|letter]*121701 -Ref: tlmgr *[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*121775 -Node: tlmgr path [--w32mode=user|admin] [add|remove]122802 -Node: tlmgr pinning124285 -Ref: tlmgr pinning show124592 -Ref: tlmgr pinning add _repo_ _pkgglob_...124665 -Ref: tlmgr pinning remove _repo_ _pkgglob_...124784 -Ref: tlmgr pinning remove _repo_ --all124937 -Node: tlmgr platform list|add|remove _platform_...124991 -Node: tlmgr platform set _platform_125239 -Node: tlmgr platform set auto125467 -Ref: tlmgr *--dry-run* 2126584 -Node: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]...126693 -Node: tlmgr print-platform127995 -Node: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]]128467 -Ref: tlmgr *--all* 1129363 -Ref: tlmgr *--backupdir* _directory_ 1129557 -Ref: tlmgr *--dry-run* 3129713 -Ref: tlmgr *--force* 1129830 -Node: tlmgr remove [_option_]... _pkg_...129858 -Ref: tlmgr *--no-depends* 1130381 -Ref: tlmgr *--no-depends-at-all* 1130443 -Ref: tlmgr *--force* 2130499 -Ref: tlmgr *--dry-run* 4130971 -Node: tlmgr repository131078 -Ref: tlmgr *repository list*131286 -Ref: tlmgr *repository list _path|tag_*131316 -Ref: tlmgr *repository add _path_ [_tag_]*131349 -Ref: tlmgr *repository remove _path|tag_*131381 -Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*131435 -Node: tlmgr search [_option_...] _what_132519 -Node: tlmgr search [_option_...] --file _what_133030 -Node: tlmgr search [_option_...] --taxonomy _what_133281 -Node: tlmgr search [_option_...] --keyword _what_133592 -Node: tlmgr search [_option_...] --functionality _what_133910 -Node: tlmgr search [_option_...] --characterization _what_134248 -Node: tlmgr search [_option_...] --all _what_134588 -Ref: tlmgr *--global*135036 -Ref: tlmgr *--word*135148 -Ref: tlmgr *--list* 1135387 -Ref: tlmgr *--file* 1135733 -Ref: tlmgr *--taxonomy* 1135790 -Ref: tlmgr *--keyword* 1135802 -Ref: tlmgr *--functionality* 1135820 -Ref: tlmgr *--characterization* 1135841 -Ref: tlmgr *--all* 2135996 -Node: tlmgr uninstall136079 -Ref: tlmgr *--force* 3136333 -Node: tlmgr update [_option_]... [_pkg_]...136389 -Ref: tlmgr *--all* 3136760 -Ref: tlmgr *--self*138501 -Ref: tlmgr *--dry-run* 5139265 -Ref: tlmgr *--list* [_pkg_]139442 -Ref: tlmgr *--exclude* _pkg_140131 -Ref: tlmgr *--no-auto-remove* [_pkg_]...140824 -Ref: tlmgr *--no-auto-install* [_pkg_]...141275 -Ref: tlmgr *--reinstall-forcibly-removed*141931 -Ref: tlmgr *--backup* and *--backupdir* _directory_142495 -Ref: tlmgr *--no-depends* 2143676 -Ref: tlmgr *--no-depends-at-all* 2143879 -Ref: tlmgr *--force* 4143935 -Node: tlmgr USER MODE144361 -Node: tlmgr user mode install147172 -Node: tlmgr user mode backup; restore; remove; update148119 -Node: tlmgr user mode generate; option; paper148561 -Node: tlmgr CONFIGURATION FILE FOR TLMGR148937 -Node: tlmgr TAXONOMIES150028 -Ref: tlmgr --keyword 2150654 -Ref: tlmgr --functionality 2150739 -Ref: tlmgr --characterization 2150895 -Ref: tlmgr --taxonomy 2151036 -Node: tlmgr MULTIPLE REPOSITORIES151577 -Node: tlmgr Pinning153298 -Node: tlmgr GUI FOR TLMGR155273 -Node: tlmgr Main display156495 -Node: tlmgr Display configuration area156747 -Ref: tlmgr Status157108 -Ref: tlmgr Category157272 -Ref: tlmgr Match157458 -Ref: tlmgr Selection157718 -Ref: tlmgr Display configuration buttons157922 -Node: tlmgr Package list area158105 -Ref: tlmgr a checkbox158689 -Ref: tlmgr package name158825 -Ref: tlmgr local revision (and version)158924 -Ref: tlmgr remote revision (and version)159299 -Ref: tlmgr short description159596 -Node: tlmgr Main display action buttons159641 -Ref: tlmgr Update all installed159907 -Ref: tlmgr Update160279 -Ref: tlmgr Install160329 -Ref: tlmgr Remove160515 -Ref: tlmgr Backup160693 -Node: tlmgr Menu bar160850 -Ref: tlmgr tlmgr menu161047 -Ref: tlmgr Options menu161355 -Ref: tlmgr Actions menu162438 -Ref: tlmgr Help menu162866 -Node: tlmgr MACHINE-READABLE OUTPUT162999 -Node: tlmgr Machine-readable update and install output163809 -Ref: tlmgr location-url _location_165085 -Ref: tlmgr total-bytes _count_165301 -Ref: tlmgr _pkgname_165711 -Ref: tlmgr _status_165921 -Ref: tlmgr d165999 -Ref: tlmgr f166059 -Ref: tlmgr u166238 -Ref: tlmgr r166284 -Ref: tlmgr a166407 -Ref: tlmgr i166585 -Ref: tlmgr I166704 -Ref: tlmgr _localrev_166806 -Ref: tlmgr _serverrev_166913 -Ref: tlmgr _size_167025 -Ref: tlmgr _runtime_167194 -Ref: tlmgr _esttot_167264 -Node: tlmgr Machine-readable option output167297 -Node: tlmgr AUTHORS AND COPYRIGHT167809 -Node: Index168156 +Node: Top1025 +Node: Introduction1943 +Node: Overview of build system3698 +Node: Prerequisites5741 +Node: Building8139 +Node: Build iteration9387 +Node: Build problems10459 +Node: Build in parallel10862 +Node: Build distribution11454 +Node: Build one package12025 +Node: Installing15611 +Node: Installation directories16626 +Node: Linked scripts18442 +Node: Distro builds19923 +Node: Layout and infrastructure22313 +Node: Build system tools23141 +Node: Top-level directories25150 +Node: Autoconf macros27564 +Node: General setup macros28265 +Node: Macros for programs29132 +Node: Macros for compilers29944 +Node: Macros for libraries31378 +Node: Macros for library and header flags31804 +Node: Macros for Windows33684 +Node: Library modules35261 +Node: png library35750 +Node: zlib library38024 +Node: freetype library38539 +Node: kpathsea library39067 +Node: Program modules40466 +Node: t1utils package40894 +Node: xindy package41445 +Node: xdvik package42595 +Node: asymptote43668 +Node: Extending TeX Live44119 +Node: Adding a new program module44896 +Node: Adding a new generic library module46415 +Node: Adding a new TeX-specific library module48628 +Node: Configure options49315 +Node: Global configure options50697 +Node: --disable-native-texlive-build51239 +Node: --prefix --bindir ...52229 +Node: --disable-largefile52769 +Node: --disable-missing53454 +Node: --enable-compiler-warnings=LEVEL53855 +Node: --enable-cxx-runtime-hack54594 +Node: --enable-maintainer-mode55021 +Node: --enable-multiplatform55550 +Node: --enable-shared56088 +Node: --enable-silent-rules56459 +Node: --without-ln-s56915 +Node: --without-x57266 +Node: Program-specific configure options57454 +Node: --enable-PROG --disable-PROG58097 +Node: --disable-all-pkgs58374 +Node: Configure options for texk/web2c59360 +Node: Configure options for texk/bibtex-x61878 +Node: Configure options for texk/dvipdfm-x62421 +Node: Configure options for texk/dvisvgm63194 +Node: Configure options for texk/texlive64080 +Node: Configure options for texk/xdvik64501 +Node: Configure options for utils/xindy65105 +Node: Library-specific configure options66006 +Node: Configure options for kpathsea67017 +Node: Configure options for system poppler67726 +Node: Variables for configure68517 +Node: Cross compilation69945 +Node: Cross configuring71244 +Node: Cross problems72917 +Node: Coding conventions74564 +Node: Declarations and definitions75291 +Node: Const77473 +Node: install-tl79336 +Node: install-tl NAME79677 +Node: install-tl SYNOPSIS79835 +Node: install-tl DESCRIPTION80043 +Node: install-tl REFERENCES81044 +Node: install-tl OPTIONS81560 +Ref: install-tl *-gui* [[=]_module_]81914 +Ref: install-tl text82123 +Ref: install-tl wizard82246 +Ref: install-tl perltk82400 +Ref: install-tl *-no-gui*82834 +Ref: install-tl *-lang* _llcode_82915 +Ref: install-tl *-repository* _url|path_83602 +Ref: install-tl *-select-repository*85413 +Ref: install-tl *-all-options*85849 +Ref: install-tl *-custom-bin* _path_86156 +Ref: install-tl *-debug-translation*86811 +Ref: install-tl *-force-platform* _platform_87030 +Ref: install-tl *-help*, *--help*, *-?*87274 +Ref: install-tl *-in-place*87667 +Ref: install-tl *-logfile* _file_88194 +Ref: install-tl *-no-cls*88545 +Ref: install-tl *-non-admin*88676 +Ref: install-tl *--persistent-downloads*88781 +Ref: install-tl *--no-persistent-downloads*88809 +Ref: install-tl *-portable*89417 +Ref: install-tl *-print-platform*89556 +Ref: install-tl *-profile* _profile_89749 +Ref: install-tl *-q*91243 +Ref: install-tl *-scheme* _scheme_91305 +Ref: install-tl *-v*91779 +Ref: install-tl *-version*, *--version*91940 +Node: install-tl ENVIRONMENT VARIABLES92071 +Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK92460 +Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE92662 +Ref: install-tl TEXLIVE_INSTALL_PREFIX92768 +Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG92799 +Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME92828 +Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL92858 +Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG92892 +Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR92923 +Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR92951 +Ref: install-tl NOPERLDOC93006 +Node: install-tl AUTHORS AND COPYRIGHT93070 +Node: tlmgr93428 +Node: tlmgr NAME93865 +Node: tlmgr SYNOPSIS93990 +Node: tlmgr DESCRIPTION94180 +Node: tlmgr EXAMPLES95276 +Ref: tlmgr tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet95567 +Ref: tlmgr tlmgr update --list95748 +Ref: tlmgr tlmgr update --all95841 +Ref: tlmgr tlmgr info _pkg_95997 +Node: tlmgr OPTIONS96203 +Ref: tlmgr *--repository* _url|path_96723 +Ref: tlmgr *--gui* [_action_]97448 +Ref: tlmgr *--gui-lang* _llcode_97855 +Ref: tlmgr *--debug-translation*98538 +Ref: tlmgr *--machine-readable*98741 +Ref: tlmgr *--no-execute-actions*99009 +Ref: tlmgr *--package-logfile* _file_99202 +Ref: tlmgr *--pause*99457 +Ref: tlmgr *--persistent-downloads*99612 +Ref: tlmgr *--no-persistent-downloads*99640 +Ref: tlmgr *--pin-file*100134 +Ref: tlmgr *--usermode*100352 +Ref: tlmgr *--usertree* _dir_100472 +Node: tlmgr ACTIONS101022 +Node: tlmgr help102254 +Node: tlmgr version102730 +Node: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]...103048 +Ref: tlmgr *--backupdir* _directory_104142 +Ref: tlmgr *--all*104339 +Ref: tlmgr *--clean*[=_N_]104561 +Ref: tlmgr *--dry-run*104858 +Node: tlmgr candidates _pkg_104978 +Ref: tlmgr *candidates _pkg_* 1105265 +Node: tlmgr check [_option_]... [files|depends|executes|runfiles|all]105409 +Ref: tlmgr *files*105852 +Ref: tlmgr *depends*105987 +Ref: tlmgr *executes*106329 +Ref: tlmgr *runfiles*106447 +Ref: tlmgr *--use-svn*106559 +Node: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]106676 +Node: tlmgr dump-tlpdb [--local|--remote]108748 +Ref: tlmgr *--local*109258 +Ref: tlmgr *--remote*109297 +Node: tlmgr generate [_option_]... _what_109719 +Ref: tlmgr *generate language*109960 +Ref: tlmgr *generate language.dat*109985 +Ref: tlmgr *generate language.def*110010 +Ref: tlmgr *generate language.dat.lua*110039 +Ref: tlmgr *generate fmtutil*110059 +Ref: tlmgr *--dest* _output_file_112296 +Ref: tlmgr *--localcfg* _local_conf_file_112872 +Ref: tlmgr *--rebuild-sys*112995 +Node: tlmgr gui113856 +Node: tlmgr info [_option_...] [collections|schemes|_pkg_...]114100 +Ref: tlmgr *--list*115305 +Ref: tlmgr *--only-installed*115584 +Ref: tlmgr *--taxonomy*115799 +Ref: tlmgr *--keyword*115811 +Ref: tlmgr *--functionality*115829 +Ref: tlmgr *--characterization*115850 +Node: tlmgr init-usertree116063 +Node: tlmgr install [_option_]... _pkg_...116489 +Ref: tlmgr *--file*116853 +Ref: tlmgr *--reinstall*117079 +Ref: tlmgr *--no-depends*117459 +Ref: tlmgr *--no-depends-at-all*117618 +Ref: tlmgr *--dry-run* 1118016 +Ref: tlmgr *--force*118134 +Node: tlmgr option118340 +Ref: tlmgr *option [show]*118513 +Ref: tlmgr *option showall*118531 +Ref: tlmgr *option _key_ [_value_]*118557 +Node: tlmgr paper122405 +Ref: tlmgr *paper [a4|letter]*122590 +Ref: tlmgr *[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*122664 +Node: tlmgr path [--w32mode=user|admin] [add|remove]123691 +Node: tlmgr pinning125174 +Ref: tlmgr pinning show125481 +Ref: tlmgr pinning add _repo_ _pkgglob_...125554 +Ref: tlmgr pinning remove _repo_ _pkgglob_...125673 +Ref: tlmgr pinning remove _repo_ --all125826 +Node: tlmgr platform list|add|remove _platform_...125880 +Node: tlmgr platform set _platform_126128 +Node: tlmgr platform set auto126356 +Ref: tlmgr *--dry-run* 2127473 +Node: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]...127582 +Node: tlmgr print-platform128884 +Node: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]]129356 +Ref: tlmgr *--all* 1130252 +Ref: tlmgr *--backupdir* _directory_ 1130446 +Ref: tlmgr *--dry-run* 3130602 +Ref: tlmgr *--force* 1130719 +Node: tlmgr remove [_option_]... _pkg_...130747 +Ref: tlmgr *--no-depends* 1131270 +Ref: tlmgr *--no-depends-at-all* 1131332 +Ref: tlmgr *--force* 2131388 +Ref: tlmgr *--dry-run* 4131860 +Node: tlmgr repository131967 +Ref: tlmgr *repository list*132175 +Ref: tlmgr *repository list _path|tag_*132205 +Ref: tlmgr *repository add _path_ [_tag_]*132238 +Ref: tlmgr *repository remove _path|tag_*132270 +Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*132324 +Node: tlmgr search [_option_...] _what_133408 +Node: tlmgr search [_option_...] --file _what_133919 +Node: tlmgr search [_option_...] --taxonomy _what_134170 +Node: tlmgr search [_option_...] --keyword _what_134481 +Node: tlmgr search [_option_...] --functionality _what_134799 +Node: tlmgr search [_option_...] --characterization _what_135137 +Node: tlmgr search [_option_...] --all _what_135477 +Ref: tlmgr *--global*135925 +Ref: tlmgr *--word*136037 +Ref: tlmgr *--list* 1136276 +Ref: tlmgr *--file* 1136622 +Ref: tlmgr *--taxonomy* 1136679 +Ref: tlmgr *--keyword* 1136691 +Ref: tlmgr *--functionality* 1136709 +Ref: tlmgr *--characterization* 1136730 +Ref: tlmgr *--all* 2136885 +Node: tlmgr uninstall136968 +Ref: tlmgr *--force* 3137222 +Node: tlmgr update [_option_]... [_pkg_]...137278 +Ref: tlmgr *--all* 3137649 +Ref: tlmgr *--self*139390 +Ref: tlmgr *--dry-run* 5140154 +Ref: tlmgr *--list* [_pkg_]140331 +Ref: tlmgr *--exclude* _pkg_141020 +Ref: tlmgr *--no-auto-remove* [_pkg_]...141713 +Ref: tlmgr *--no-auto-install* [_pkg_]...142164 +Ref: tlmgr *--reinstall-forcibly-removed*142820 +Ref: tlmgr *--backup* and *--backupdir* _directory_143384 +Ref: tlmgr *--no-depends* 2144565 +Ref: tlmgr *--no-depends-at-all* 2144768 +Ref: tlmgr *--force* 4144824 +Node: tlmgr USER MODE145250 +Node: tlmgr user mode install148061 +Node: tlmgr user mode backup; restore; remove; update149008 +Node: tlmgr user mode generate; option; paper149450 +Node: tlmgr CONFIGURATION FILE FOR TLMGR149826 +Node: tlmgr TAXONOMIES150917 +Ref: tlmgr --keyword 2151543 +Ref: tlmgr --functionality 2151628 +Ref: tlmgr --characterization 2151784 +Ref: tlmgr --taxonomy 2151925 +Node: tlmgr MULTIPLE REPOSITORIES152466 +Node: tlmgr Pinning154187 +Node: tlmgr GUI FOR TLMGR156162 +Node: tlmgr Main display157384 +Node: tlmgr Display configuration area157636 +Ref: tlmgr Status157997 +Ref: tlmgr Category158161 +Ref: tlmgr Match158347 +Ref: tlmgr Selection158607 +Ref: tlmgr Display configuration buttons158811 +Node: tlmgr Package list area158994 +Ref: tlmgr a checkbox159578 +Ref: tlmgr package name159714 +Ref: tlmgr local revision (and version)159813 +Ref: tlmgr remote revision (and version)160188 +Ref: tlmgr short description160485 +Node: tlmgr Main display action buttons160530 +Ref: tlmgr Update all installed160796 +Ref: tlmgr Update161168 +Ref: tlmgr Install161218 +Ref: tlmgr Remove161404 +Ref: tlmgr Backup161582 +Node: tlmgr Menu bar161739 +Ref: tlmgr tlmgr menu161936 +Ref: tlmgr Options menu162244 +Ref: tlmgr Actions menu163327 +Ref: tlmgr Help menu163755 +Node: tlmgr MACHINE-READABLE OUTPUT163888 +Node: tlmgr Machine-readable update and install output164698 +Ref: tlmgr location-url _location_165974 +Ref: tlmgr total-bytes _count_166190 +Ref: tlmgr _pkgname_166600 +Ref: tlmgr _status_166810 +Ref: tlmgr d166888 +Ref: tlmgr f166948 +Ref: tlmgr u167127 +Ref: tlmgr r167173 +Ref: tlmgr a167296 +Ref: tlmgr i167474 +Ref: tlmgr I167593 +Ref: tlmgr _localrev_167695 +Ref: tlmgr _serverrev_167802 +Ref: tlmgr _size_167914 +Ref: tlmgr _runtime_168083 +Ref: tlmgr _esttot_168153 +Node: tlmgr Machine-readable option output168186 +Node: tlmgr AUTHORS AND COPYRIGHT168698 +Node: Index169045 End Tag Table diff --git a/Build/source/doc/tlbuild.texi b/Build/source/doc/tlbuild.texi index da48523a166..ca6177acb97 100644 --- a/Build/source/doc/tlbuild.texi +++ b/Build/source/doc/tlbuild.texi @@ -2,7 +2,7 @@ @setfilename tlbuild.info @set version 2016 -@set month-year April 2016 +@set month-year February 2017 @set mytitle Building @TeX{} Live (@value{version}) @settitle @value{mytitle} @@ -14,8 +14,9 @@ @copying This file documents the @TL{} build system and more. -Copyright @copyright{} 2016 Karl Berry.@* -Copyright @copyright{} 2013, 2014, 2015 Karl Berry & Peter Breitenlohner. +@noindent +Copyright @copyright{} 2016--2017 Karl Berry.@* +Copyright @copyright{} 2013--2015 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 @@ -138,7 +139,7 @@ As an exception, the full documentation for @code{install-tl} and @code{tlmgr} is included here, just because it is convenient to do so. The same text is available online (linked from @url{http://tug.org/texlive/doc.html}, or by invoking the program with -@samp{--help} (or look at the end of the source file). +@samp{--help} (or look at the end of the source). @c The first word of the chapter/section title here is used to @@ -185,8 +186,8 @@ 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} options to -be seen at the top-level, and more. An explicit list of all available -modules is kept in only one, central, place (@file{m4/kpse-pkgs.m4}). +be seen at the top level, and more. An explicit list of all available +modules is kept in only one central place, namely @file{m4/kpse-pkgs.m4}. A second, related goal is to configure and build each library before configuring any other (program or library) module which uses that @@ -198,9 +199,9 @@ 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. -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.) +All this is for the sake of simplifying both upgrading of modules and +integrating new modules into the TL build system. (Not to say that +either task is trivial.) @node Prerequisites @@ -218,14 +219,20 @@ you can set @code{MAKE} in the environment to whatever is necessary.) @cindex GNU @code{make}, required @cindex @code{gmake}, required @cindex FreeType -Indeed, GNU @code{make} 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}. +GNU @code{make} 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}. However, a few programs in the tree have additional requirements: @table @file +@item dvisvgm +@cindex @code{dvisvgm} requirement for C++11 +@cindex C++11, required by @code{dvisvgm} +requires a C++11 compiler, such as gcc 4.8.1 (or later) or clang 3.3 +(or later). + @item web2c @cindex @code{perl}, required by @code{web2c}, etc. requires @code{perl} for some tests run by @code{make check}. @@ -367,7 +374,7 @@ to be done unless some source files have been modified. @vindex --no-clean Build @r{option} If configuring or building a module fails, you should first find and fix the problem, then perhaps remove the subdirectory for that module from the build -tree, and finally rerun the top-level @code{make} (or @file{Build} with +tree, and finally rerun the top level @code{make} (or @file{Build} with @code{--no-clean} as its first argument). @@ -400,7 +407,7 @@ by using a configure cache file, i.e., with the option @code{-C} @cindex distribution tarball, making @cindex @code{dist} and @code{distcheck} targets for @code{make} -Running @code{make dist} at the top-level creates a tarball +Running @code{make dist} at the top level creates a tarball @file{tex-live-@var{yyyy}-@var{mm}-@var{dd}.tar.xz} from the TL source tree. Running @code{make distcheck} also verifies that this tarball suffices to build and install all of TL. @@ -724,12 +731,12 @@ rules to build and install them together with some of their support files. @menu -* Build system tools:: If modifying infrastructure files. -* Top-level directories:: -* Autoconf macros:: TL-specific Autoconf macros. -* Library modules:: Details on some specific libraries, -* Program modules:: and on some programs. -* Extending @TL{}:: Adding a new module. +* Build system tools:: Modifying infrastructure files. +* Top-level directories:: libs texk utils; am auxdir build-aux m4; doc extra. +* Autoconf macros:: TL-specific Autoconf macros. +* Library modules:: Handling libraries, with examples. +* Program modules:: Handling programs, with examples. +* Extending @TL{}:: Adding a new module. @end menu @@ -804,11 +811,12 @@ programs), and @file{libs/} (generic libraries). @cindex @file{am/} top-level directory @cindex @file{m4/} top-level directory -The top-level directories @file{am/} and @file{m4/} contain -@file{Makefile.am} fragments and Autoconf macros, respectively, used -in many places. Specifically, the file @file{m4/kpse-pkgs.m4} -contains lists of all program and library modules; missing modules are -silently ignored. (This helps in creating cut-down source trees.) +In addition, the top-level directories @file{am/} and @file{m4/} +contain @file{Makefile.am} fragments and Autoconf macros, +respectively, used in many places. Specifically, the file +@file{m4/kpse-pkgs.m4} contains lists of all program and library +modules; missing modules are silently ignored. (This helps in +creating cut-down source trees.) Each module contributes fragments (in separate files) defining its capabilities and requirements to the @file{configure.ac} scripts at @@ -820,22 +828,32 @@ library can be used. This ultimately determines which modules need to be built---although all modules must be configured for the benefit of @file{make} targets such as @code{dist} or @code{distcheck}. -@pindex config.guess@r{,} config.sub +@cindex @file{build-aux/} top-level directory +@pindex config.guess@r{,} config.sub, @dots{} @cindex Gnulib, used for common files The top-level @file{build-aux/} directory contains the common files @file{compile}, @file{config.guess}, @file{config.sub}, -@file{depcomp}, etc.@ for most packages, pulled from the GNU Gnulib -sources (@url{http://www.gnu.org/software/gnulib}), which in turn -synchronizes with the appropriate ultimate upstream repository. There -are, however, independent copies in, e.g., -@file{libs/freetype2/freetype-*/builds/unix/}, and similar places. +@file{depcomp}, etc.@ used by most packages. These are from the GNU +Gnulib sources (@url{http://www.gnu.org/software/gnulib}), which in +turn synchronizes with the appropriate ultimate upstream repository. +There are, however, independent copies in, e.g., +@file{libs/freetype2/freetype-*/builds/unix/}, and a few other places. The @code{reautoconf} script does not touch those, but a TL cron job keeps them in sync (nightly). @cindex @file{extra/} top-level directory The directory @file{extra/} contains things which are not part of the TL build, but are present just for (someone's) convenience, e.g., -@file{epstopdf} which is developed here. +is @file{epstopdf} development source is here. + +@cindex @file{Work/} top-level directory +@cindex @file{inst/} top-level directory +When the top-level @file{./Build} script is used to build TL, two more +two more top-level directories appear: @file{Work/} for the build tree, +and @file{inst/} for the install tree (from @code{make install}). +These names (and everything else about @file{Build}'s operation) can +be changed by setting environment variables before running it; see the +script file. @node Autoconf macros @@ -1121,10 +1139,9 @@ structure and variation. @pindex png @r{library} @pindex libpng @r{library} -@set libpngversion libpng-1.6.16 This generic library uses the source tree in, e.g., the subdirectory -@file{@value{libpngversion}} with all modifications for TL recorded in -@file{@value{libpngversion}-PATCHES/*}. The @file{configure.ac} fragment +@file{libpng-src/} with all modifications for TL recorded in +@file{TLPATCHES/*}. The @file{configure.ac} fragment @file{ac/withenable.ac} contains @example @@ -1267,10 +1284,9 @@ details for a few of the programs in TL. @subsection The @code{t1utils} package in @file{utils/t1utils} @pindex t1utils @r{package} -@set t1utilsversion t1utils-1.39 -Once again we use the distributed source tree @file{@value{t1utilsversion}} -with modifications documented in @file{@value{t1utilsversion}-PATCHES/*} and +Once again we use the distributed source tree @file{t1utils-src} +with modifications documented in @file{TLPATCHES/*} and a proxy build system consisting of @file{configure.ac} and @file{Makefile.am}. The fragment @file{ac/withenable.ac} contains @@ -1286,15 +1302,14 @@ supplies the configure option @code{--disable-t1utils}. @subsection The @code{xindy} package in @file{utils/xindy} @pindex xindy -@set xindyversion xindy-2.5.1 -This module uses the distributed source tree @file{@value{xindyversion}} -with modifications documented in @file{@value{xindyversion}-PATCHES/*}, a -proxy @file{configure.ac}, and a wrapper @file{Makefile.am} that descends -into @file{@value{xindyversion}}. The @code{xindy} build requires that the -distributed @file{Makefile}s allow a @code{VPATH} build, can handle all -targets, and do not refer to @code{$@{top_srcdir@}} or -@code{$@{top_builddir@}}. The fragment @code{ac/withenable.ac} contains +This module uses the distributed source tree @file{xindy-src/} with +modifications documented in @file{TLPATCHES/*}, a proxy +@file{configure.ac}, and a wrapper @file{Makefile.am} that descends +into @file{xindy-src}. The @code{xindy} build requires a @file{make} +that supports a @code{VPATH} build, can handle all targets, and do not +refer to @code{$@{top_srcdir@}} or @code{$@{top_builddir@}}. The +fragment @code{ac/withenable.ac} contains @example KPSE_ENABLE_PROG([xindy], , [disable native]) @@ -1366,6 +1381,14 @@ their support files. This section outlines the basic process for adding new packages to the TL build system. +In any case, a new package directory @file{foo} should contain the +original sources, as modified for TL, in @file{foo/foo-src}, and the +changes should be documented in @file{foo/TLPATCHES/*}; changes should +also be submitted upstream whenever reasonable, of course. In +addition, @file{foo/} will need the usual Automake build-related files +(@file{configure.ac}, @file{Makefile.am}, etc. Please keep a +@file{ChangeLog} for all TL changes. + @menu * Adding a new program module:: * Adding a new generic library module:: @@ -2284,8 +2307,9 @@ 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}. -These rules should be applied to all parts of the @TL{} tree, except some of -those maintained independently. +These rules should be applied to most of the @TL{} tree, the exception +being code that is maintained independently and whose maintainers +don't want to accept patches. @menu * Declarations and definitions:: |