This is a set of scripts to build MPD and friends for Windows. They could be used to build MPD natively on Windows or by using cross-compiler on Linux. If you don't want to build MPD manually you can download binary package from http://www.musicpd.org/download/win32/ Scripts located in tools directory could be used to write builders for other autotools/cmake based projects. Required tools on Linux ======================= To build on Linux you'll need the following tools (Ubuntu 12.04 packages are provided as example): autoconf automake autotools-dev cmake g++-mingw-w64-i686 gettext git libglib2.0-dev libtool make pkg-config python2.7 wget yasm Required tools on Windows ========================= To build on Windows you'll need the following tools: Python 2.7 - http://python.org Required to run buildtool MinGW + msys - http://mingw.org You'll need to install the following packages with mingw-get: mingw32-autotools mingw32-base mingw32-gettext mingw32-gcc-g++ msys-base msys-coreutils msys-patch msys-wget MinGW-w64 (optional) - http://mingw-w64.sourceforge.net Could be used instead of compiler from MinGW. You'll still need some tools from MinGW though. Git for Windows - http://msysgit.github.com Make sure you add to PATH directory with git.cmd (not directory with git.exe). pkg-config - http://www.gtk.org/download/win32.php You'll also need libglib-2.0-0.dll from GLib (run-time) package. GLib development tools - http://www.gtk.org/download/win32.php Required if your are cross-compiling. You'll also need GLib (run-time, dev) and gettext-runtime (run-time) packages. CMake - http://www.cmake.org Required to build openal-soft. Yasm - http://yasm.tortall.net Required to build ffmpeg. All of the following tools should be in PATH. Instead of modifying it directly, consider setting path option in buildtool.conf. Exception is Python interpreter which have to be in real PATH to run buildtool. Using buildtool =============== Buildtool is a simple python script that automates building of packages. Before running buildtool make sure you have created buildtool.conf. See buildtool.conf.example for details. Buildtool is executed via buildtool shell script of buildtool.bat batch file depending on your platform. It takes exactly 2 arguments: action and target. Target is a package to deal with. Action is one of the following: build Builds specified target via ./configure, make, make install sequence. All dependencies are assumed to be built. clean Removes all files generated by build. clean-cache Removes all files that were downloaded via previous runs of buildtool. rebuild Shortcut for executing clean and build. build-all Builds specified target and all dependencies. generate-makefile Generates make file that could be used to build target and its dependencies with additional make options such as -j. This action is implictly executed by build-all target. It does not require target argument. build-dist Pack specified target and all dependencies to .zip file ready for releasing. Target and dependencies are assumed to be built. Examples: Building MPD package from latest released tarball: $ ./buildtool build-all mpd-release $ ./buildtool build-dist mpd-release The same but use 4 build jobs at once: $ ./buildtool generate-makefile $ cd work $ make -j 4 build-mpd-release $ cd .. $ ./buildtool build-dist mpd-release