Next: , Up: Installation


G.1 Build Dependencies

Octave is a fairly large program with many build dependencies. You may be able to find pre-packaged versions of the dependencies distributed as part of your system, or you may have to build some or all of them yourself.

The following tools are required:

C++, C, and Fortran compilers
The Octave sources are primarily written in C++, but some portions are also written in C and Fortran. The Octave sources are intended to be portable. Recent versions of the GNU compiler collection (GCC) should work (http://gcc.gnu.org). If you use GCC, you should avoid mixing versions. For example, be sure that you are not using the obsolete g77 Fortran compiler with modern versions of gcc and g++.
GNU Make
Tool for building software (http://www.gnu.org/software/make). Octave's build system requires GNU Make. Other versions of Make will not work. Fortunately, GNU Make is highly portable and easy to install.
AWK, sed, and other Unix utilities
Basic Unix system utilities are required for building Octave. All will be available with any modern Unix system and also on Windows with either Cygwin or MinGW and MSYS.

Additionally, the following tools may be needed:

Bison
Parser generator (http://www.gnu.org/software/bison). You will need Bison if you modify the oct-parse.yy source file or if you delete the files that are generated from it.
Flex
Lexer analyzer (http://www.gnu.org/software/flex). You will need Flex if you modify the lex.ll source file or if you delete the files that are generated from it.
Autoconf
Package for software configuration (http://www.gnu.org/software/autoconf). Autoconf is required if you modify Octave's configure.ac file or other files that it requires.
Automake
Package for Makefile generation (http://www.gnu.org/software/automake). Automake is required if you modify Octave's Makefile.am files or other files that they depend on.
Libtool
Package for building software libraries (http://www.gnu.org/software/libtool). Libtool is required by Automake.

The following external packages are required:

PCRE
The Perl Compatible Reular Expression library (http://www.pcre.org).
BLAS
Basic Linear Algebra Subroutine library (http://www.netlib.org/blas). Accelerated BLAS libraries such as ATLAS (http://math-atlas.sourceforge.net) are recommeded for better performance.
LAPACK
Linear Algebra Package (http://www.netlib.org/lapack).

The following external package is optional but strongly recommended:

GNU Readline
Command-line editing library (www.gnu.org/s/readline).

If you wish to build Octave without GNU readline installed, you must use the --disable-readline option when running the configure script.

The following external software packages are optional but recommended:

ARPACK
Library for the solution of large-scale eigenvalue problems (http://forge.scilab.org/index.php/p/arpack-ng). ARPACK is required to provide the functions eigs and svds.
cURL
Library for transferring data with URL syntax (http://curl.haxx.se). cURL is required to provide the urlread and urlwrite functions and the ftp class.
FFTW3
Library for computing discrete Fourier transforms (http://www.fftw.org). FFTW3 is used to provide better performance for functions that compute discrete Fourier transforms (fft, ifft, fft2, etc.)
FLTK
Portable GUI toolkit (http://www.fltk.org). FLTK is currently used to provide windows for Octave's OpenGL-based graphics functions.
fontconfig
Library for configuring and customizing font access (http://www.freedesktop.org/wiki/Software/fontconfig). Fontconfig is used to manage fonts for Octave's OpenGL-based graphics functions.
FreeType
Portable font engine (http://www.freetype.org). FreeType is used to peform font rendering Octave's OpenGL-based graphics functions.
GLPK
GNU Linear Programming Kit (http://www.gnu.org/software/glpk). GPLK is required for the function glpk.
gnuplot
Interactive graphics program (http://www.gnuplot.info). gnuplot is currently the default graphics renderer for Octave.
GraphicsMagick++
Image processing library (http://www.graphicsmagick.org). GraphicsMagick++ is used to provide the imread and imwrite functions.
HDF5
Library for manipulating portable data files (http://www.hdfgroup.org/HDF5). HDF5 is required for Octave's save and load commands to write and read HDF data files.
OpenGL
API for portable 2D and 3D graphics (http://www.opengl.org). An OpenGL implementation is required to provide Octave's OpenGL-based graphics functions. Octave's OpenGL-based graphics functions usually outperform the gnuplot-based graphics functions because plot data can be rendered directly instead of sending data and commands to gnuplot for interpretation and rendering.
Qhull
Computational geometry library (http://www.qhull.org). Qhull is required to provide the functions convhull, convhulln, delaunay, delaunay3, delaunayn, voronoi, and voronoin.
QRUPDATE
QR factorization updating library (http://sourceforge.net/projects/qrupdate). QRUPDATE is used to provide improved performance for the functions qrdelete, qrinsert, qrshift, and qrupdate.
SuiteSparse
Sparse matrix factorization library (http://www.cise.ufl.edu/research/sparse/SuiteSparse). SuiteSparse is required to provide sparse matrix factorizations and solution of linear equations for sparse systems.
zlib
Data compression library (http://zlib.net). The zlib library is required for Octave's load and save commands to handle compressed data, including Matlab v5 MAT files.