Windows Build Instructions   msys logo   HOWTO by Andreas Persson


December 14th, 2008

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 libsndfile
12.  Building libgig
13.  Building linuxsampler
14.  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 writing 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.

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-runtime-2.14.1-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 Technology Preview version, as I had problems building DLLs with the 1.0.10 current version.

Download from "MSYS Base System, Technology Preview: MSYS-1.0.11":

msysCORE-1.0.11-20080826.tar.gz
bash-3.1-MSYS-1.0.11-1.tar.bz2

Unpack these to a directory of your choice, for example C:\msys. As 1.0.11 doesn't have an installer yet, you need to have an unpacker that supports tar.gz/tar.bz, for example 7-Zip. The rest of the files you can unpack with the tar included in msysCORE.

Run the postinstall\pi.bat file and specify your MinGW directory.

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 ***

Download from "MSYS Supplementary Tools, Current Release: msysDTK-1.0.1":

m4-1.4.7-MSYS.tar.bz2 **

Extract all these files to the msys directory, by starting msys, do "cd /" and use tar.

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\local for example)

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.2+.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):

echo "/c/Program Files/gtkmm/share/aclocal" >> /usr/local/share/aclocal/dirlist

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/Program Files/gtkmm/include"
export LDFLAGS="-L/c/Program Files/gtkmm/lib"

11.  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.17.tar.gz from www.mega-nerd.com and extract it to your $HOME:

cd
tar xzf libsndfile-1.0.17.tar.gz

To prevent a compilation error for the test cases, add

#include <stdint.h>

to tests/utils.h.

./configure
make
make install

12.  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

13.  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

14.  Building gigedit

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