Editing Building

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
:''This article provides general information about '''building GNU Octave''' from source (on Unix-like systems).''
: '' This article provides general information about building GNU Octave from source. If you just want to install Octave, see [[:Category:Installation]].''
 
:*''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 9: Line 5:
# Install all [[#Dependencies|build dependencies]] (see below).
# Install all [[#Dependencies|build dependencies]] (see below).
# Getting the Octave sources ...
# Getting the Octave sources ...
::(A) ... from the development repository (requires also [https://www.mercurial-scm.org/ Mercurial])
#* ... 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 15: Line 11:
  ./bootstrap
  ./bootstrap
</div>
</div>
::(B) ... from a release
::* ... 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 33: Line 29:
== Dependencies ==
== Dependencies ==


Most of the dependencies given in this section can be very conveniently installed on many [[Octave for GNU/Linux|GNU/Linux]] systems.
Most of the dependencies given in this section can be very conveniently installed on many [[Octave for GNU/Linux|GNU/Linux]] systems. For a quick way to install the required dependencies, see:
 
{{Note|For a quick way to install the required dependencies, see:
* [[Octave for Debian systems#The right way|Debian / Ubuntu]]
* [[Octave for Debian systems#The right way|Debian / Ubuntu]]
* [[Octave for Arch Linux|Arch Linux]]
* [[Octave for Arch Linux|Arch Linux]]
* [[Octave for Red Hat Linux systems|Fedora / RedHat / CentOS]]}}
* [[Octave for Red Hat Linux systems|Fedora / RedHat / CentOS]]
 
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.


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 163: Line 159:
| 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 176: Line 168:
| Provided "as is" -- various authors
| Provided "as is" -- various authors
|-
|-
| Magick++, e.g. [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
Line 183: Line 175:
| 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 203: Line 187:
| 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]
Please note that all contributions to Octave may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Octave:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Templates used on this page: