Windows Installer: Difference between revisions

Jump to navigation Jump to search
1,122 bytes added ,  14 October 2019
→‎Step 1: Prepare mxe-octave: Update and describe the configure options more verbose.
(Overhaul and shorten introduction. Point out, that you cannot build octave-mxe on MS Windows per se.)
(→‎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