Difference between revisions of "MXE"

From Octave
Jump to navigation Jump to search
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 ====
 +
 
 +
<code>./configure --enable-64 --enable-native-build --enable-pic-flag host_alias=gnu-linux --enable-openblas --enable-jit</code>
 +
 
 +
==== Build ====
 +
 
 +
<code>make all openblas JOBS=4</code> (adapt the value of the variable <code>JOBS</code> 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 ===
 
=== Note for gnuplot ===

Revision as of 01:54, 5 August 2019

MXE-Octave was forked 2012 from the MXE project and is useful in the following scenarios[1]:

  1. Cross-compilation for MS Windows (see also Windows_Installer) and other platforms.
  2. Building Octave on outdated Linux systems (e.g. only an old GCC version is available).
  3. Building Octave without root permission.
Warning icon.svg
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

  1. Install all requirements of MXE Octave.
  2. Decide for an installation directory (e.g. ~/mxe-octave).
  3. cd ~
  4. hg clone https://hg.octave.org/mxe-octave mxe-octave
  5. cd mxe-octave
  6. ./bootstrap

Configuration

./configure --enable-64 --enable-native-build --enable-pic-flag host_alias=gnu-linux --enable-openblas --enable-jit

Build

make all openblas JOBS=4 (adapt the value of the variable JOBS to your needs).

Replace reference BLAS by OpenBLAS

In general using the OpenBLAS library results in faster matrix-vector operations compared to the reference BLAS library.

  1. cd ~/mxe-octave/usr/lib
  2. mv libblas.so libblas.so.reference
  3. ln -s libopenblas.so libblas.so

Run

  1. MXE-Octave will exist in ~/mxe-octave/usr/bin
  2. Add the command octave as alias to your .bashrc file: alias octave=~/mxe-octave/usr/bin/octave
  3. Start MXE-Octave by typing octave.

Note for gnuplot

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

 >> gnuplot_binary /usr/bin/gnuplot


References