Jump to navigation Jump to search


1,498 bytes added, 9 August
Updating config options according to
Based on [ MXE-Octave] was forked 2012 from the [http MXEproject] project there and is an useful for building Octave in the following scenarios<ref>[http /file/6836b2f08479/README MXE-OctaveREADME] text by [[User:jwe|jwe]] fork available to allow cross compiling Octave to various target systems.</ref>:
=== Examples of compiling Octave # Cross-compilation for different 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.
* {{Warning|MXE-Octave is '''Compiling for Windowsnot'''# There is some further information the best choice for using mxe-octave to building Octave, if your system already provides recent versions of GCC and other required build an Windows installer here: dependencies. See [[Windows_Installer:Category:Installation]]for other install options.}}
=== Example of compiling MXE-Octave ===
* '''Compiling for your Linux system'''# Download [ MXE-Octave] as a compressed file.# Unpack it in ~ or somewhere suitable.# Check you have all the [ requirements] and gfortan installed.# cd into the directory (called ~/mxe-octave-123456789 or similiar).# Type: autoconf# Type: ./configure --enable-64 --enable-native-build --enable-pic-flag host_alias=gnu-linux --enable-openblas --enable-jit# Type: make# Type: make openblas# cd usr/lib# mv ln -s Octave will exist in ~/mxe-octave-123456789/usr/bin# Add to your .bashrc file: alias octave=~/mxe-octave-123456789/usr/bin/octave== Preparation ====
It's that easy# [[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 mxe-octave</code># <code>cd mxe-octave</code># <code>./bootstrap</code>
* '''Compiling for your Ubuntu Desktop x64 Linux (tested for 14.xx)'''# In Ubuntu Desktop Linux 14.10 the above receipt fails during building BLAS library ... # I have found a working solution how to build Octave 3.8.2 with ---enable-64 in Ubuntu Desktop Linux - see: # BLOG: GitHub: Configuration ====
* '''Compiling for For a different Linux system'''# 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= Packaging for distribution ===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 [ OpenBLAS] library results in faster matrix-vector operations compared to the reference BLAS library.
# <code>cd ~/mxe-octave/usr/lib</code>
# <code>mv</code>
# <code>ln -s</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
==== 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.
=== References ===

Navigation menu