Windows Installer: Difference between revisions

4,640 bytes removed ,  14 October 2019
Strip outdated requirements section. The updated list is maintained inside the repository https://hg.octave.org/mxe-octave/file/tip/index.html.
(Strip redundant section.)
(Strip outdated requirements section. The updated list is maintained inside the repository https://hg.octave.org/mxe-octave/file/tip/index.html.)
Line 113: Line 113:
* A possible causes for build failure is having files in your local source or build directory that are not listed in the module.mk files; these are not copied into the dist archive.
* A possible causes for build failure is having files in your local source or build directory that are not listed in the module.mk files; these are not copied into the dist archive.
* (philip, confirmed by oheim) On my core i5 desktop system with a fast SSD, mxe-octave builds usually fails at libmng, suspectedly because of a race condition related to disk I/O. A way to get past this is by specifying "make nsis-installer JOBS=1", if required repeatedly (sometimes 5 or 6 times), interrupting the build in the next step/dependency once libmng has been built fine, and restarting with "make nsis-installer JOBS=<higher number>". As of Dec. 2015 it is only libmng that has this issue.
* (philip, confirmed by oheim) On my core i5 desktop system with a fast SSD, mxe-octave builds usually fails at libmng, suspectedly because of a race condition related to disk I/O. A way to get past this is by specifying "make nsis-installer JOBS=1", if required repeatedly (sometimes 5 or 6 times), interrupting the build in the next step/dependency once libmng has been built fine, and restarting with "make nsis-installer JOBS=<higher number>". As of Dec. 2015 it is only libmng that has this issue.
==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 <code>apt-get install foo</code> instead of <code>aptitude install -R foo</code>.
On a fresh 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 [http://wiki.octave.org/Windows_Installer#Open_Issues_with_NSIS 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:<br>
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 [http://wiki.octave.org/Windows_Installer#Open_Issues_with_NSIS 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 [http://wiki.octave.org/Windows_Installer#Open_Issues_with_NSIS 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 [http://developer.apple.com/xcode/ Xcode 4] and [http://www.macports.org/ 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


==Trying out cross-built Octave on Linux through VirtualBox==
==Trying out cross-built Octave on Linux through VirtualBox==