Code Monkey home page Code Monkey logo

mpd-win32-build's Introduction

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

mpd-win32-build's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.