File: Running-Configure-and-Make.html

package info (click to toggle)
octave 10.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 145,388 kB
  • sloc: cpp: 335,976; ansic: 82,241; fortran: 20,963; objc: 9,402; sh: 8,756; yacc: 4,392; lex: 4,333; perl: 1,544; java: 1,366; awk: 1,259; makefile: 659; xml: 192
file content (368 lines) | stat: -rw-r--r-- 16,884 bytes parent folder | download | duplicates (2)
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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
<!DOCTYPE html>
<html>
<!-- Created by GNU Texinfo 7.1.1, https://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Running Configure and Make (GNU Octave (version 10.3.0))</title>

<meta name="description" content="Running Configure and Make (GNU Octave (version 10.3.0))">
<meta name="keywords" content="Running Configure and Make (GNU Octave (version 10.3.0))">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta name="viewport" content="width=device-width,initial-scale=1">

<link href="index.html" rel="start" title="Top">
<link href="Concept-Index.html" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Installation.html" rel="up" title="Installation">
<link href="Compiling-Octave-with-64_002dbit-Indexing.html" rel="next" title="Compiling Octave with 64-bit Indexing">
<link href="Build-Dependencies.html" rel="prev" title="Build Dependencies">
<style type="text/css">
<!--
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
div.example {margin-left: 3.2em}
span:hover a.copiable-link {visibility: visible}
ul.mark-bullet {list-style-type: disc}
-->
</style>
<link rel="stylesheet" type="text/css" href="octave.css">


</head>

<body lang="en">
<div class="section-level-extent" id="Running-Configure-and-Make">
<div class="nav-panel">
<p>
Next: <a href="Compiling-Octave-with-64_002dbit-Indexing.html" accesskey="n" rel="next">Compiling Octave with 64-bit Indexing</a>, Previous: <a href="Build-Dependencies.html" accesskey="p" rel="prev">Build Dependencies</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installing Octave</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<h3 class="section" id="Running-Configure-and-Make-1"><span>E.2 Running Configure and Make<a class="copiable-link" href="#Running-Configure-and-Make-1"> &para;</a></span></h3>

<ul class="itemize mark-bullet">
<li>Run the shell script <samp class="file">configure</samp>.  This will determine the features
your system has (or doesn&rsquo;t have) and create a file named
<samp class="file">Makefile</samp> from each of the files named <samp class="file">Makefile.in</samp>.

<p>For a complete list of configure options, run <samp class="file">configure --help</samp>.
Here is a summary of the configure options that are most frequently used
when building Octave:
</p>
<dl class="table">
<dt><code class="code">--help</code></dt>
<dd><p>Print a summary of the options recognized by the configure script.
</p>
</dd>
<dt><code class="code">--prefix=<var class="var">prefix</var></code></dt>
<dd><p>Install Octave in subdirectories below <var class="var">prefix</var>.  The default value
of <var class="var">prefix</var> is <samp class="file">/usr/local</samp>.
</p>
</dd>
<dt><code class="code">--srcdir=<var class="var">dir</var></code></dt>
<dd><p>Look for Octave sources in the directory <var class="var">dir</var>.
</p>
</dd>
<dt><code class="code">--disable-64</code></dt>
<dd><p>Disable using 64-bit integers for indexing arrays and use 32-bit
integers instead.  On systems with 32-bit pointers, this option is
always disabled.  If the configure script determines that your <small class="sc">BLAS</small>
library uses 32-bit integers, then operations using the following
libraries are limited to arrays with dimensions that are smaller than
<em class="math">2^{31}</em> elements:
</p>
<ul class="itemize mark-bullet">
<li><small class="sc">BLAS</small>

</li><li><small class="sc">LAPACK</small>

</li><li>QRUPDATE

</li><li>SuiteSparse

</li><li><small class="sc">ARPACK</small>
</li></ul>

<p>Additionally, the following libraries use <code class="code">int</code> internally, so
maximum problem sizes are always limited:
</p>
<ul class="itemize mark-bullet">
<li><small class="sc">GLPK</small>

</li><li>Qhull
</li></ul>

