MXE: Difference between revisions

Jump to navigation Jump to search
1,367 bytes added ,  10 August 2019
Updating config options according to https://octave.1599824.n4.nabble.com/mxe-octave-status-td4685260.html.
(Updating config options according to https://octave.1599824.n4.nabble.com/mxe-octave-status-td4685260.html.)
 
(6 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 [[Windows_Installer]]) and other platforms.
# 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 8: Line 8:


=== Example of compiling MXE-Octave ===
=== Example of compiling MXE-Octave ===
==== Preparation ====


# [[Windows_Installer#Installing_requirements_of_MXE_Octave|Install all requirements of MXE Octave]].
# [[Windows_Installer#Installing_requirements_of_MXE_Octave|Install all requirements of MXE Octave]].
# <code>hg clone https://hg.octave.org/mxe-octave/</code>
# 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>cd mxe-octave</code>
# <code>./bootstrap</code>
# <code>./bootstrap</code>
# <code>./configure --enable-64 --enable-native-build --enable-pic-flag host_alias=gnu-linux --enable-openblas --enable-jit</code>
 
# <code>make all openblas</code>
==== Configuration ====
 
For a comprehensive list of configuration options with a short explanation, type <code>./configure --help</code>.  See also the [[#Known issues|known issues]] below.
 
<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>cd ~/mxe-octave/usr/lib</code>
# <code>mv libblas.so libblas.so.reference</code>
# <code>mv libblas.so libblas.so.reference</code>
# <code>ln -s libopenblas.so libblas.so</code>
# <code>ln -s libopenblas.so libblas.so</code>
==== Run ====
# MXE-Octave will exist in {{path|~/mxe-octave/usr/bin}}
# MXE-Octave will exist in {{path|~/mxe-octave/usr/bin}}
# Add to your {{path|.bashrc}} file: <code>alias octave=~/mxe-octave-123456789/usr/bin/octave</code>
# 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>.


=== Note for gnuplot ===
=== Known issues ===


The gnuplot built by mxe-octave does not support cairo based terminals and lua/tikz terminals.
==== gnuplot ====
If you want uses those feature, prepare gnuplot with those features and points its location setting to
 
"gnuplot_binary" like
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.




Navigation menu