Editing Windows Installer
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 7: | Line 7: | ||
===General steps=== | ===General steps=== | ||
# Install the MXE build requirements.<ref>The requirements for each system are listed in the repository https://hg.octave.org/mxe-octave/file/tip/index.html. Start with the second step to read the {{Path|index.html}} file on your local machine.</ref> | # Install the MXE build requirements.<ref>The requirements for each system are listed in the repository https://hg.octave.org/mxe-octave/file/tip/index.html. Start with the second step to read the {{Path|index.html}} file on your local machine.</ref> | ||
# <code>hg clone https://hg.octave.org/mxe-octave</code><ref>Use <code>hg clone https://hg.octave.org/mxe-octave <name of mxe-octave build dir></code> to choose another directory.</ref> | # <code>hg clone https://hg.octave.org/mxe-octave</code><ref>Use <code>hg clone https://hg.octave.org/mxe-octave <name of mxe-octave build dir></code> to choose another directory.</ref> | ||
# <code>cd mxe-octave</code> | # <code>cd mxe-octave</code> | ||
# <code>./bootstrap</code> ( | # <code>./bootstrap</code> (this step created the executable script <code>./configure</code>) | ||
# <code>./configure</code> | # <code>./configure</code> | ||
# <code>make all nsis-installer</code> | # <code>make all nsis-installer</code> | ||
Line 68: | Line 68: | ||
* Use <code>make all 7z-dist</code>, <code>make all tar-dist</code> or <code>make all zip-dist</code> instead of <code>make all nsis-installer</code> if you want to build just an archive of the files to install on MS Windows instead of an installer wizard. | * Use <code>make all 7z-dist</code>, <code>make all tar-dist</code> or <code>make all zip-dist</code> instead of <code>make all nsis-installer</code> if you want to build just an archive of the files to install on MS Windows instead of an installer wizard. | ||
* By default, packages will be built one at a time | * By default, packages will be built one at a time, but you may use <code>make JOBS=4</code> (choose a number other than 4 that is appropriate for your system) to build each package in parallel. You may also combine this with the <code>-j</code> option for Make to build more than one package at a time, but be careful as using <code>make -j4 JOBS=4</code> can result in as many as 16 jobs running at once. | ||
* Include gdb in the installer by running <code>make gdb</code> before making the <code>nsis-installer</code> target. | * Include gdb in the installer by running <code>make gdb</code> before making the <code>nsis-installer</code> target. | ||
===Build installers for Octave development versions=== | ===Build installers for Octave development versions=== | ||
# Build the "stable" or "default" Octave development branch on Linux (in separate source and build trees) including your favorite modifications and patches. Octave must be configured with Java support. How to do this depends on your Linux distribution, see [[ | # Build the "stable" or "default" Octave development branch on Linux (in separate source and build trees) including your favorite modifications and patches. Octave must be configured with Java support. How to do this depends on your Linux distribution, see [[Octave for GNU/Linux]]. | ||
# Verify that Octave runs fine in Linux (for example using <code>make check</code> and by trying to run your build <code>./run-octave --gui</code>). | # Verify that Octave runs fine in Linux (for example using <code>make check</code> and by trying to run your build <code>./run-octave --gui</code>). | ||
# Create a distribution archive called '''"octave-<version>.tar.lz"''' in the top build directory with <code>make dist-lzip DIST_IGNORE_HG_STATE=1</code> | # Create a distribution archive called '''"octave-<version>.tar.lz"''' in the top build directory with <code>make dist-lzip DIST_IGNORE_HG_STATE=1</code>. | ||
# Move or copy '''"octave-<version>.tar.lz"''' to the {{Path|<mxe-octave build>/pkg}} folder (or create a symbolic link to it). | # Move or copy '''"octave-<version>.tar.lz"''' to the {{Path|<mxe-octave build>/pkg}} folder (or create a symbolic link to it). | ||
# Follow the [[#General steps|general steps]] and ensure the configuration with either of <code>--enable-octave=stable</code> or <code>--enable-octave=default</code>. | # Follow the [[#General steps|general steps]] and ensure the configuration with either of <code>--enable-octave=stable</code> or <code>--enable-octave=default</code>. | ||
Line 89: | Line 89: | ||
===Remarks=== | ===Remarks=== | ||
* If you have several | * If you have several mxe-octave build dirs (for e.g., stable and several development versions) it is handy to have a separate {{Path|pkg}} subdirectory where all mxe-octave build directories link to via an symbolic link, for example. That saves a lot of downloading bandwidth. | ||
* As of late December 2015, [https://hg.octave.org/mxe-octave/rev/0962acdde3be | * As of late December 2015, [https://hg.octave.org/mxe-octave/rev/0962acdde3be mxe-octave allows out-of-tree builds]. This makes it easier to build separate Octave versions with the same mxe-octave tree. | ||
* To keep | * To keep mxe-octave up-to-date, from time to time do: | ||
hg -v pull | hg -v pull | ||
hg -v update | hg -v update | ||
* However, | * However, do not keep mxe-octave build dirs for too long. I'd suggest to wipe a build dir after at most two or three months and start over with a fresh clone, see [#General steps|general steps]. | ||
* In the mean time, | * In the mean time, regularly clean up {{Path|<mxe-octave build>/log}} to save disk space. After a first successful build there is no more use for the log subdirectories for each package. One can safely wipe them all. | ||
* It can happen that you meet problems with Java. To build Octave with Java support built-in, | * 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 ''' | ** A Java JDK (Java Development Kit) on the '''host''' system. In other words, the javac (Java compiler) and jar (Java archiver) executables should be in the PATH-system-variable. | ||
** Java include files for MS Windows. They should reside in {{Path|<mxe-octave build dir>/usr/x86_64-w64-mingw32/include/java/win32}} | ** Java include files for MS Windows ("w32", even for "w64" builds). They should reside in {{Path|<mxe-octave build dir>/usr/x86_64-w64-mingw32/include/java/win32}}. If they are not present, mxe-octave downloads them automatically, but this can occasionally go wrong. On a multi-boot system a solution (note: dirty hack warning!) is symlinking to the MS Windows include files on the MS Windows partition from the mxe-octave location. | ||
===Troubleshooting=== | ===Troubleshooting=== | ||
Line 124: | Line 124: | ||
Hints: | Hints: | ||
* | * When adapting {{Path|mxe-octave/binary-dist-rules.mk}} to have a consistent name for the {{Path|<mxe-octave build dir>/dist/octave}} subdirectory (i.e., without time/date/bitwidth suffixes) so that in MS Windows the shortcut doesn't need adaptation after each cross-build action. Maybe it is better if {{Path|mxe-octave/binary-dist-rules.mk}} has a rule to create a symlink {{Path|<mxe-octave build dir>/dist/octave}} pointing to the latest cross-build. | ||
* The image expires after | * The image expires after 90 days. But if you make a VirtualBox snapshot it will last longer, and you don't need to uninstall Octave each time before installing a new build. | ||
==Footnotes== | ==Footnotes== |