summaryrefslogtreecommitdiff
path: root/Build/source/README.hacking
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-08-29 18:58:31 +0000
committerKarl Berry <karl@freefriends.org>2011-08-29 18:58:31 +0000
commitbfbd87a0b6c0a2f58a463749e7502f780aaec362 (patch)
treee8f4361d68def893f1caac0c11535213dca602c8 /Build/source/README.hacking
parentea33782ecfe04d2116e2aaae0762c62d9736c211 (diff)
typos, etc.
git-svn-id: svn://tug.org/texlive/trunk@23748 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/README.hacking')
-rw-r--r--Build/source/README.hacking49
1 files changed, 29 insertions, 20 deletions
diff --git a/Build/source/README.hacking b/Build/source/README.hacking
index 69c2b505e14..a651163bc87 100644
--- a/Build/source/README.hacking
+++ b/Build/source/README.hacking
@@ -1,12 +1,17 @@
-Copyright (C) 2009, 2010 Peter Breitenlohner <tex-live@tug.org>
+Copyright (C) 2009-2011 Peter Breitenlohner <tex-live@tug.org>
You may freely use, modify and/or distribute this file.
Modifying the TeX Live (TL) build system
========================================
-1. Currently used versions of Tools
+1. Currently used versions of tools
===================================
+In general, we use the latest released versions of GNU build tools. We
+install these directly from the original GNU releases (e.g., by building
+them with configure --prefix=/usr/local/gnu and having
+/usr/local/gnu/bin first in our PATH).
+
autoconf (GNU Autoconf) 2.68
automake (GNU automake) 1.11.1
@@ -17,7 +22,7 @@ bison (GNU Bison) 2.4.3
flex 2.5.35
-m4 (GNU M4) 1.4.15
+m4 (GNU M4) 1.4.16
2. Updating the TL build system
===============================
@@ -35,10 +40,13 @@ to avoid due to SVN's handling of timestamps).
Alternatively, you can run the 'reautoconf' script from the top-level.
The 'config.guess', 'config.sub', etc. files for most packages are kept
-centrally in build-aux/. There are, however, independent copies in, e.g.,
-libs/freetype/freetype-1.5/, libs/freetype2/freetype-2.3.8/builds/unix/, and
-similar places that might need updating (not done automatically by the
-'reautoconf' script).
+centrally in build-aux/, sourced from GNU Gnulib
+(http://www.gnu.org/software/gnulib), which in turn pulls them from
+their ultimate upstream source repository. There are, however,
+independent copies in, e.g., libs/freetype2/freetype-*/builds/unix/, and
+similar places. The 'reautoconf' script does not take care of those,
+but a TL cron job does keep them in sync (nightly).
+
3. Extending the TL build system
================================
@@ -50,18 +58,20 @@ To add a new program directory utils/Util/ (not using Kpathsea) or
texk/Prog/ (possibly using Kpathsea and Ptexenc) you must add the directory
Util to the M4 list kpse_utils_pkgs or Prog to the M4 list kpse_texk_pkgs
defined in m4/kpse-pkgs.m4. In addition you must create a configure.ac
-fragment utils/Util/ac/witheanble.ac or texk/Prog/ac/witheanble.ac defining
+fragment utils/Util/ac/withenable.ac or texk/Prog/ac/withenable.ac defining
any required libraries from the TL tree and whether this new program is to
be built by default (in the absence of the corresponding
-'--enable-Util/Prog' or '--disable-Util/Prog' configure options). If a
-program in texk/Prog/ or utils/Util/ requires specific configure options to
-be seen at the top-level, they should be defined in an additional
-configure.ac fragment texk/Prog/ac/Prog.ac or utils/Util/ac/Util.ac
-(included from texk/Prog/ac/withenable.ac and texk/Prog/configure.ac or
-utils/Util/ac/withenable.ac and utils/Util/configure.ac) as, e.g., for
-texk/web2c/, texk/xdvik/, and utils/xindy/.
-
-As example, the file texk/dvipdfmx/ac/withenable.ac contains
+'--enable-Util/Prog' or '--disable-Util/Prog' configure options).
+
+If a program in texk/Prog/ or utils/Util/ requires specific configure
+options to be seen at the top-level, they should be defined in an
+additional configure.ac fragment texk/Prog/ac/Prog.ac or
+utils/Util/ac/Util.ac (included from texk/Prog/ac/withenable.ac and
+texk/Prog/configure.ac or utils/Util/ac/withenable.ac and
+utils/Util/configure.ac) as, e.g., for texk/web2c/, texk/xdvik/, and
+utils/xindy/.
+
+As an example, the file texk/dvipdfmx/ac/withenable.ac contains
KPSE_ENABLE_PROG([dvipdfmx], [kpathsea libpng])
where KPSE_ENABLE_PROG, defined in m4/kpse-setup.m4, has one required
argument -- the name of the subdirectory -- and three optional arguments: a
@@ -76,7 +86,7 @@ or enable configure option for this program.
To add a new generic library directory libs/Lib/ you must add the directory
Lib to the M4 list kpse_libs_pkgs defined in m4/kpse-pkgs.m4. In addition
-you must create a configure.ac fragment libs/Lib/ac/witheanble.ac defining
+you must create a configure.ac fragment libs/Lib/ac/withenable.ac defining
any required libraries from the TL tree and whether an installed (system)
version of this library can be used. If that is the case, another
configure.ac fragment libs/Lib/ac/Lib.ac should specify a small program as
@@ -126,7 +136,7 @@ generic library (described above) with these exceptions:
(*) Add the directory Lib to the M4 list kpse_texlibs_pkgs (also defined in
m4/kpse-pkgs.m4) instead of kpse_libs_pkgs.
-(*) The configure.ac fragment libs/Lib/ac/witheanble.ac must use
+(*) The configure.ac fragment libs/Lib/ac/withenable.ac must use
KPSE_WITH_TEXLIB instead of KPSE_WITH_LIB.
(*) The new library must not depend on any generic libraries.
@@ -174,4 +184,3 @@ that rebuilding zlib and/or libpng causes the target to be rebuilt.
Two lines containing @ZLIB_RULE@ and @LIBPNG_RULE@ create the rules required
to (re-)build zlib and libpng when necessary.
-