<p>See <a class="xref" href="Compiling-Octave-with-64_002dbit-Indexing.html">Compiling Octave with 64-bit Indexing</a>, for more details
about building Octave with more complete support for large arrays.
</p>
</dd>
<dt><code class="code">--enable-address-sanitizer-flags</code></dt>
<dd><p>Enable compiler options <samp class="option">-fsanitize=address</samp> and
<samp class="option">-fomit-frame-pointer</samp> for memory access checking.  This option is
primarily used for debugging Octave.  Building Octave with this option
has a negative impact on performance and is not recommended for general
use.  It may also interfere with proper functioning of the GUI.
</p>
</dd>
<dt><code class="code">--disable-docs</code></dt>
<dd><p>Disable building all forms of the documentation (Info, PDF, HTML).  The
default is to build documentation, but your system will need functioning
Texinfo and TeX installs for this to succeed.
</p>
</dd>
<dt><code class="code">--enable-float-truncate</code></dt>
<dd><p>This option allows for truncation of intermediate floating point results
in calculations.  It is only necessary for certain platforms.
</p>
</dd>
<dt><code class="code">--enable-readline</code></dt>
<dd><p>Use the readline library to provide for editing of the command line in
terminal environments.  This option is on by default.
</p>
</dd>
<dt><code class="code">--enable-shared</code></dt>
<dd><p>Create shared libraries (this is the default).  If you are planning to
use the dynamic loading features, you will probably want to use this
option.  It will make your <samp class="file">.oct</samp> files much smaller and on some
systems it may be necessary to build shared libraries in order to use
dynamically linked functions.
</p>
<p>You may also want to build a shared version of <code class="code">libstdc++</code>, if your
system doesn&rsquo;t already have one.
</p>
</dd>
<dt><code class="code">--with-blas=&lt;lib&gt;</code></dt>
<dd><p>By default, configure looks for the best <small class="sc">BLAS</small> matrix libraries on
your system, including optimized implementations such as the free ATLAS
3.0, as well as vendor-tuned libraries.  (The use of an optimized
<small class="sc">BLAS</small> will generally result in several-times faster matrix
operations.)  Use this option to specify a particular <small class="sc">BLAS</small> library
that Octave should use.
</p>
</dd>
<dt><code class="code">--with-lapack=&lt;lib&gt;</code></dt>
<dd><p>By default, configure looks for the best <small class="sc">LAPACK</small> matrix libraries on
your system, including optimized implementations such as the free ATLAS
3.0, as well as vendor-tuned libraries.  (The use of an optimized
<small class="sc">LAPACK</small> will generally result in several-times faster matrix
operations.)  Use this option to specify a particular <small class="sc">LAPACK</small>
library that Octave should use.
</p>
</dd>
<dt><code class="code">--with-magick=&lt;lib&gt;</code></dt>
<dd><p>Select the Magick++ library to use for image I/O.  For many
distributions, possible values are <code class="code">&quot;GraphicsMagick++&quot;</code> (default)
or <code class="code">&quot;ImageMagick++&quot;</code>.
</p>
</dd>
<dt><code class="code">--with-sepchar=&lt;char&gt;</code></dt>
<dd><p>Use &lt;char&gt; as the path separation character.  This option can help when
running Octave on non-Unix systems.
</p>
</dd>
<dt><code class="code">--without-amd</code></dt>
<dd><p>Don&rsquo;t use <small class="sc">AMD</small>, disable some sparse matrix functionality.
</p>
</dd>
<dt><code class="code">--without-camd</code></dt>
<dd><p>Don&rsquo;t use <small class="sc">CAMD</small>, disable some sparse matrix functionality.
</p>
</dd>
<dt><code class="code">--without-colamd</code></dt>
<dd><p>Don&rsquo;t use <small class="sc">COLAMD</small>, disable some sparse matrix functionality.
</p>
</dd>
<dt><code class="code">--without-ccolamd</code></dt>
<dd><p>Don&rsquo;t use <small class="sc">CCOLAMD</small>, disable some sparse matrix functionality.
</p>
</dd>
<dt><code class="code">--without-cholmod</code></dt>
<dd><p>Don&rsquo;t use <small class="sc">CHOLMOD</small>, disable some sparse matrix functionality.
</p>
</dd>
<dt><code class="code">--without-curl</code></dt>
<dd><p>Don&rsquo;t use the cURL library, disable the ftp objects, <code class="code">urlread</code> and
<code class="code">urlwrite</code> functions.
</p>
</dd>
<dt><code class="code">--without-cxsparse</code></dt>
<dd><p>Don&rsquo;t use <small class="sc">CXSPARSE</small>, disable some sparse matrix functionality.
</p>
</dd>
<dt><code class="code">--without-fftw3</code></dt>
<dd><p>Use the included <small class="sc">FFTPACK</small> library for computing Fast Fourier
Transforms instead of the <small class="sc">FFTW3</small> library.
</p>
</dd>
<dt><code class="code">--without-fftw3f</code></dt>
<dd><p>Use the included <small class="sc">FFTPACK</small> library for computing Fast Fourier
Transforms instead of the <small class="sc">FFTW3</small> library when operating on single
precision (float) values.
</p>
</dd>
<dt><code class="code">--without-glpk</code></dt>
<dd><p>Don&rsquo;t use the <small class="sc">GLPK</small> library for linear programming.
</p>
</dd>
<dt><code class="code">--without-hdf5</code></dt>
<dd><p>Don&rsquo;t use the <small class="sc">HDF5</small> library, disable reading and writing of
<small class="sc">HDF5</small> files.
</p>
</dd>
<dt><code class="code">--without-opengl</code></dt>
<dd><p>Don&rsquo;t use OpenGL, disable native graphics toolkit for plotting.  You
will need <code class="code">gnuplot</code> installed in order to make plots.
</p>
</dd>
<dt><code class="code">--without-qhull_r</code></dt>
<dd><p>Don&rsquo;t use (re-entrant) Qhull, disable <code class="code">delaunay</code>, <code class="code">convhull</code>,
and related functions.
</p>
</dd>
<dt><code class="code">--without-qrupdate</code></dt>
<dd><p>Don&rsquo;t use <small class="sc">QRUPDATE</small>, disable QR and Cholesky update functions.
</p>
</dd>
<dt><code class="code">--without-umfpack</code></dt>
<dd><p>Don&rsquo;t use <small class="sc">UMFPACK</small>, disable some sparse matrix functionality.
</p>
</dd>
<dt><code class="code">--without-z</code></dt>
<dd><p>Don&rsquo;t use the zlib library, disable data file compression and support
for recent MAT file formats.
</p>
</dd>
<dt><code class="code">--without-framework-carbon</code></dt>
<dd><p>Don&rsquo;t use framework Carbon headers, libraries, or specific source code
even if the configure test succeeds (the default is to use Carbon
framework if available).  This is a platform specific configure option
for Mac systems.
</p>
</dd>
<dt><code class="code">--without-framework-opengl</code></dt>
<dd><p>Don&rsquo;t use framework OpenGL headers, libraries, or specific source code
even if the configure test succeeds.  If this option is given then
OpenGL headers and libraries in standard system locations are tested
(the default value is <samp class="option">--with-framework-opengl</samp>).  This is a
platform specific configure option for Mac systems.
</p>
</dd>
</dl>

