Difference between revisions of "Building"

From Octave
Jump to navigation Jump to search
(→‎Dependencies: Further Splitting the huge table.)
(→‎Dependencies: Facilitate logic of requirement.)
Line 42: Line 42:
 
== Dependencies ==
 
== Dependencies ==
  
{| class"wikitable"
+
Dependencies marked with <span style="background:lightgreen">green background</span> are '''required''' for building Octave.  All other tools and libraries are recommended/optional, but very useful features (like the GUI, plotting, etc.) are likely to be disabled.
|-
 
| Critical
 
| width="50pt" style="background:lightpink" | &nbsp;
 
|-
 
| Recommended
 
| style="background:yellow" | &nbsp;
 
|-
 
| Not critical
 
| style="background:lightgreen" | &nbsp;
 
|}
 
  
 
=== Build tools ===
 
=== Build tools ===
Line 61: Line 51:
 
! Description
 
! Description
 
! License / Copyright
 
! License / Copyright
|-style="background:lightpink"
+
|-style="background:lightgreen"
 
| [http://gcc.gnu.org C++, C, and Fortran compilers]
 
| [http://gcc.gnu.org C++, C, and Fortran compilers]
 
| Compiling the source code
 
| Compiling the source code
 
| GNU GPL v3.0
 
| GNU GPL v3.0
|-style="background:lightpink"
+
|-style="background:lightgreen"
 
| [http://www.gnu.org/software/make GNU Make]
 
| [http://www.gnu.org/software/make GNU Make]
 
| Makefile processor
 
| Makefile processor
 
| GNU GPL v3.0
 
| GNU GPL v3.0
|-style="background:lightpink"
+
|-style="background:lightgreen"
 
| Unix utilities: gawk, gperf, less, ncurses
 
| Unix utilities: gawk, gperf, less, ncurses
 
| Miscellaneous tasks
 
| Miscellaneous tasks
 
| GNU GPL v3.0
 
| GNU GPL v3.0
|-style="background:lightgreen"
+
|-
 
| [http://www.gnu.org/software/bison Bison]
 
| [http://www.gnu.org/software/bison Bison]
 
| Parser generator
 
| Parser generator
 
| GNU GPL v3.0
 
| GNU GPL v3.0
|-style="background:lightgreen"
+
|-
 
| [http://www.gnu.org/software/flex Flex]
 
| [http://www.gnu.org/software/flex Flex]
 
| Lexical analyzer
 
| Lexical analyzer
 
| The Flex project
 
| The Flex project
|-style="background:lightpink"
+
|-style="background:lightgreen"
 
| [http://www.gnu.org/software/autoconf Autoconf]
 
| [http://www.gnu.org/software/autoconf Autoconf]
 
| Software configuration
 
| Software configuration
 
| GNU GPL v3.0
 
| GNU GPL v3.0
|-style="background:lightpink"
+
|-style="background:lightgreen"
 
| [http://www.gnu.org/software/automake Automake]
 
| [http://www.gnu.org/software/automake Automake]
 
| Makefile generator
 
| Makefile generator
 
| GNU GPL v3.0
 
| GNU GPL v3.0
|-style="background:lightpink"
+
|-style="background:lightgreen"
 
| [http://www.gnu.org/software/libtool Libtool]
 
| [http://www.gnu.org/software/libtool Libtool]
 
| Dependency of automake
 
| Dependency of automake
Line 102: Line 92:
 
! Description
 
! Description
 
! License / Copyright
 
! License / Copyright
! Level
 
 
|-
 
|-
 
| [http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm epstool]
 
| [http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm epstool]
 
| Epstool is a utility to create or extract preview images in EPS files, fix bounding boxes and convert to bitmaps.
 
| Epstool is a utility to create or extract preview images in EPS files, fix bounding boxes and convert to bitmaps.
 
| GNU GPL v2.0
 
| GNU GPL v2.0
| style="background:green" | &nbsp;
 
 
|-
 
|-
 
| [http://sourceforge.net/projects/ftgl/ FTGL]
 
| [http://sourceforge.net/projects/ftgl/ FTGL]
 
| FTGL is a free cross-platform Open Source C++ library that uses Freetype2 to simplify rendering fonts in OpenGL applications.
 
| 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
 
| Provided "as is" -- various authors
| style="background:green" | &nbsp;
 
 
|-
 
|-
 
| [http://geuz.org/gl2ps/ GL2PS]
 
| [http://geuz.org/gl2ps/ GL2PS]
 
| GL2PS is a C library providing high quality vector output for any OpenGL application.
 
| GL2PS is a C library providing high quality vector output for any OpenGL application.
 
| GNU LGPL v2.0
 
| GNU LGPL v2.0
| style="background:green" | &nbsp;
 
 
|-
 
|-
 
| [http://www.pstoedit.net/ pstoedit]
 
| [http://www.pstoedit.net/ pstoedit]
 
| Translates PostScript and PDF graphics into other vector formats.
 
| Translates PostScript and PDF graphics into other vector formats.
 
| GNU GPL v2.0
 
| GNU GPL v2.0
| style="background:green" | &nbsp;
 
 
|-
 
|-
 
| [http://www.nongnu.org/texi2html/ Texi2HTML]
 
| [http://www.nongnu.org/texi2html/ Texi2HTML]
 
| Perl script which converts Texinfo source files to HTML output.
 
| Perl script which converts Texinfo source files to HTML output.
 
| GNU GPL v3.0
 
| GNU GPL v3.0
| style="background:green" | &nbsp;
 
 
|-
 
|-
 
| [https://www.gnu.org/software/texinfo/ Texinfo]
 
| [https://www.gnu.org/software/texinfo/ Texinfo]
 
| Documentation system that uses a single source to produce both on-line information and printed output.
 
| Documentation system that uses a single source to produce both on-line information and printed output.
 
| GNU GPL v3.0
 
| GNU GPL v3.0
| style="background:yellow" | &nbsp;
 
 
|-
 
|-
 
| TeX Live generic
 
| TeX Live generic
 
| Mixed bag of generic macro packages and fonts.
 
| Mixed bag of generic macro packages and fonts.
 
| Freely redistributable as defined by the Free Software Foundation
 
| Freely redistributable as defined by the Free Software Foundation
| style="background:green" | &nbsp;
 
 
|-
 
|-
 
| [https://www.tug.org/texlive/ TeX Live]
 
| [https://www.tug.org/texlive/ TeX Live]
 
| Compiler for TeX doumentation.
 
| Compiler for TeX doumentation.
 
| Freely redistributable as defined by the Free Software Foundation
 
| Freely redistributable as defined by the Free Software Foundation
| style="background:green" | &nbsp;
 
 
|-
 
|-
 
| [http://www.ctan.org/pkg/transfig transfig]
 
| [http://www.ctan.org/pkg/transfig transfig]
 
| Tans­lates fig­ures gen­er­ated by xfig to a large va­ri­ety of for­mats.
 
| Tans­lates fig­ures gen­er­ated by xfig to a large va­ri­ety of for­mats.
 
| BSD Style Li­cense
 
| BSD Style Li­cense
| style="background:green" | &nbsp;
 
 
|}
 
|}
  
Line 157: Line 137:
 
! Description
 
! Description
 
! License / Copyright
 
! License / Copyright
! Level
+
|-style="background:lightgreen"
|-
 
 
| [http://www.netlib.org/blas BLAS]
 
| [http://www.netlib.org/blas BLAS]
 
| Basic Linear Algebra Subroutine library
 
| Basic Linear Algebra Subroutine library
 
| Free - proper attribution request
 
| Free - proper attribution request
| style="background:red" | &nbsp;
+
|-style="background:lightgreen"
|-
 
 
| [http://www.netlib.org/lapack LAPACK]
 
| [http://www.netlib.org/lapack LAPACK]
 
| Linear Algebra Package
 
| Linear Algebra Package
 
| Free - proper attribution request
 
| Free - proper attribution request
| style="background:red" | &nbsp;
+
|-style="background:lightgreen"
|-
 
 
| [http://www.pcre.org PCRE]
 
| [http://www.pcre.org PCRE]
 
| Perl Compatible Regular Expression library
 
| Perl Compatible Regular Expression library
 
| Free
 
| Free
| style="background:red" | &nbsp;
+
|-style="background:lightgreen"
|-
 
 
| [http://www.gnu.org/s/readline GNU Readline]
 
| [http://www.gnu.org/s/readline GNU Readline]
 
| Command-line editing library
 
| Command-line editing library
 
| GNU GPL v3.0
 
| GNU GPL v3.0
| style="background:yellow" | &nbsp;
+
|-style="background:lightgreen"
|-
 
 
| [http://forge.scilab.org/index.php/p/arpack-ng ARPACK]
 
| [http://forge.scilab.org/index.php/p/arpack-ng ARPACK]
 
| Solution of large-scale eigenvalue problems
 
| Solution of large-scale eigenvalue problems
 
| BSD like - various authors
 
| BSD like - various authors
| style="background:red" | &nbsp;
+
|-style="background:lightgreen"
|-
 
 
| [http://curl.haxx.se cURL]
 
| [http://curl.haxx.se cURL]
 
| Library for transferring data with URL syntax
 
| Library for transferring data with URL syntax
 
| Free Software -- main author
 
| Free Software -- main author
| style="background:red" | &nbsp;
+
|-style="background:lightgreen"
|-
 
 
| [http://www.fftw.org FFTW3]
 
| [http://www.fftw.org FFTW3]
 
| Library for computing discrete Fourier transforms
 
| Library for computing discrete Fourier transforms
 
| MIT -- GNU GPL v2.0
 
| MIT -- GNU GPL v2.0
| style="background:red" | &nbsp;
 
 
|-
 
|-
 
| [http://www.fltk.org FLTK]
 
| [http://www.fltk.org FLTK]
 
| Portable GUI toolkit
 
| Portable GUI toolkit
 
| GNU GPL v2.0 with static linking exception
 
| GNU GPL v2.0 with static linking exception
| style="background:red" | &nbsp;
+
|-style="background:lightgreen"
|-
 
 
| [http://www.freedesktop.org/wiki/Software/fontconfig fontconfig]
 
| [http://www.freedesktop.org/wiki/Software/fontconfig fontconfig]
 
| Library for configuring and customizing font access
 
| Library for configuring and customizing font access
 
| Provided "as is" -- various authors
 
| Provided "as is" -- various authors
| style="background:red" | &nbsp;
+
|-style="background:lightgreen"
|-
 
 
| [http://www.freetype.org FreeType]
 
| [http://www.freetype.org FreeType]
 
| Portable font engine
 
| Portable font engine
 
| compatible with GNU GPL v3.0
 
| compatible with GNU GPL v3.0
| style="background:red" | &nbsp;
 
 
|-
 
|-
 
| [http://www.gnu.org/software/glpk GLPK]
 
| [http://www.gnu.org/software/glpk GLPK]
 
| GNU Linear Programming Kit
 
| GNU Linear Programming Kit
 
| GNU GPL v3.0
 
| GNU GPL v3.0
| style="background:yellow" | &nbsp;
 
 
|-
 
|-
 
| [http://www.gnuplot.info gnuplot]
 
| [http://www.gnuplot.info gnuplot]
 
| Interactive graphics program
 
| Interactive graphics program
 
| Provided "as is" -- various authors
 
| Provided "as is" -- various authors
| style="background:red" | &nbsp;
 
 
|-
 
|-
 
| [http://www.graphicsmagick.org GraphicsMagick++]
 
| [http://www.graphicsmagick.org GraphicsMagick++]
 
| Image processing library
 
| Image processing library
 
| various -- integrates many third-party libs
 
| various -- integrates many third-party libs
| style="background:yellow" | &nbsp;
 
 
|-
 
|-
 
| [http://www.hdfgroup.org/HDF5 HDF5]
 
| [http://www.hdfgroup.org/HDF5 HDF5]
 
| Library for manipulating portable data files
 
| Library for manipulating portable data files
 
| BSD - like
 
| BSD - like
| style="background:yellow" | &nbsp;
 
 
|-
 
|-
 
| [http://www.opengl.org OpenGL]
 
| [http://www.opengl.org OpenGL]
 
| API for portable 2D and 3D graphics
 
| API for portable 2D and 3D graphics
 
| Free specs -- license is driver dependent
 
| Free specs -- license is driver dependent
| style="background:red" | &nbsp;
 
 
|-
 
|-
 
| [http://www.qhull.org Qhull]
 
| [http://www.qhull.org Qhull]
 
| Computational geometry library
 
| Computational geometry library
 
| Free software -- specific
 
| Free software -- specific
| style="background:yellow" | &nbsp;
 
 
|-
 
|-
 
| [http://sourceforge.net/projects/qrupdate QRUPDATE]
 
| [http://sourceforge.net/projects/qrupdate QRUPDATE]
 
| QR factorization updating library
 
| QR factorization updating library
 
| GNU GPL v3.0
 
| GNU GPL v3.0
| style="background:yellow" | &nbsp;
 
 
|-
 
|-
 
| [http://www.cise.ufl.edu/research/sparse/SuiteSparse SuiteSparse]
 
| [http://www.cise.ufl.edu/research/sparse/SuiteSparse SuiteSparse]
 
| Sparse matrix factorization library
 
| Sparse matrix factorization library
 
| Main author
 
| Main author
| style="background:yellow" | &nbsp;
 
 
|-
 
|-
 
| [http://zlib.net zlib]
 
| [http://zlib.net zlib]
 
| Data compression library
 
| Data compression library
 
| Provided "as is" -- various authors
 
| Provided "as is" -- various authors
| style="background:yellow" | &nbsp;
 
 
|}
 
|}
  

Revision as of 22:39, 24 October 2019

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-5.1.0.tar.gz && \
tar -xzf octave-5.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

Dependencies marked with green background are required for building Octave. All other tools and libraries are recommended/optional, but very useful features (like the GUI, plotting, etc.) are likely to be disabled.

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
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
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.