How to Build Picard for Windows

This page has not been reviewed by our documentation team (more info).

Contents

How to build Picard for Windows

Disclaimer

This HowTo is work in progress and terribly incomplete. Currently it is more a collection of notes which can help you to build Picard on Windows, but it is not a real step by step instruction.

About

This HowTo explains the process of building the Picard installer for Windows from source using the MinGW build environment.

Requirements

Runtime & libraries

For packaging/installer

Install Python, PyQt and py2exe

Install NSIS

Install MinGW and MSYS

Grab one of the installers from here. In the installer ensure you choose the following optional components:

Installing to C:\MinGW (MSYS will be in C:\MinGW\msys\1.0) will simplify the rest of the guide.

Add C:\MinGW\bin to your PATH.

Build libavformat/libavcodec

Download the FFmpeg 0.5.2 source code and extract it to a directory. You are trying to build individual FFmpeg components in shared mode. Picard needs

From inside the MSYS shell change to that directory and run:

./configure --prefix=C:/MinGW \
  --extra-cflags="-mno-cygwin -mms-bitfields" \
  --extra-ldflags="-Wl,--add-stdcall-alias" \
  --enable-memalign-hack \
  --target-os=mingw32 \
  --enable-shared \
  --disable-static \
  --disable-ffmpeg \
  --disable-ffplay \
  --disable-ffserver \
  --disable-network \
  --disable-muxers \
  --disable-demuxers \
  --enable-demuxer=aac \
  --enable-demuxer=ac3 \
  --enable-demuxer=ape \
  --enable-demuxer=flac \
  --enable-demuxer=mpc \
  --enable-demuxer=mpc8 \
  --enable-demuxer=ogg \
  --enable-demuxer=wav \
  --disable-bsfs \
  --disable-filters \
  --disable-parsers \
  --enable-parser=aac \
  --enable-parser=ac3 \
  --enable-parser=mpegaudio \
  --disable-protocols \
  --enable-protocol=file \
  --disable-indevs \
  --disable-outdevs \
  --disable-encoders \
  --disable-decoders \
  --enable-decoder=aac \
  --enable-decoder=ac3 \
  --enable-decoder=alac \
  --enable-decoder=flac \
  --enable-decoder=mp2 \
  --enable-decoder=mp3 \
  --enable-decoder=mpc7 \
  --enable-decoder=mpc8 \
  --enable-decoder=ape \
  --enable-decoder=wavpack \
  --enable-decoder=vorbis \
  --enable-decoder=wmav1 \
  --enable-decoder=wmav2 \
  --enable-decoder=tta \
  --enable-decoder=pcm_alaw \
  --enable-decoder=pcm_dvd \
  --enable-decoder=pcm_f32be \
  --enable-decoder=pcm_f32le \
  --enable-decoder=pcm_f64be \
  --enable-decoder=pcm_f64le \
  --enable-decoder=pcm_s16be \
  --enable-decoder=pcm_s16le \
  --enable-decoder=pcm_s16le_planar \
  --enable-decoder=pcm_s24be \
  --enable-decoder=pcm_daud \
  --enable-decoder=pcm_s24le \
  --enable-decoder=pcm_s32be \
  --enable-decoder=pcm_s32le \
  --enable-decoder=pcm_s8 \
  --enable-decoder=pcm_u16be \
  --enable-decoder=pcm_u16le \
  --enable-decoder=pcm_u24be \
  --enable-decoder=pcm_u24le

Build the libraries with

make

You may see errors from make regarding

make: lib: Command not found

Make is looking for the Microsoft Library Manager from Visual Studio. You can ignore these; the DLLs should be successfully built and appear to be sufficient. However you will have to change the build.cfg before building Picard (see below).

Download the Picard source code

See Picard Download for instructions on how to obtain the source code of Picard.

Install libdiscid and libofa

Install Mutagen

From a cmd shell

cd mutagen-1.20
python setup.py install

Build the Picard installer

From a cmd shell, configure Picard:

python setup.py config --compiler mingw32 --library-dirs C:\MinGW\lib --include-dirs C:\MinGW\include

Fix the build.cfg:

[directshow]
libs = 
cflags = 

[libofa]
libs = 
cflags = 

[avcodec]
libs = avcodec.dll avformat.dll avutil.dll
cflags = 

[build]
have-make = True
with-directshow = False
with-avcodec = True
with-libofa = False

Build Picard and create the installer:

python setup.py build --compiler mingw32 
python setup.py build --compiler mingw32 bdist_nsis

Known issues