Building

From Octave
Revision as of 06:27, 25 October 2019 by Siko1056 (talk | contribs) (→‎Dependencies: Further Splitting the huge table.)
Jump to navigation Jump to search

General information about building the Octave source for different operating systems.

General steps

Build from the development repository Build from a release
Install all build dependencies (see below).
hg clone https://www.octave.org/hg/octave && \
cd octave                                  && \
./bootstrap
wget https://ftpmirror.gnu.org/octave/octave-9.1.0.tar.gz && \
tar -xzf octave-9.1.0.tar.gz
mkdir .build                            && \
cd    .build                            && \
./../configure --prefix=$HOME/my_octave && \ [1]
make -j2                                && \ [2]
make check                              && \
make install

We try to keep build instructions up to date in the source tree. Please clone using Mercurial or download it to see the README.

There are also instructions in the manual.

Dependencies

Critical  
Recommended  
Not critical  

Build tools

Dependency Description License / Copyright
C++, C, and Fortran compilers Compiling the source code GNU GPL v3.0
GNU Make Makefile processor GNU GPL v3.0
Unix utilities: gawk, gperf, less, ncurses Miscellaneous tasks GNU GPL v3.0
Bison Parser generator GNU GPL v3.0
Flex Lexical analyzer The Flex project
Autoconf Software configuration GNU GPL v3.0
Automake Makefile generator GNU GPL v3.0
Libtool Dependency of automake Free Software Foundation

Documentation tools

Dependency Description License / Copyright Level
epstool Epstool is a utility to create or extract preview images in EPS files, fix bounding boxes and convert to bitmaps. GNU GPL v2.0  
FTGL FTGL is a free cross-platform Open Source C++ library that uses Freetype2 to simplify rendering fonts in OpenGL applications. Provided "as is" -- various authors  
GL2PS GL2PS is a C library providing high quality vector output for any OpenGL application. GNU LGPL v2.0  
pstoedit Translates PostScript and PDF graphics into other vector formats. GNU GPL v2.0  
Texi2HTML Perl script which converts Texinfo source files to HTML output. GNU GPL v3.0  
Texinfo Documentation system that uses a single source to produce both on-line information and printed output. GNU GPL v3.0  
TeX Live generic Mixed bag of generic macro packages and fonts. Freely redistributable as defined by the Free Software Foundation  
TeX Live Compiler for TeX doumentation. Freely redistributable as defined by the Free Software Foundation  
transfig Tans­lates fig­ures gen­er­ated by xfig to a large va­ri­ety of for­mats. BSD Style Li­cense  

External tools and libraries

Dependency Description License / Copyright Level
BLAS Basic Linear Algebra Subroutine library Free - proper attribution request  
LAPACK Linear Algebra Package Free - proper attribution request  
PCRE Perl Compatible Regular Expression library Free  
GNU Readline Command-line editing library GNU GPL v3.0  
ARPACK Solution of large-scale eigenvalue problems BSD like - various authors  
cURL Library for transferring data with URL syntax Free Software -- main author  
FFTW3 Library for computing discrete Fourier transforms MIT -- GNU GPL v2.0  
FLTK Portable GUI toolkit GNU GPL v2.0 with static linking exception  
fontconfig Library for configuring and customizing font access Provided "as is" -- various authors  
FreeType Portable font engine compatible with GNU GPL v3.0  
GLPK GNU Linear Programming Kit GNU GPL v3.0  
gnuplot Interactive graphics program Provided "as is" -- various authors  
GraphicsMagick++ Image processing library various -- integrates many third-party libs  
HDF5 Library for manipulating portable data files BSD - like  
OpenGL API for portable 2D and 3D graphics Free specs -- license is driver dependent  
Qhull Computational geometry library Free software -- specific  
QRUPDATE QR factorization updating library GNU GPL v3.0  
SuiteSparse Sparse matrix factorization library Main author  
zlib Data compression library Provided "as is" -- various authors  

Footnotes

  1. --prefix determines the installation location.
  2. Depending on your system and processor count, use a larger number of parallel jobs, e.g. -j8.