forked from TeX-Live/texlive-source
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.1prerequisites
82 lines (62 loc) · 3.29 KB
/
README.1prerequisites
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
(This file was generated by makeinfo and splitinfo.gawk.)
(Released under the old-style GNU documentation license;
see sources or other output files for full text.)
3 Prerequisites
***************
Overall, building the TeX Live programs, when using all libraries from
the TL source tree, requires C and C++11 compilers, GNU 'make', and
Python.
* If 'make' from your 'PATH' is not GNU 'make', you can set the
'MAKE' environment variable to whatever is necessary.
GNU 'make' is required only because of third-party libraries,
notably FreeType. Automake/Autoconf output in general, and the
TL-maintained directories, work with any reasonable 'make'.(1)
* A C++11 compiler is similarly required because of the third-party
libraries ICU and HarfBuzz (at least); the program 'dvisvgm' also
requires C++11. It is possible to build what remains with older
compilers, but you have to remove the C++11-dependent sources.
*Note Build one package::.
* Python is required by ICU tests. (If you know how to disable these
tests and thus eliminate the requirement, please write.)
A few programs in the tree have additional requirements:
'web2c'
requires 'perl' for some tests run by 'make check'. Incidentally,
the TeX Live installer ('install-tl') and manager ('tlmgr') are
also written in Perl, but this does not matter for compiling the
sources.
'xdvik'
'xpdfopen'
require X11 headers and libraries, typically in devel(opment)
packages that are not installed by default.
'xetex'
requires 'fontconfig' (again both headers and library), or, for
MacOS only, the 'ApplicationServices' and 'Cocoa' frameworks.
'xindy'
requires GNU 'clisp', 'libsigsegv', and 'libiconv'; additionally,
to build the rules and/or documentation: 'perl', 'latex',
'pdflatex'.
Lacking the required tools, building these programs must avoided, e.g.,
'configure --without-x --disable-xetex --disable-xindy'
Modifying source files induces more requirements, as one might
expect:
* Modification of any '.y' or '.l' source files requires 'bison' or
'flex' to update the corresponding C sources.
* Modification of the sources for '.info' files requires 'makeinfo'.
* Modification of any part of the build system (M4 macros,
'configure.ac', 'Makefile.am', or their fragments) requires GNU M4,
GNU Autoconf, GNU Automake, and GNU Libtool to update the generated
files. Furthermore, to reliably reproduce the build files, the
original GNU releases of these tools must be used, not any distro
packaging of them. *Note Build system tools::, for more
discussion.
If you haven't modified any source files, and infrastructure tools
such as 'autoconf' or 'makeinfo' are still being run, check your
timestamps--notably, 'use-commit-times' must be set to 'yes' in your
Subversion configuration (*note Build system tools::). No
infrastructure tools are needed to do a normal build (barring bugs).
---------- Footnotes ----------
(1) There is one exception in TL: the 'tangle-sh' and related rules
use '$@' to mean the target name, a feature not present in all 'make's.
This could be alleviated by laborious editing, but since there's no way
to avoid GNU 'make' for builds of the entire tree, it does not seem
worth the trouble.