Windows Build Instructions   msys logo   HOWTO by Andreas Persson


June 13th, 2009

1.  Introduction
2.  MinGW
3.  pkg-config and gtkmm
4.  MSYS
5.  ASIO SDK
6.  VST SDK
7.  intltool
8.  Perl
9.  xsltproc
10.  MSYS setup
11.  Building SQLite
12.  Building libsndfile
13.  Building libgig
14.  Building linuxsampler
15.  Building gigedit

1.  Introduction

These are instructions for building libgig, linuxsampler and gigedit on Windows (32 bit) with help of MinGW and MSYS. After the MinGW and MSYS environment and the other prerequisites are installed, the build procedure will be the same as in Linux, that is, basically: ./configure ; make ; make install.

The versions of the files to download are just the ones I used before updating this text. You can probably use later ones if available.

Some of the instructions below are marked with ** and ***:

** = only needed if you are going to build from CVS, not if you are using the tar file releases

*** = only needed if you are going to build gigedit

2.  MinGW

Download the MinGW installer, MinGW-5.1.4.exe, from www.mingw.org and run it. The installer will automatically download and install further packages. Choose the base tools and the g++ compiler.

3.  pkg-config and gtkmm

The pkg-config tool is needed by the configure script in all the LinuxSampler packages. pkg-config is included in gtkmm, which is needed by gigedit. (If you are not going to build gigedit, you can download just GLib and pkg-config from www.gtk.org.)

Download the gtkmm windows installer, gtkmm-win32-devel-2.16.0-3.exe, from www.gtkmm.org, and run it. Let the installer adjust the PATH variable as it wants.

4.  MSYS

I use the 1.0.11 Release Candiadate version, as I had problems building DLLs with the 1.0.10 current version.

Download from "MSYS Base System, Release Candidate: MSYS-1.0.11":

MSYS-1.0.11-rc-1.exe

Run the installer.

Download from "MSYS Supplementary Tools, Technology Preview: Tools for MSYS-1.0.11":

autoconf2.5-2.61-1-bin.tar.bz2 **
autoconf-4-1-bin.tar.bz2 **
automake1.10-1.10-1-bin.tar.bz2 **
automake-3-1-bin.tar.bz2 **
bison-2.3-MSYS-1.0.11-1.tar.bz2 **
crypt-1.1-1-MSYS-1.0.11-1.tar.bz2 **
cvs-1.11.22-MSYS-1.0.11-1-bin.tar.gz **
gettext-0.16.1-1-bin.tar.bz2 ***
gettext-0.16.1-1-dll.tar.bz2 ***
libiconv-1.11-1-bin.tar.bz2 ***
libiconv-1.11-1-dll.tar.bz2 ***
libtool1.5-1.5.25a-1-bin.tar.bz2
perl-5.6.1-MSYS-1.0.11-1.tar.bz2 ***

Extract all these files to the msys directory, by starting msys, do "cd /" followed by "tar xjf filename" for .tar.bz2 files and "tar xzf filename" for .tar.gz files.

5.  ASIO SDK

Download asiosdk2.2.zip from Steinberg. Extract it to your msys $HOME.

6.  VST SDK

If you want to build the LinuxSampler VST plugin, download vst_sdk2_4_rev2.zip from Steinberg (note that you should not choose version 3). Extract it to msys $HOME.

7.  intltool ***

Download intltool_0.40.4-1_win32.zip from http://ftp.gnome.org/pub/GNOME/binaries/win32/intltool

Unzip this into the msys local directory (C:\msys\1.0\local)

8.  Perl ***

The perl in MSYS is lacking an XML parser which is needed by intltool. Download ActivePerl from www.activestate.com and install it.

9.  xsltproc ***

The gigedit Makefile wants to build the gigedit quick start documentation, so it needs the xsltproc command. Download from ftp://ftp.zlatkovic.com/pub/libxml/:

libxml2-2.7.3.win32.zip
libxslt-1.1.24.win32.zip

Copy the contents of the bin directories from both zip files to a directory of your choice. Add this directory last in your msys PATH, for example:

export PATH=$PATH:$HOME/xsltproc

10.  MSYS setup

Add the gtkmm aclocal directory to the list of extra directories used by autoconf. (Make sure the gtkmm path is the one where you installed it. The space in "Program Files" causes problems, so the short file name form is used here):

echo "/c/Progra~1/gtkmm/share/aclocal" >> /usr/local/share/aclocal/dirlist

Add the gtkmm bin directory first in your PATH (the installer has already added gtkmm to the PATH, but it may have used "Program Files" with a space in it, which causes configure to fail):

export PATH=/c/Progra~1/gtkmm/bin:$PATH

Make sure pkg-config will find the LinuxSampler libraries:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

*** The intltool scripts expect perl to be in /opt/perl/bin, so make a link to the ActivePerl installation. Also add ActivePerl to PATH:

mkdir -p /opt/perl/bin
ln -s /c/Perl/bin/perl.exe /opt/perl/bin
export PATH=/c/Perl/bin:$PATH

*** MSYS gettext and gtkmm both include libintl. We want the gtkmm version. Remove the MSYS files so the gettext configure tools don't choose the wrong version:

rm /usr/local/include/libintl.h /usr/local/lib/libintl*

*** The gettext configure tools also need:

export CPPFLAGS="-I/c/Progra~1/gtkmm/include"
export LDFLAGS="-L/c/Progra~1/gtkmm/lib"

11.  Building SQLite

The windows precompiled version of SQLite doesn't include the neccessary development files, so it's best to build SQLite yourself. Download sqlite-amalgamation-3.6.14.2.tar.gz from www.sqlite.org and extract it to your $HOME:

cd
tar xzf sqlite-amalgamation-3.6.14.2.tar.gz

Build and install:

cd sqlite-3.6.14.2
CFLAGS=-O2 ./configure
make
make install

(Without CFLAGS=-O2, the build will fail. The MinGW compiler has some problems with creating the debug info for some reason.)

12.  Building libsndfile

The windows precompiled version of libsndfile doesn't include the neccessary pkg-config file, so it's best to build libsndfile yourself. Download libsndfile-1.0.20.tar.gz from www.mega-nerd.com and extract it to your $HOME:

cd
tar xzf libsndfile-1.0.20.tar.gz

Build and install:

cd libsndfile-1.0.20
./configure
make
make install

13.  Building libgig

Just use the same commands as you would in linux:

make -f Makefile.cvs    (if you build from CVS)
./configure             (add any configuration parameters as you wish)
make
make install

14.  Building linuxsampler

make -f Makefile.cvs    (if you build from CVS)
./configure --enable-asiosdk-dir=$HOME --enable-vstsdk-dir=$HOME/vstsdk2.4
make
make install

15.  Building gigedit

make -f Makefile.cvs    (if you build from CVS)
./configure
make
make install