219
edits
(→General steps: re-phrase comment) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 76: | Line 76: | ||
# 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 [[Building]]. | # 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 [[Building]]. | ||
# 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>. <code>lzip</code> needs to be available for this step. (On Debian-like systems, it can be installed with <code>apt-get install lzip</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, or build trees for 32bit and 64bit Windows targets), it is possible to point to a common {{Path|pkg}} directory using the configure flag <code>--with-pkg-dir=path_to_common_pkg_directory</code>. That way downloading the packages for each build tree can be avoided. Thus, potentially saving 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 run the following commands in the MXE-Octave repository: | ||
hg -v pull | hg -v pull | ||
hg -v update | hg -v update | ||
* However, | * However, some package updates might need a clean build tree. If an incremental build fails after an update, consider running <code>make clean</code> or starting with a fresh clone, see [[#General steps|General steps]]. | ||
* In the mean time, regularly clean up {{Path|<mxe-octave build>/log}} to save disk space. | * In the mean time, you might want to regularly clean up {{Path|<mxe-octave build dir>/log}} to save disk space. The logs are of informational value only and are not needed after the build completes. They can safely be deleted. | ||
* 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 '''build''' 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 | ** Java include files for MS Windows. They should reside in {{Path|<mxe-octave build dir>/usr/x86_64-w64-mingw32/include/java/win32}} or {{Path|<mxe-octave build dir>/usr/i686-w64-mingw32/include/java/win32}}, respectively. If they are not present, MXE-Octave downloads them automatically. However, this might fail occasionally (e.g. if the server cannot be reached). 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. (Don't do this unless you are sure what you are doing.) | ||
===Troubleshooting=== | ===Troubleshooting=== | ||
Line 124: | Line 124: | ||
Hints: | Hints: | ||
* | * It is possible to adapt {{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). This way, in MS Windows the shortcut doesn't need adaptation after each cross-build action. Maybe it would be better if {{Path|mxe-octave/binary-dist-rules.mk}} had 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 30 days. But if you make a VirtualBox snapshot before starting the VM the first time, you can revert to that snapshot (essentially, the image will last longer). This way, you also won't need to uninstall Octave each time before installing a new build. | ||
==Footnotes== | ==Footnotes== |
edits