MXE: Difference between revisions
(Link Category:Installation for other installation options.) |
(Updating config options according to https://octave.1599824.n4.nabble.com/mxe-octave-status-td4685260.html.) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[https://hg.octave.org/mxe-octave MXE-Octave] was forked 2012 from the [https://mxe.cc/ MXE project] and is useful in the following scenarios<ref>[https://hg.octave.org/mxe-octave/file/6836b2f08479/README MXE-Octave README] text by [[User:jwe|jwe]].</ref>: | [https://hg.octave.org/mxe-octave MXE-Octave] was forked 2012 from the [https://mxe.cc/ MXE project] and is useful for building Octave in the following scenarios<ref>[https://hg.octave.org/mxe-octave/file/6836b2f08479/README MXE-Octave README] text by [[User:jwe|jwe]].</ref>: | ||
# Cross-compilation for MS Windows (see also [[ | # Cross-compilation for MS Windows (see also [[Windows Installer]]) and other platforms. | ||
# Building Octave on outdated Linux systems (e.g. only an old GCC version is available). | # Building Octave on outdated Linux systems (e.g. only an old GCC version is available). | ||
# Building Octave without root permission. | # Building Octave without root permission. | ||
Line 7: | Line 7: | ||
{{Warning|MXE-Octave is '''not''' the best choice for building Octave, if your system already provides recent versions of GCC and other required build dependencies. See [[:Category:Installation]] for other install options.}} | {{Warning|MXE-Octave is '''not''' the best choice for building Octave, if your system already provides recent versions of GCC and other required build dependencies. See [[:Category:Installation]] for other install options.}} | ||
=== | === Example of compiling MXE-Octave === | ||
==== Preparation ==== | |||
# [[Windows_Installer#Installing_requirements_of_MXE_Octave|Install all requirements of MXE Octave]]. | |||
# Decide for an installation directory (e.g. {{path|~/mxe-octave}}). | |||
# <code>cd ~</code> | |||
# <code>hg clone https://hg.octave.org/mxe-octave mxe-octave</code> | |||
# <code>cd mxe-octave</code> | |||
# <code>./bootstrap</code> | |||
=== | ==== Configuration ==== | ||
The gnuplot built by | For a comprehensive list of configuration options with a short explanation, type <code>./configure --help</code>. See also the [[#Known issues|known issues]] below. | ||
If you want uses those | |||
<syntaxhighlight lang="text"> | |||
./configure \ | |||
--prefix=$HOME/mxe-octave \ | |||
--enable-native-build \ | |||
--enable-octave=release \ | |||
--enable-64 \ | |||
--enable-binary-packages \ | |||
--enable-devel-tools \ | |||
--enable-fortran-int64 \ | |||
--enable-lib64-directory \ | |||
--enable-openblas \ | |||
--enable-pic-flag \ | |||
--disable-system-fontconfig \ | |||
--disable-system-gcc \ | |||
--disable-system-opengl \ | |||
--disable-system-x11-libs \ | |||
--with-ccache \ | |||
gnu-linux | |||
</syntaxhighlight> | |||
==== Build ==== | |||
<code>make -j3 JOBS=2 all openblas</code> Adapt the values of the variables <code>-j</code> (parallel package builds) and <code>JOBS</code> (parallel build jobs) to your needs. | |||
==== Replace reference BLAS by OpenBLAS ==== | |||
In general using the [https://www.openblas.net/ OpenBLAS] library results in faster matrix-vector operations compared to the reference BLAS library. | |||
# <code>cd ~/mxe-octave/usr/lib</code> | |||
# <code>mv libblas.so libblas.so.reference</code> | |||
# <code>ln -s libopenblas.so libblas.so</code> | |||
==== Run ==== | |||
# MXE-Octave will exist in {{path|~/mxe-octave/usr/bin}} | |||
# Add the command <code>octave</code> as alias to your {{path|.bashrc}} file: <code>alias octave=~/mxe-octave/usr/bin/octave</code> | |||
# Start MXE-Octave by typing <code>octave</code>. | |||
=== Known issues === | |||
==== gnuplot ==== | |||
The gnuplot built by MXE-Octave does not support cairo based terminals and lua/tikz terminals. | |||
If you want uses those features, prepare gnuplot with those features and type in the Octave command prompt | |||
>> gnuplot_binary /usr/bin/gnuplot | >> gnuplot_binary /usr/bin/gnuplot | ||
==== Build errors on older systems ==== | |||
On some older systems, it might be useful to consider adding the configuration options | |||
* <code>--disable-docs</code> | |||
* <code>--disable-java</code> | |||
in case of building errors. | |||
Latest revision as of 06:39, 10 August 2019
MXE-Octave was forked 2012 from the MXE project and is useful for building Octave in the following scenarios[1]:
- Cross-compilation for MS Windows (see also Windows Installer) and other platforms.
- Building Octave on outdated Linux systems (e.g. only an old GCC version is available).
- Building Octave without root permission.
Example of compiling MXE-Octave[edit]
Preparation[edit]
- Install all requirements of MXE Octave.
- Decide for an installation directory (e.g. ~/mxe-octave).
cd ~
hg clone https://hg.octave.org/mxe-octave mxe-octave
cd mxe-octave
./bootstrap
Configuration[edit]
For a comprehensive list of configuration options with a short explanation, type ./configure --help
. See also the known issues below.
./configure \
--prefix=$HOME/mxe-octave \
--enable-native-build \
--enable-octave=release \
--enable-64 \
--enable-binary-packages \
--enable-devel-tools \
--enable-fortran-int64 \
--enable-lib64-directory \
--enable-openblas \
--enable-pic-flag \
--disable-system-fontconfig \
--disable-system-gcc \
--disable-system-opengl \
--disable-system-x11-libs \
--with-ccache \
gnu-linux
Build[edit]
make -j3 JOBS=2 all openblas
Adapt the values of the variables -j
(parallel package builds) and JOBS
(parallel build jobs) to your needs.
Replace reference BLAS by OpenBLAS[edit]
In general using the OpenBLAS library results in faster matrix-vector operations compared to the reference BLAS library.
cd ~/mxe-octave/usr/lib
mv libblas.so libblas.so.reference
ln -s libopenblas.so libblas.so
Run[edit]
- MXE-Octave will exist in ~/mxe-octave/usr/bin
- Add the command
octave
as alias to your .bashrc file:alias octave=~/mxe-octave/usr/bin/octave
- Start MXE-Octave by typing
octave
.
Known issues[edit]
gnuplot[edit]
The gnuplot built by MXE-Octave does not support cairo based terminals and lua/tikz terminals. If you want uses those features, prepare gnuplot with those features and type in the Octave command prompt
>> gnuplot_binary /usr/bin/gnuplot
Build errors on older systems[edit]
On some older systems, it might be useful to consider adding the configuration options
--disable-docs
--disable-java
in case of building errors.
References[edit]
- ↑ MXE-Octave README text by jwe.