Building DCP-o-matic for Windows

DCP-o-matic for Windows is built using Mingw64 on Linux. This page gives some brief tips on how do it yourself.

Host dependencies

For Debian, you need a few packages to be installed:

sudo apt-get install texinfo libgmp-dev libmpfr-dev libmpc-dev cmake autoconf libtool automake

The toolchain

Next you need to build the MinGW toolchain (compiler, linker etc.). I use some scripts for this, which you can download using:

git clone git://git.carlh.net/git/mingw-build.git

The mingw-build directory expects there to be a subdirectory Archives containing the source archives available here, so download those files and put them in mingw-build/Archives.

After that,

./build_all

in the mingw-build directory should build a MinGW toolchain and install it under /opt/mingw. The script will use sudo now and again so you need to be prepared to enter your password a few times.

The dependencies

The dependencies of DCP-o-matic are probably the most onerous part of its build. You will need a set of scripts which you can get with:

git clone git://git.carlh.net/git/windows-environment.git

Again, the scripts expect a subdirectory called Archives containing the source archives available here.

Once that subdirectory is set up,

./rebuild_all

in the windows-environment subdirectory should build all of DCP-o-matic's dependencies.

Building DCP-o-matic

The final step is to build DCP-o-matic itself. For this I use a python script which I wrote, called cdist. Download it using

git clone git://git.carlh.net/git/cdist.git

then copy the cdist script somewhere onto your path (e.g. /usr/local/bin).

cdist needs a file ~/.config/cdist which should contain something like:

windows_environment_prefix /home/carl/Environments/windows
mingw_prefix /opt/mingw
git_prefix git://git.carlh.net/git/

You may need to change windows-environment_prefix to point at the directory that contains the checkout of windows-environment.git.

Once you have done this,

cdist -p dcpomatic -t windows-64 package

should build a Windows installer of DCP-o-matic for 64-bit.