Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org>
You may freely use, modify and/or distribute this file.

	Configure options for the  TeX Live (TL) build system
	=====================================================

The TL 2009 build system contains a collection of program packages,
i.e., subdirectories texk/PROG/ (where `PROG' is web2c, afm2pl, bibtex8,
etc.) and utils/UTIL/ (where `UTIL' is dialog, pdfopen, etc.) as well as
library packages, i.e., subdirectories texk/kpathsea/ and libs/LIB/
(where `LIB' is zlib, libpng, t1lib, etc.) for most of the libraries
required by the program packages.  Correspondingly there are plenty of
configure options, most of which are described below.

See 'configure --help' (at the top-level) for an exhaustive list of all
global options and a few important package specific ones or run, e.g.,
'texk/lcdf-typetools/configure --help' to also see lcdf-typetools
specific options not shown at the top level.

Note, however, that the ./Build script used to make the binaries shipped
with TeX Live invokes the top-level configure with a few additional
options.  Any defaults discussed below are those for the base configure
script; thus, invoking configure via ./Build yields different results.

Options explicitly specified on the command will never be modified.


1. Global configure options
===========================

1.1. --disable-native-texlive-build
-----------------------------------
If enabled (by default) build for a TeX Live binary distribution as
shipped by the user groups; this implies '--enable-multiplatform' and
'--enable-cxx-runtime-hack' unless they are explicitly disabled and
enforces '--disable-shared'.

If building TL for a GNU/Linux or other distribution, this would be
disabled and system versions of most libraries would be used (see below).

A related option '--enable-texlive-build' is automatically passed to all
subdirectories (and can not be disabled).  Programs that could also be built
independent from the TL tree (such as utils/xindy/ or texk/dvipng/) use this
option, e.g., to choose TL specific installation directories.

1.2. --enable-multiplatform
---------------------------
If enabled, install executables and libraries in platform dependent
subdirectories of EPREFIX/bin and EPREFIX/lib (unless '--bindir=DIR' or
'--libdir=DIR' is specified), where EPREFIX is the exec-prefix.  This
option automatically propagates the values for bindir and libdir to all
subdirectories to be configured, and thus need not be used explicitly in
any program or library package.

1.3. --enable-cxx-runtime-hack
------------------------------
If enabled and when using g++, try to statically link with libstc++,
somewhat improving portability.

1.4. --enable-shared
---------------------
Build a shared Kpathsea library (not allowed for a TeX Live native build).

1.5. --disable-largefile
------------------------
Omit support for large files (>=2GB).

1.6. --without-x
----------------
Do not use the X Window System.

1.7. --enable-compiler-warnings=[no|min|yes|max]
------------------------------------------------
Enable various degrees of compiler warnings for C and C++.  The default is
'yes' in maintainer-mode and 'min' otherwise.  This options defines
additional CFLAGS or CXXFLAGS, but these flags are not yet used by all
library and program packages (actually only by a few of them).  Using these
compiler warnings should help to resolve portability problems.

At the moment these warning flags are only defined for the GNU compilers gcc
and g++, but flags for other compilers could be added when needed.

1.8. --disable-missing
----------------------
Immediately terminate the build process if a requested program or feature
must be disabled, e.g., due to missing libraries.

2. Configure options for program packages
=========================================

2.1. --disable-PROG and --disable-UTIL
--------------------------------------
Do not build and install the program(s) of the package `PROG' or `UTIL'.

2.2. --disable-all-pkgs
-----------------------
Do not build any program packages, except those explicitly enabled.
Without this option, all packages are built except those explicitly
disabled and except for utils/xindy/ (which is disabled by default due to
its requirement for clisp et al.).

2.3. Configure options for texk/web2c/
--------------------------------------
2.3.1. --with-tex-banner=STR
Specify the version string STR appended to banner lines, replacing the
default `Web2C YYYY'; the string STR must contain the current Web2C
version, that is, the YYYY.

The Build script for a TL native build currently specifies
`--with-tex-banner="TeX Live 2009"', whereas a distro build should alter
this to, e.g., `--with-tex-banner="TeX Live 2009/Debian"'.

2.3.1. --with-editor=CMD
Specify the command CMD to invoke from the `e' option, replacing the default
`vi +%d %s'.

2.3.3. --enable-auto-core
This option causes TeX & MF to produce a core dump when a particular
filename is encountered.

2.3.4. --disable-dump-share
Make the fmt/base/mem dump files architecture dependent (somewhat faster
on little-endian architectures).

2.3.5. --disable-ipc
If enabled (by default) allow TeX's '--ipc' option.

2.3.6. --disable-tex, --enable-etex, --disable-aleph, --disable-pdftex,
       --disable-luatex, --disable-xetex, --disable-mf, --disable-mp
Do or do not build the various TeX, METAFONT, and MetaPost engines.

2.3.7. --with-mf-x-toolkit
Use the X toolkit (libXt) for METAFONT (default is yes).

2.3.8. --enable-*win
Include various types of other window support for METAFONT.

2.3.9. --disable-mf-nowin
Do not build a separate non-graphically-capable METAFONT.

2.3.10. --disable-web-progs
Do not build the WEB programs bibtex ... weave, e.g., if you just
want to rebuild engines.

2.3.11. --disable-omfonts
Build the Web2C versions of the omega font utilies (ofm2opl, opl2ofm,
ovf2ovp, and ovp2ovf) instead of the C version, omfonts.  The web
versions are needed in Japanese environments; the C versions fix some
(unknown) bugs.  We hope the situation will be resolved.

2.4. Configure options for texk/xdvik/
--------------------------------------
2.4.1. --with-gs=PATH
Hardwire the location of GhostScript (gs).

2.4.2. --with-xdvi-x-toolkit=KIT
Use toolkit KIT (motif/xaw/xaw3d/neXtaw) for xdvi, default: Motif if
available, else Xaw.


3. Configure options for libraries
==================================

3.1. --with-system-LIB
----------------------
Use an installed (system) version of the library `LIB'; this option exists
for most but not all libraries (not allowed for a TeX Live native build).

For many libraries there are in addition '--with-LIB-includes=DIR' and
'--with-LIB-libdir=DIR' to indicate that the library is installed in an
unusual location.

The top-level configure script performs a consistency check for all
required system libraries and bails out early if one these tests fails.

3.2. Configure options for libfontconfig
----------------------------------------
Building XeTeX and xdvipdfmx on non-Mac systems requires libfontconfig.

3.2.1. --with-fontconfig-includes=DIR, --with-fontconfig-libdir=DIR
If one or both of these options are given, the flags are derived from them. 
Otherwise, the flags are determined via pkg-config (if present).

3.3. Configure options for system libfreetype
---------------------------------------------
The flags for a system freetype library are determined via freetype-config.

3.4. Configure options for libpoppler
-------------------------------------
3.4.1. --with-system-xpdf
Use libpoppler instead of xpdf (and pkg-config to obtain the required flags).


4. Interesting and/or important VAR=value configure arguments
=============================================================
Used instead of searching for programs in PATH.

4.1. FT2_CONFIG=/path/to/freetype-config
----------------------------------------
For system freetype2 library.

4.2. PKG_CONFIG=/path/to/pkg-config
-----------------------------------
For fontconfig and system xpdf (poppler) libraries.

4.3. CLISP=/path/to/clisp
-------------------------
For xindy.

4.4. PERL=/path/to/perl
-------------------------
To build xindy rules and docs.

4.5. LATEX=/path/to/latex
-------------------------
To build xindy rules.

4.6. PDFLATEX=/path/to/pdflatex
-------------------------------
To build xindy docs.

4.7. KPSEWHICH=/path/to/kpsewhich
---------------------------------
For `make check'.


Happy building.  Please use the tlbuild list for questions or
discussion: http://lists.tug.org/tlbuild.