<p>See the file <samp class="file">INSTALL</samp> for more general information about the
command line options used by configure.  That file also contains
instructions for compiling in a directory other than the one where
the source is located.
</p>
</li><li>Run make.

<p>You will need a recent version of GNU Make as Octave relies on certain
features not generally available in all versions of make.  Modifying
Octave&rsquo;s makefiles to work with other make programs is probably not
worth your time; instead, we simply recommend installing GNU Make.
</p>
<p>There are currently three options for plotting in Octave: the external
program gnuplot, the internal graphics engine using OpenGL coupled with
either FLTK or Qt widgets.  Gnuplot is a command-driven interactive
function plotting program.
</p>
<p>To compile Octave, you will need a recent version of <code class="code">g++</code> or other
ANSI C++ compiler.  In addition, you will need a Fortran 77 compiler or
<code class="code">f2c</code>.  If you use <code class="code">f2c</code>, you will need a script like
<code class="code">fort77</code> that works like a normal Fortran compiler by combining
<code class="code">f2c</code> with your C compiler in a single script.
</p>
<p>If you plan to modify the parser you will also need GNU <code class="code">bison</code> and
<code class="code">flex</code>.  If you modify the documentation, you will need GNU
Texinfo.
</p>
<p>GNU Make, <code class="code">gcc</code> (and <code class="code">libstdc++</code>), <code class="code">gnuplot</code>,
<code class="code">bison</code>, <code class="code">flex</code>, and Texinfo are all available from many
anonymous ftp archives.  The primary site is <a class="url" href="ftp://ftp.gnu.org">ftp://ftp.gnu.org</a>, but it
is often very busy.  A list of sites that mirror the software on
<a class="url" href="ftp://ftp.gnu.org">ftp://ftp.gnu.org</a> is available by anonymous ftp from
<a class="url" href="ftp://ftp.gnu.org/pub/gnu/GNUinfo/FTP">ftp://ftp.gnu.org/pub/gnu/GNUinfo/FTP</a>.
</p>
<p>Octave requires approximately 1.4 GB of disk storage to unpack and
compile from source (significantly less, 400 MB, if you don&rsquo;t compile
with debugging symbols).  To compile without debugging symbols try the
command
</p>
<div class="example">
<pre class="example-preformatted">make CFLAGS=-O CXXFLAGS=-O LDFLAGS=
</pre></div>

