Building: Difference between revisions

Jump to navigation Jump to search
1,065 bytes added ,  16 March 2022
m
(→‎Tweaks: Add Large array support.)
 
(17 intermediate revisions by 6 users not shown)
Line 1: Line 1:
: '' This article provides general information about building GNU Octave from source. If you just want to install Octave, see [[:Category:Installation]].''
:''This article provides general information about '''building GNU Octave''' from source (on Unix-like systems).''
 
:*''If you just want to '''install GNU Octave''', see [[:Category:Installation]].''
:*''For '''MS Windows''', read [[Building on Microsoft Windows]] and [[Windows Installer]].''
:*''For '''macOS''', read [[Octave for macOS]].''


== General steps ==
== General steps ==
Line 5: Line 9:
# Install all [[#Dependencies|build dependencies]] (see below).
# Install all [[#Dependencies|build dependencies]] (see below).
# Getting the Octave sources ...
# Getting the Octave sources ...
#* ... from the development repository
::(A) ... from the development repository (requires also [https://www.mercurial-scm.org/ Mercurial])
<div style="margin-left:5em;">
<div style="margin-left:5em;">
  hg clone https://www.octave.org/hg/octave && \
  hg clone https://www.octave.org/hg/octave && \
Line 11: Line 15:
  ./bootstrap
  ./bootstrap
</div>
</div>
::* ... from a release
::(B) ... from a release
<div style="margin-left:5em;">
<div style="margin-left:5em;">
  wget https://ftpmirror.gnu.org/octave/octave-{{Release}}.tar.gz && \
  wget https://ftpmirror.gnu.org/octave/octave-{{Release}}.tar.gz && \
Line 21: Line 25:
  mkdir .build                            && \
  mkdir .build                            && \
  cd    .build                            && \
  cd    .build                            && \
  ./../configure --prefix=$HOME/my_octave && \ <ref><code>--prefix</code> determines the installation location. See [[#Install Octave in home directory|Tweaks section]] for details.</ref>
  ./../configure --prefix=$HOME/my_octave && \ <ref><code>--prefix</code> determines the installation location, see the [[#Install Octave in home directory|Tweaks section]] for details. For more information about configuration options, type <code>./../configure --help</code>.</ref>
  make -j2                                && \ <ref>Depending on your system and processor count, use a larger number of parallel jobs, e.g. <code>-j8</code>.</ref>
  make -j2                                && \ <ref>Depending on your system and processor count, use a larger number of parallel jobs, e.g. <code>-j8</code>.</ref>
  make check                              && \
  make check                              && \
Line 29: Line 33:
== Dependencies ==
== Dependencies ==


Most of the dependencies given in this section can be very conveniently installed on many [[Octave for GNU/Linux|GNU/Linux]] systems.  Please read the respective wiki page for your distribution on the [[Octave for GNU/Linux]] page.
Most of the dependencies given in this section can be very conveniently installed on many [[Octave for GNU/Linux|GNU/Linux]] systems.


On [[Octave for Microsoft Windows|MS Windows]] and [[Octave for macOS|macOS]] systems the generic Octave build process described on this page needs some more effort to fulfill the described build dependencies.  Please read [[Octave for Microsoft Windows]] and [[Octave for macOS]] for information how to build Octave for the respective systems.
{{Note|For a quick way to install the required dependencies, see:
* [[Octave for Debian systems#The right way|Debian / Ubuntu]]
* [[Octave for Arch Linux|Arch Linux]]
* [[Octave for Red Hat Linux systems|Fedora / RedHat / CentOS]]}}


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.
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.
Line 156: Line 163:
| Portable font engine
| Portable font engine
| compatible with GNU GPL v3.0
| compatible with GNU GPL v3.0
|-
| [https://www.geuz.org/gl2ps/ GL2PS]
| OpenGL to PostScript printing library
| GNU GPL v2.0
|-
|-
| [https://www.gnu.org/software/glpk GLPK]
| [https://www.gnu.org/software/glpk GLPK]
Line 165: Line 176:
| Provided "as is" -- various authors
| Provided "as is" -- various authors
|-
|-
| [http://www.graphicsmagick.org GraphicsMagick++]
| Magick++, e.g. [http://www.graphicsmagick.org GraphicsMagick++]
| Image processing library
| Image processing library
| various -- integrates many third-party libs
| various -- integrates many third-party libs
Line 172: Line 183:
| Library for manipulating portable data files
| Library for manipulating portable data files
| BSD - like
| BSD - like
|-
| JDK, e.g. [https://www.hdfgroup.org/solutions/hdf5 OpenJDK]
| Java programming language compiler and libraries
| GNU GPL v2.0
|-
|-
| [https://www.opengl.org OpenGL]
| [https://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
|-
| [http://www.portaudio.com/ PortAudio]
| Audio I/O library
| Free software -- specific
|-
|-
| [http://www.qhull.org Qhull]
| [http://www.qhull.org Qhull]
Line 184: Line 203:
| QR factorization updating library
| QR factorization updating library
| GNU GPL v3.0
| GNU GPL v3.0
|-
| [https://riverbankcomputing.com/software/qscintilla QScintilla]
| Source code highlighter and manipulator; a Qt port of Scintilla
| GNU GPL v3.0
|-
| [https://www.qt.io/ Qt]
| Widget toolkit for creating graphical user interfaces
| GNU LGPL v3.0
|-
| [https://rapidjson.org/ RapidJSON]
| A fast JSON parser/generator for C++ with both SAX/DOM style API
| MIT license
|-
|-
| [http://faculty.cse.tamu.edu/davis/suitesparse.html SuiteSparse]
| [http://faculty.cse.tamu.edu/davis/suitesparse.html SuiteSparse]
| Sparse matrix factorization library
| Sparse matrix factorization library
| Main author
| Main author
|-
| [https://computing.llnl.gov/projects/sundials/ida SUNDIALS IDA]
| SUite of Nonlinear and DIfferential/ALgebraic equation Solvers - Initial value problems for Differential-Algebraic equation (DAE) systems
| BSD 3-Clause
|-
|-
| [https://zlib.net zlib]
| [https://zlib.net zlib]

Navigation menu