1,847
edits
(Overhaul head section.) |
|||
(13 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
: '' This article provides general information about building GNU Octave from source.'' | :''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 | #* ... 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 21: | Line 25: | ||
mkdir .build && \ | mkdir .build && \ | ||
cd .build && \ | cd .build && \ | ||
./../configure --prefix=$HOME/my_octave && \ <ref><code>--prefix</code> determines the installation location | ./../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 | Most of the dependencies given in this section can be very conveniently installed on many [[Octave for GNU/Linux|GNU/Linux]] 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 202: | Line 209: | ||
In order to start the custom build of Octave almost as convenient as the Linux distribution installation of Octave, one can create an alias within {{Path|.bashrc}}: | In order to start the custom build of Octave almost as convenient as the Linux distribution installation of Octave, one can create an alias within {{Path|.bashrc}}: | ||
echo "alias | echo "alias myoctave='$HOME/my_octave/bin/octave'" >> ~/.bashrc | ||
Then update your {{Path|.bashrc}} without doing logout and login: | |||
source $HOME/.bashrc | |||
If you simply enter <code>octave</code>, you'll start your Linux distribution installation of Octave. But when you enter <code>myoctave</code>, you'll start your custom build of Octave inside your home directory. | |||
=== Uninstall === | === Uninstall === | ||
Line 249: | Line 223: | ||
In any case, don't forget to remove any created ''alias'' entries in {{Path|~/.bashrc}}. | In any case, don't forget to remove any created ''alias'' entries in {{Path|~/.bashrc}}. | ||
=== Large array support === | |||
: ''Main article: [[Enable large arrays: Build octave such that it can use arrays larger than 2Gb.]]'' | |||
== See also == | == See also == | ||
Line 254: | Line 232: | ||
* [https://hg.savannah.gnu.org/hgweb/octave/file/tip/README <code>README</code>] and [https://hg.savannah.gnu.org/hgweb/octave/file/tip/etc/HACKING.md <code>/etc/HACKING.md</code>] in the development repository. | * [https://hg.savannah.gnu.org/hgweb/octave/file/tip/README <code>README</code>] and [https://hg.savannah.gnu.org/hgweb/octave/file/tip/etc/HACKING.md <code>/etc/HACKING.md</code>] in the development repository. | ||
* https://octave.org/doc/interpreter/Installation.html | * https://octave.org/doc/interpreter/Installation.html | ||
* [[MXE]] -- a more customized Octave build including many self-compiled tools. | |||
== Footnotes == | == Footnotes == |