99
edits
No edit summary |
(→Tweaks) |
||
Line 19: | Line 19: | ||
* Use <code>./configure --disable-strip-dist-files</code> if you want to keep debug symbols in the installed binaries for debugging on Windows. | * Use <code>./configure --disable-strip-dist-files</code> if you want to keep debug symbols in the installed binaries for debugging on Windows. | ||
* 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. | ||
===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 as I have been doing (since over 2 years): | |||
# Make the cross-build environment for Octave (=mxe-octave; see above) | |||
# Build an Octave dist archive in Linux | |||
# Move that into mxe-octave and cross-build Octave + windows installer. | |||
For ensuing builds after a first build, you'll only need to follow steps 2 + a little amended step 3 (see below) | |||
====Step 1: Prepare mxe-octave==== | |||
Clone the mxe-octave reop to some directory of your choice: | |||
http://hg/octave.org/mxe-octave <name of mxe-octave build dir> | |||
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: | |||
.autoconf | |||
./configure <options you want> | |||
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. | |||
* 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 wil 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 | |||
make zip-dist <options> | |||
....and this results in all Octave dependencies being built in mxe-octave, plus some initial version of Octave itself. | |||
====Step 2: To build your first Octave-for Windows development version:==== | |||
* build Octave on Linux (in separate source and build trees) including your favorite mods and patches. | |||
* once Octave runs fine in Linux (using make check and trying your mods using ./run-octave & from the build dir, all of this still on the Linux side), do: | |||
make all dist | |||
* move or copy the resulting dist archive to the <mxe-octave build>/pkg folder (or symlink to it from there) | |||
==== Step 3: Building the Octave installer==== | |||
* be sure to adapt <mxe-octave build>/src/default-octave.mk to read "## No Checksum" at the $(PKG)_CHECKSUM line and check octave version and archive type (tar.gz rather than tar.bz2). The checksum is only needed when you download a dist archive from the Internet, not so much when you copy it within your own home network, let alone your own computer. | |||
* check if in the top of the main Makefile "default-octave" is mentioned for OCTAVE_TARGET rather than stable-octave" of just "octave" (that name refers to the .mk filename in the src folder). | |||
* ... and then run (in the <mxe-octave build> folder) | |||
make nsis-installer <options> | |||
-or- | |||
make zip-dist <options> | |||
====Step 3A (second and later builds)==== | |||
For next builds, mxe-octave is already configured and all dependencies have been built so the only thing to do is having a new Octave version + installer built: | |||
* move/copy the dist archive from step 2 into mxe-octave's pkg subdir | |||
* in <mxe-octave build> root dir do: | |||
touch src/default-octave.mk | |||
(to be sure mxe-octave picks up the new Octave archive). If you've renamed the dist archive, be sure it matches with the package name in src/default-octave.mk. | |||
Then do: | |||
make nsis-installer | |||
-or- | |||
make zip-dist | |||
====Step 4: Install on Windows==== | |||
* move the installer in <mxe-octave build>/dist/ to the Windows side (USB thumb drive, LAN copy, whatever). | |||
* install it there. | |||
If you've made a zip-dist you'll have to manually create the desktop and Start Menu shortcuts (for octave and the MSYS-shell). | |||
====Remarks==== | |||
* If you have several mxe-octavebuild dirs (for e.g., stable and several development versions) it is handy to have a separate pkg subdir symlinked to from all mxe-octave build dirs. That will save a lot of downloading bandwidth. | |||
* To keep mxe-octave up-to-date, from time to time do: | |||
hg -v pull | |||
hg -v update | |||
* 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 a la Step 1. | |||
* In the mean time, regularly clean up <mxe-octave build>/log to save disk space. After a first successful build there's no more use for the log subdirs for each package, so you can wipe them all. | |||
==Installing requirements of MXE Octave== | ==Installing requirements of MXE Octave== |
edits