-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsource.html
More file actions
172 lines (164 loc) · 6.52 KB
/
source.html
File metadata and controls
172 lines (164 loc) · 6.52 KB
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<html>
<head>
<link rel="stylesheet" type="text/css" href="regina.css">
<title>Building Regina from Source</title>
</head>
<body bgcolor="#FFFFFF" text="#000000"
link="#0000EE" vlink="#551A8B" alink="#FF0000">
<h1><a name="contents">Building Regina from Source</a></h1>
<div class="announce"><p>
<b>Tip:</b> See the page on
<a href="buildtips.html">building Regina on different systems</a>,
which offers advice tailored for your particular type of machine.
</div>
<p>
Regina's build scripts should detect most aspects of your
system configuration, and give you useful error messages if something
looks out of place.
If Regina does not build out of the box for you, please mail the authors
(including your <tt>CMakeCache.txt</tt> if possible) so that we can update
the scripts to work with systems like yours in the next release.
<p>
In summary, to build Regina:
<ul>
<li>Make sure you have installed all the necessary tools and
libraries as listed in the <a href="#sysreq">system
requirements</a> table below.</li>
<li>Download the source archive
<tt><b>regina-7.4.1.tar.gz</b></tt> from the
<a href="https://github.com/regina-normal/regina/releases/download/regina-7.4.1/regina-7.4.1.tar.gz">Regina
download site</a>.</li>
<li>Unpack this source archive, which will expand into a directory
<tt><b>regina-7.4.1/</b></tt> on your machine.
<div class="example"><p>
<tt>example:~$ <b>tar -zxf regina-7.4.1.tar.gz</b></tt>
</p></div></li>
<li>Create a build subdirectory, such as
<tt><b>regina-7.4.1/build/</b></tt>.
<div class="example"><p>
<tt>example:~$ <b>cd regina-7.4.1</b></tt><br>
<tt>example:~/regina-7.4.1$ <b>mkdir build</b></tt>
</p></div></li>
<li>Move into the build directory, and then run
“<tt><b>cmake ..</b></tt>”. This will
search for the necessary tools and libraries on your system,
and configure your build accordingly.
<div class="example"><p>
<tt>example:~/regina-7.4.1$ <b>cd build</b></tt><br>
<tt>example:~/regina-7.4.1/build$ <b>cmake ..</b></tt>
</p></div>
You will <b>almost certainly need to pass additional arguments to
cmake</b>.
Please visit <a href="buildtips.html">this page</a> for details.
</li>
<li>If cmake succeeds, run <tt><b>make</b></tt> to build Regina.
Then, as root, run <tt><b>make install</b></tt> to install Regina on your
system.
<div class="example"><p>
<tt>example:~/regina-7.4.1/build$ <b>make</b></tt><br>
<tt>example:~/regina-7.4.1/build$ <b>sudo make install</b></tt>
</p></div>
</ul>
That's all there is to it.
If you are having trouble building or running Regina, please check out
the <a href="docs/troubleshooting.html">troubleshooting page</a>
and/or mail the authors for assistance.
<h2><a name="sysreq">System Requirements</a></h2>
The following table lists the tools and
libraries that you will need to build Regina.
<p>
<b>It is highly recommended that you download ready-made packages of these
tools and libraries</b>. This is the best way to provide standard
installations in standard locations that
Regina can easily find and use. All of these tools and libraries are
included in almost every major GNU/Linux distribution.
<p>
The following table lists each requirement, along with its Debian package
name and some commonly-used RPM package names (these tend to vary
between different RPM-based distributions).
<p>
<table cellspacing=0 border=0 class="data">
<tr><th colspan=2 class="first">Legend</th></tr>
<tr>
<td class="reqfirst">Required</td>
<td class="opt">Optional</td>
</tr></table>
<p>
<table cellspacing=0 border=0 class="data">
<tr><th class="first">Component</th><th>Required For</th>
<th>Version</th><th>Package Names</th></tr>
<tr><td class="reqfirst">C++ compiler (e.g., GCC or Clang)</td>
<td class="req">Build infrastructure</td>
<td>GCC ≥ 10, <b>or</b><br>Clang ≥ 17</td>
<td>g++ (DEB)<br>gcc-c++ (RPM)
</td></tr>
<tr><td class="reqfirst">CMake</td>
<td class="req">Build infrastructure</td>
<td>≥ 3.12</td>
<td>cmake (DEB)<br>cmake (RPM)
</td></tr>
<tr><td class="reqfirst">GNU multiprecision arithmetic library,<br>
including <em>libgmp</em> and <em>libgmpxx</em></td>
<td class="req">Calculation engine</td>
<td> </td>
<td>libgmp-dev (DEB)<br>
gmp-devel (plus gmpxx-devel on some systems) (RPM)
</td></tr>
<tr><td class="reqfirst">GNOME XML library <em>(libxml2)</em></td>
<td class="req">Calculation engine</td>
<td>≥ 2.5.0</td>
<td>libxml2-dev (DEB)<br>libxml2-devel (RPM)
</td></tr>
<tr><td class="reqfirst">A lightweight database library, chosen from:<br>
– Tokyo Cabinet (<em>libtokyocabinet</em>); <b>or</b><br>
– QDBM (<em>libqdbm</em>); <b>or</b><br>
– Lightning Memory-Mapped Database (<em>liblmdb</em>)</td>
<td class="req">Calculation engine</td>
<td> </td>
<td>libtokyocabinet-dev / libqdbm-dev / liblmdb-dev (DEB)<br>
tokyocabinet-devel / libtokyocabinet-devel /<br>
qdbm-devel / lmdb-devel / liblmdb-devel (RPM)
</td></tr>
<tr><td class="reqfirst">Qt libraries, including the
<em>Widgets</em> and <em>Svg</em> modules</td>
<td class="req">Graphical user interface</td>
<td>Qt 6</td>
<td>qt6-base-dev & libqt6svg6-dev (DEB)<br>
qt6-qtbase-devel & qt6-qtsvg-devel, or<br>
qt6-base-devel & qt6-svg-devel (RPM)
</td></tr>
<tr><td class="optfirst">Python development libraries</td>
<td class="opt">Python scripting</td>
<td>≥ 3.7</td>
<td>python3-all-dev (DEB)<br>python3-devel (RPM)
</td></tr>
<tr><td class="optfirst">Doxygen</td>
<td class="opt">C++/Python API docs</td>
<td>≥ 1.9.2</td>
<td>doxygen (DEB)<br>doxygen (RPM)
</td></tr>
<tr><td class="optfirst">Graphviz libraries</td>
<td class="opt">Drawing graphs</td>
<td> </td>
<td>libgraphviz-dev (DEB)<br>
graphviz-devel / libgraphviz-devel (RPM)
</td></tr>
<tr><td class="optfirst">pkg-config</td>
<td class="opt">Build infrastructure<br>
(locating Graphviz)</td>
<td> </td>
<td>pkg-config (DEB)<br>pkg-config / pkgconfig (RPM)
</td></tr>
<tr><td class="optfirst">xsltproc</td>
<td class="opt">User handbook</td>
<td> </td>
<td>xsltproc (DEB)<br>
libxslt / libxslt1 / xsltproc (RPM)
</td></tr>
</table>
<p class="return">
<a href="index.html"><img src="regina.svg" alt="Back to main page ..."
border="0" width="32" height="32" align="middle"></a>
<a href="index.html">Back to main page ...</a></p>
</body>
</html>