Jump to navigation Jump to search
I usually have "--enable-devel-tools --enable-windows-64 --enable-octave=default --enable-binary-packages" as configure options and use JOBS=7 on my core i5 system.
===Creating Octave development versions for Windows with mxe-octave===
To roll your own octave for windows version with your favorite mods and patches, you can do
what Philip Nienhuis does:
# Make the cross-build environment for Octave (=mxe-octave; see above)
./configure <options you want>
make nsis-installer JOBS=<some number>
* 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
It can happen that you meet problems with Java. To build Octave with Java support built-in, mxe-octave needs:
* A Java JDK (Java Development Kit) on the '''host''' system. IOW, the javac (Java compiler) and jar (Java archiver) executables should be in the PATH.
* Java include files for windows (win32, even for w64 builds). They should reside in "<mxe-octave build dir>/usr/x86_64-w64-mingw32/include/java/win32". If not present, mxe-octave downloads them but this can occasionally go wrong.
What I often did on my multi-boot system ( Note: dirty hack warning!) is symlinking to the Windows include files on the Windows partition from the mxe-octave location.
====Step 2: To build your first Octave-for Windows development version:====
* The configuration will be for the target system, not your own. In particular, if you have not installed all of the packages that MXE-octave installs, then your configuration will be different. However, some configuration variables will differ even if you have the same packages, and some compiler features may be available on the host system that are not available in cross-compile mode.
* A possible causes for build failure is having files in your local source or build directory that are not listed in the module.mk files; these are not copied into the dist archive.
* (philip) On my core i5 desktop system with a fast SSD, mxe-octave usually fails
when building libmng, suspectedly because of a race condition related to disk I/O. I found that I can get past this by specifying "make nsis-installer JOBS=1", if required repeatedly (sometimes 5 or 6 times), interrupting the build in the next step/dependency once libmng has been built fine, and restaring with "make nsis-installer JOBS=<higher number>". AFAICS it is only libmng that suffers from this issue.
==Installing requirements of MXE Octave==