Windows Installer
- This article is about how to make the Windows installer; if you'd like just to use the installer, see Octave for Microsoft Windows.
GNU Octave is primarily developed on GNU/Linux and other POSIX conformal systems. There have been many efforts in the past to build ports of GNU Octave for Windows. Take a look at the various ports of Octave available for Windows here.
Recently some work has been done in maintaining a unified build system mxe-octave (a fork of MXE) which anyone can use to produce cross as well as native builds of GNU Octave for Windows and Mac OS X platforms. This page contains instructions about creating a Windows installer using mxe-octave.
Steps to create Windows Installer
- Install all requirements of MXE Octave.
hg clone http://hg.octave.org/mxe-octave/
cd mxe-octave
autoconf
./configure
make nsis-installer
Tweaks
- Use
make tar-dist
ormake zip-dist
instead ofnsis-installer
if you want to build just an archive of the files to install on Windows instead of an installer wizard. - By default, packages will be built one at a time, but you may use
make JOBS=4
(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-j
option for Make to build more than one package at a time, but be careful as usingmake -j4 JOBS=4
can result in as many as 16 jobs running at once. - Use
./configure --disable-strip-dist-files
if you want to keep debug symbols in the installed binaries for debugging on Windows. - Include gdb in the installer by running
make gdb
before making thensis-installer
target.
Installing requirements of MXE Octave
MXE Octave requires a recent Unix system where all components as stated below are installed.
Debian (GNU/kFreeBSD & GNU/Linux)
aptitude install -R autoconf automake bash bison bzip2 \ cmake flex gettext git g++ intltool \ libffi-dev libtool libltdl-dev \ mercurial openssl libssl-dev \ libxml-parser-perl make patch perl \ pkg-config scons sed unzip wget \ xz-utils yasm autopoint zip
On 64-bit Debian, install also:
aptitude install -R g++-multilib libc6-dev-i386
If you are using Ubuntu, then you can do apt-get install foo
instead of aptitude install -R foo
.
On a fesh Linux Mint 16 x86_64, in addition to the above also install:
sudo apt-get install libc6-dev-i386 gcc-multilib libgmp3-dev libmpfr4 libmpfr-dev sudo apt-get build-dep gcc-4.8
If not installed you will get error messages like "/usr/include/stdc-predef.h:30:26: fatal error: bits/predefs.h: No such file or directory" or "/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc" when compiling ocaml-core. The packages libgmp3-dev libmpfr4 libmpfr-dev libmpc-dev are needed for compiling the build-gcc.
Fedora
yum install autoconf automake bash bison bzip2 cmake \ flex gcc-c++ gettext git intltool make sed \ libffi-devel libtool openssl-devel patch perl pkgconfig \ scons yasm unzip wget xz
On 64-bit Fedora, there are open issues with the NSIS package.
FreeBSD
pkg_add -r automake111 autoconf268 bash bison cmake \ flex gettext git gmake gsed intltool libffi libtool \ openssl patch perl p5-XML-Parser pkg-config \ scons unzip wget yasm
Ensure that /usr/local/bin precedes /usr/bin in your $PATH:
For C style shells, edit .cshrc
setenv PATH /usr/local/bin:$PATH
For Bourne shells, edit .profile
export PATH = /usr/local/bin:$PATH
On 64-bit FreeBSD, there are open issues with the NSIS package.
Frugalware
pacman-g2 -S autoconf automake bash bzip2 bison cmake \ flex gcc gettext git intltool make sed libffi libtool \ openssl patch perl perl-xml-parser pkgconfig \ scons unzip wget xz xz-lzma yasm
On 64-bit Frugalware, there are open issues with the NSIS package.
Gentoo
emerge sys-devel/autoconf sys-devel/automake \ app-shells/bash sys-devel/bison app-arch/bzip2 \ dev-util/cmake sys-devel/flex sys-devel/gcc \ sys-devel/gettext dev-vcs/git \ dev-util/intltool sys-devel/make sys-apps/sed \ dev-libs/libffi sys-devel/libtool dev-libs/openssl sys-devel/patch \ dev-lang/perl dev-perl/XML-Parser \ dev-util/pkgconfig dev-util/scons app-arch/unzip \ net-misc/wget app-arch/xz-utils dev-lang/yasm
Mac OS X
Install Xcode 4 and MacPorts, then run:
sudo port install autoconf automake bison cmake flex \ gettext git-core gsed intltool libffi libtool \ openssl p5-xml-parser pkgconfig scons \ wget xz yasm
Mac OS X versions ≤ 10.6 are no longer supported.
MingW
Make sure to update and upgrade packages as some of the default versions of packages are too old to work correctly.
mingw-get update mingw-get upgrade
And then get required packages.
mingw-get install autoconf bash msys-bison msys-flex gcc gcc-c++ \ gcc-fortran gettext msys-m4 msys-make msys-sed \ libiconv msys-openssl msys-patch msys-perl \ msys-libarchive msys-unzip msys-wget msys-bsdtar
You will also need to install Windows versions of Python and Ghostscript and ensure they are in visible in the PATH.
OpenSUSE
zypper install -R autoconf automake bash bison bzip2 \ cmake flex gcc-c++ gettext-tools git \ intltool libffi-devel libtool make openssl \ libopenssl-devel patch perl \ perl-XML-Parser pkg-config scons \ sed unzip wget xz yasm
On 64-bit openSUSE, install also:
zypper install -R gcc-32bit glibc-devel-32bit \ libgcc46-32bit libgomp46-32bit \ libstdc++46-devel-32bit
Creating an NSIS based installer
The make nsis-installer
command produces a NSIS installer that is ready to be distributed.