The following external packages are required:
Basic Linear Algebra Subroutine library. Accelerated BLAS libraries such as OpenBLAS (https://www.openblas.net/) or ATLAS (http://math-atlas.sourceforge.net) are recommended for best performance. The reference implementation (http://www.netlib.org/blas) is slow, unmaintained, and suffers from certain bugs in corner case inputs.
Linear Algebra Package (http://www.netlib.org/lapack).
The Perl Compatible Regular Expression library (https://www.pcre.org).
The following external package is optional but strongly recommended:
Command-line editing library (https://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:
Library for the solution of large-scale eigenvalue problems
(https://forge.scilab.org/index.php/p/arpack-ng). ARPACK is
required to provide the functions
Library for transferring data with URL syntax
(https://curl.haxx.se). cURL is required to provide the
urlwrite functions and the
Library for computing discrete Fourier transforms
(http://www.fftw.org). FFTW3 is used to provide better
performance for functions that compute discrete Fourier transforms
Portable GUI toolkit (http://www.fltk.org). FLTK is currently used to provide windows for Octave’s OpenGL-based graphics functions.
Library for configuring and customizing font access (https://www.freedesktop.org/wiki/Software/fontconfig). Fontconfig is used to manage fonts for Octave’s OpenGL-based graphics functions.
Portable font engine (https://www.freetype.org). FreeType is used to perform font rendering for Octave’s OpenGL-based graphics functions.
GNU Linear Programming Kit (https://www.gnu.org/software/glpk).
GPLK is required for the function
OpenGL to PostScript printing library (https://www.geuz.org/gl2ps/). gl2ps is required for printing when using OpenGL-based graphics toolkits (currently either FLTK or Qt).
Interactive graphics program (http://www.gnuplot.info). gnuplot is currently the default graphics renderer for Octave.
Image processing library (http://www.graphicsmagick.org).
GraphicsMagick++ is used to provide the
Library for manipulating portable data files
(https://www.hdfgroup.org/HDF5). HDF5 is required for Octave’s
save commands to read and write HDF data files.
Java programming language compiler and libraries. The OpenJDK free software implementation is recommended (http://openjdk.java.net/), although other JDK implementations may work. Java is required to be able to call Java functions from within Octave.
Compiler framework, (https://www.llvm.org). LLVM is required for Octave’s experimental just-in-time (JIT) compilation for speeding up the interpreter.
API for portable 2-D and 3-D graphics (https://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.
PortAudio (http://www.portaudio.com/) provides a very simple API
for recording and/or playing sound using a simple callback function or
a blocking read/write interface. It is required for the audio processing
Computational geometry library (http://www.qhull.org). Qhull is
required to provide the functions
QR factorization updating library
(https://sourceforge.net/projects/qrupdate). QRUPDATE is used to
provide improved performance for the functions
Source code highlighter and manipulator; a Qt port of Scintilla (http://www.riverbankcomputing.co.uk/software/qscintilla). QScintilla is used for syntax highlighting and code completion in the GUI.
GUI and utility libraries (https://www.qt.io). Qt is required for building the GUI. It is a large framework, but the only components required are the GUI, core, and network modules.
Sparse matrix factorization library (http://faculty.cse.tamu.edu/davis/suitesparse.html). SuiteSparse is required to provide sparse matrix factorizations and solution of linear equations for sparse systems.
The SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers
(https://computation.llnl.gov/projects/sundials) is required for
the Ordinary Differential Equations (ODE) solvers
Data compression library (https://zlib.net). The zlib library is
required for Octave’s
save commands to handle
compressed data, including MATLAB v5 MAT files.