Windows Installer: Difference between revisions

Jump to navigation Jump to search
23 bytes removed ,  12 December 2015
Line 21: Line 21:


===Creating Octave development versions for Windows with mxe-octave===
===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:
To roll your own octave for windows version with your favorite mods and patches, you can do as follows:


# Make the cross-build environment for Octave (=mxe-octave; see above)
# Make the cross-build environment for Octave (=mxe-octave; see above)
Line 36: Line 36:
  ./configure <options you want>
  ./configure <options you want>
  make nsis-installer JOBS=<some number>
  make nsis-installer JOBS=<some number>
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.
Your author usually has "--enable-devel-tools --enable-windows-64 --enable-octave=default --enable-binary-packages" as configure options and use JOBS=7 on my core i5 system.
* the first configure option also includes gdb and an MSYS shell in the binary
* 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 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
Line 47: Line 47:
It can happen that you meet problems with Java. To build Octave with Java support built-in, mxe-octave needs:
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.
* 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.
* 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. On a multi-boot system a solution (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:====
====Step 2: To build your first Octave-for Windows development version:====
Line 93: Line 93:
* 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.
* 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.
* 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.
* (philip) On my core i5 desktop system with a fast SSD, mxe-octave builds usually fails at libmng, suspectedly because of a race condition related to disk I/O. A way to get past this is 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 restarting with "make nsis-installer JOBS=<higher number>". As of Dec. 2015 it is only libmng that has this issue.


==Installing requirements of MXE Octave==
==Installing requirements of MXE Octave==
Anonymous user

Navigation menu