Changes

Jump to navigation Jump to search
1,122 bytes added ,  18:53, 13 October 2019
→‎Step 1: Prepare mxe-octave: Update and describe the configure options more verbose.
Line 29: Line 29:     
====Step 1: Prepare mxe-octave====
 
====Step 1: Prepare mxe-octave====
Clone the mxe-octave repo to some directory of your choice:
+
 
  http://hg.octave.org/mxe-octave <name of mxe-octave build dir>
+
Clone the mxe-octave repository to some directory of your choice:
where <name of mxe-octave build dir> is some other name than just the default "mxe-octave".  
+
 
Once downloaded, go into the <name of mxe-octave build dir> subdir and do:
+
  hg clone https://hg.octave.org/mxe-octave <name of mxe-octave build dir>
 +
 
 +
where <code><name of mxe-octave build dir></code> is some other name than just the default "mxe-octave".  
 +
Once downloaded, go into the <code><name of mxe-octave build dir></code> subdirectory and do:
 +
 
 
  ./bootstrap
 
  ./bootstrap
./configure <options you want>
+
 
 +
{| class="wikitable"
 +
! "w64" (recommended)
 +
! "w64-64"
 +
! "w32"
 +
|-style="vertical-align:top;"
 +
| <pre style="min-width:330px;">
 +
./configure                        \
 +
  --enable-devel-tools            \
 +
  --enable-binary-packages        \
 +
  --with-ccache                    \
 +
  --enable-octave=<octave version> \
 +
  --enable-windows-64              \
 +
  --enable-64
 +
</pre>
 +
| <pre style="min-width:330px;">
 +
./configure                       \
 +
  --enable-devel-tools            \
 +
  --enable-binary-packages        \
 +
  --with-ccache                    \
 +
  --enable-octave=<octave version> \
 +
  --enable-windows-64              \
 +
  --enable-64                      \
 +
  --enable-fortran-int64
 +
</pre>
 +
| <pre style="min-width:330px;">
 +
./configure                        \
 +
  --enable-devel-tools            \
 +
  --enable-binary-packages        \
 +
  --with-ccache                    \
 +
  --enable-octave=<octave version> \
 +
  --disable-windows-64
 +
</pre>
 +
|}
 +
 
 +
The individual options have the following meaning (see also <code>./configure --help</code>):
 +
 
 +
* <code>--enable-devel-tools</code>: Include gdb and an MSYS shell in the binary.
 +
* <code>--enable-binary-packages</code>: Cross-compile binary modules in [[Octave Forge]] packages. This saves time when installing them once the installation runs on Microsoft Windows.
 +
* <code>--with-ccache</code>: The usage of [https://ccache.dev/ ccache] may speed up repetitive compilation drastically.
 +
* <code>--enable-octave=<octave version></code>: Build a specific version of GNU Octave, which can be one of:
 +
** <code>release</code> use {{Path|src/release-octave.mk}}, download and build the latest GNU Octave release.
 +
** <code>default</code> use {{Path|src/default-octave.mk}}, build a self-created distribution tarball from the "default" development branch.
 +
** <code>stable</code> use {{Path|src/stable-octave.mk}}, build a self-created distribution tarball from the "stable" development branch.
 +
* <code>--enable-windows-64</code>: Build for 64-bit MS Windows.
 +
* <code>--enable-64</code>: Let Octave use 64-bit integers for indexing.
 +
* <code>--enable-fortran-int64</code>: Use 64-bit integers in Fortran code and especially in numerical library code.
 +
 
 
  make all nsis-installer JOBS=<some number>
 
  make all nsis-installer JOBS=<some number>
Your author usually has "--enable-devel-tools --enable-octave=default --enable-binary-packages --enable-ccache" as configure options and use JOBS=7 on my core i5 system.
+
 
For stable branch it is "--enable-devel-tools --enable-octave=stable --enable-binary-packages --enable-64 --enable-fortran-int64 --enable-ccache" or "--enable-devel-tools --enable-octave=stable --enable-binary-packages --enable-windows64 --enable-ccache"
+
Your author usually uses <code>JOBS=7</code>.
* The first configure option also includes gdb and an MSYS shell in the binary.
+
 
* The second avoids the ~700 MB max. array size limit for 32-bit executables but Octave will only run on 64-bit Windows (most Windows systems are 64 bit anyway these days). Note: this option does NOT imply 64-bit indexing.
  −
* The third option is just for a placeholder; it'll invoke src/default-octave.mk (one of the three octave .mk files in mxe: src/stable-octave.mk and src/octave.mk, corresponding to the "--enable-octave=" configure option), I found that octave.mk lags a bit behind
  −
* the fourth option cross-compiles the binary modules in Octave-Forge packages, which will save time when installing them once in Windows.
   
If you seriously want to work with gdb, also have --disable-strip-dist-files as configure option. However, in that case chances are that you cannot build an .exe installer anymore as it becomes too big for NSIS (that has a 2 GB installer file size limit) so instead of "make nsis-installer" you'll need to invoke  
 
If you seriously want to work with gdb, also have --disable-strip-dist-files as configure option. However, in that case chances are that you cannot build an .exe installer anymore as it becomes too big for NSIS (that has a 2 GB installer file size limit) so instead of "make nsis-installer" you'll need to invoke  
 
  make zip-dist <options>
 
  make zip-dist <options>

Navigation menu