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> [<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"> ¶</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’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’t already have one.
</p>
</dd>
<dt><code class="code">--with-blas=<lib></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=<lib></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=<lib></code></dt>
<dd><p>Select the Magick++ library to use for image I/O. For many
distributions, possible values are <code class="code">"GraphicsMagick++"</code> (default)
or <code class="code">"ImageMagick++"</code>.
</p>
</dd>
<dt><code class="code">--with-sepchar=<char></code></dt>
<dd><p>Use <char> 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’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’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’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’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’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’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’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’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’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’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’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’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’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’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’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’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’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’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, ‘<samp class="samp">i586-unknown-gnu</samp>’).
</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> [<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>
|