Building on Cygwin platform
Octave can be built on cygwin too !
Pre-requisites
Setup your system the same way as described on the page Octave for Debian systems. The next step, required to generate the documentation, is to tweak a bit the texlive configuration file: (remember cygwin as no sudo command)
vi /usr/share/texmf-dist/web2c
Change
TEXMFLOCAL = $TEXMFROOT/texmf-site
into
TEXMFLOCAL = $TEXMFROOT/texmf-site:$TEXMFROOT/texmf
Then run
mktexlsr
Configure
Proceed the same way as on a Unix platform. In this case, the procedure requires a kind of bootstrapping, so it is better to put Octave outside the main directory tree; like f.i.
./bootstrap mkdir compile; cd compile ../configure --prefix=${HOME}/usr
This configuration supposes ${HOME}/usr/bin exists and is in your $PATH.
Build
The procedure is a bit more tricky. Start the build as usual:
make -j 2
It will fail after a looong time, while trying to launch ./run-octave. This is a well-known issue, partly caused by issues with the fork() call under Windows platforms. At this time, change run-octave to something simpler:
#! /bin/sh octave_executable="${PREFIX}/usr/bin/octave" "$octave_executable" "$@"
Where ${PREFIX} matches the form previously used during the configure stage. In fact, we will use the new Octave, which is not yet operationnal. But never mind. Restart the process as follows:
make install
This way:
- the Octave libs and binaries are generated, they will be copied into their destination directory
- the doc has still to be built. With the modified "run-octave", the executable which will be called is the version just installed during the previous step. Now the doc generation will succeed, and so will its installation.
Enjoy!
Before building Octave from scratch on a Mac OS X platform you need to install several GNU programs and libraries that are not shipped with your Mac. This descriptio111n will guide you through the procedure of GNUifying your Mac OS X step by step, so that you are then be able to configure, compile, install and run the Octave program.