Latest revision |
Your text |
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 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>:
| | Based on the [http://mxe.cc/ MXE] project there is an [http://hg.octave.org/mxe-octave MXE-Octave] fork available to allow cross compiling Octave to various target systems. |
|
| |
|
| # Cross-compilation for MS Windows (see also [[Windows Installer]]) and other platforms.
| | === Examples of compiling Octave for different 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 '''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.}}
| | * '''Compiling for Windows''' |
| | # There is some further information for using mxe-octave to build an Windows installer here: [[Windows_Installer]]. |
|
| |
|
| === Example of compiling MXE-Octave ===
| |
|
| |
|
| ==== Preparation ==== | | * '''Compiling for your Linux system''' |
| | # Download [http://hg.octave.org/mxe-octave MXE-Octave] as a compressed file. |
| | # Unpack it in ~ or somewhere suitable. |
| | # 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 |
| | # Octave will exist in ~/mxe-octave-123456789/usr/bin |
| | # Add to your .bashrc file: alias octave=~/mxe-octave-123456789/usr/bin/octave |
|
| |
|
| # [[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 ====
| | * '''Compiling for a different Linux system''' |
| | # ... |
|
| |
|
| 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">
| | === Packaging for distribution === |
| ./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
| |
|
| |
| ==== 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 ===
| |
|
| |
| <references/>
| |
|
| |
|
| [[Category:Building]] | | [[Category:Building]] |