<p>instead of just <code class="command">make</code>.
</p>
</li><li>If you encounter errors while compiling Octave, first
see <a class="ref" href="Installation-Problems.html">Installation Problems</a> for a list of
known problems and if there is a workaround or solution for
your problem.  If not, see
<a class="ref" href="Trouble.html">Known Causes of Trouble</a>
for information about how to report bugs.

</li><li>Once you have successfully compiled Octave, run <code class="code">make install</code>.

<p>This will install a copy of Octave, its libraries, and its documentation
in the destination directory.  As distributed, Octave is installed in
the following directories.  In the table below, <var class="var">prefix</var> defaults to
<samp class="file">/usr/local</samp>, <var class="var">version</var> stands for the current version number
of the interpreter, and <var class="var">arch</var> is the type of computer on which
Octave is installed (for example, &lsquo;<samp class="samp">i586-unknown-gnu</samp>&rsquo;).
</p>
<dl class="table">
<dt><samp class="file"><var class="var">prefix</var>/bin</samp></dt>
<dd><p>Octave and other binaries that people will want to run directly.
</p>
</dd>
<dt><samp class="file"><var class="var">prefix</var>/lib/octave-<var class="var">version</var></samp></dt>
<dd><p>Libraries like liboctave.a and liboctinterp.a.
</p>
</dd>
<dt><samp class="file"><var class="var">prefix</var>/include/octave-<var class="var">version</var>/octave</samp></dt>
<dd><p>Include files distributed with Octave.
</p>
</dd>
<dt><samp class="file"><var class="var">prefix</var>/share</samp></dt>
<dd><p>Architecture-independent data files.
</p>
</dd>
<dt><samp class="file"><var class="var">prefix</var>/share/man/man1</samp></dt>
<dd><p>Unix-style man pages describing Octave.
</p>
</dd>
<dt><samp class="file"><var class="var">prefix</var>/share/info</samp></dt>
<dd><p>Info files describing Octave.
</p>
</dd>
<dt><samp class="file"><var class="var">prefix</var>/share/octave/<var class="var">version</var>/m</samp></dt>
<dd><p>Function files distributed with Octave.  This includes the Octave
version, so that multiple versions of Octave may be installed at the
same time.
</p>
</dd>
<dt><samp class="file"><var class="var">prefix</var>/libexec/octave/<var class="var">version</var>/exec/<var class="var">arch</var></samp></dt>
<dd><p>Executables to be run by Octave rather than the user.
</p>
</dd>
<dt><samp class="file"><var class="var">prefix</var>/lib/octave/<var class="var">version</var>/oct/<var class="var">arch</var></samp></dt>
<dd><p>Object files that will be dynamically loaded.
</p>
</dd>
<dt><samp class="file"><var class="var">prefix</var>/share/octave/<var class="var">version</var>/imagelib</samp></dt>
<dd><p>Image files that are distributed with Octave.
</p></dd>
</dl>
</li></ul>

</div>
<hr>
<div class="nav-panel">
<p>
Next: <a href="Compiling-Octave-with-64_002dbit-Indexing.html">Compiling Octave with 64-bit Indexing</a>, Previous: <a href="Build-Dependencies.html">Build Dependencies</a>, Up: <a href="Installation.html">Installing Octave</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>