XMMS2 Install instructions

Note: More up to date information may be available at
http://wiki.xmms2.xmms.se/index.php/Install_instructions

== Dependencies ==

You will '''need''' the following things to build XMMS2.

* [http://www.python.org/ Python] (>=2.3.x)
* [http://www.gtk.org/ GLib] (>= 2.8.0)
* [http://www.sqlite.org SQLite] (>=3.2.4) (will work for versions < 3.2.4, but with poor performance and potential bugs)

If you are building XMMS2 on a binary distro, be sure to install -dev or -headers versions of these packages (if available). XMMS2 uses these headers to link to shared libraries on your system and will not build.

These libraries are '''not needed''' for building xmms2d itself, but will add extra functionality you might need. You will probably want MAD at the very least as without it, you can't play MP3s.

*For xform plugins:
** [http://curl.haxx.se Curl] (>= 7.11.2) - For listening to streams over HTTP.
** [http://www.underbit.com/products/mad/ MAD] (Ubuntu and debian users will want libmad0-dev) - For listening to MPEG files (MPEG 1 & 2 layers I, II and III - includes MP3)
** [http://www.audiocoding.com/ FAAD] - For listening to AAC.
** [http://www.xiph.org Vorbisfile] - For listening to Ogg Vorbis.
** [http://sidplay2.sourceforge.net/ SIDplay2] - For listening to SIDs.
** [http://www.geocities.com/SiliconValley/Lakes/5147/resid/ reSID] - For listening to SIDs.
** [http://flac.sourceforge.net/ libFLAC] - for FLAC support
** [http://modplug-xmms.sourceforge.net/ libmodlpug] - for fasttracker support
** [http://musepack.net/ libmpcdec] - for musepack support
** [http://www.musicip.com/dns/downloads.jsp libofa] - for OFA fingerprinting support
** [http://musicbrainz.org/doc/libdiscid libdiscid] and [http://www.gnu.org/software/libcdio/ libcdio] - for CDDA support
** [http://www.samba.org/ SAMBA] - for smbclient support
** [http://libmms.sf.net/ libmms] - for mms stream support
** [http://www.gnome.org/ libgnomevfs] - for ssh support
** [http://ffmpeg.mplayerhq.hu/ FFmpeg] - for wma and avcodec support
** [http://jack.sf.net/ Jack] - for JACK support
** [http://fftw.org/ FFTW3] and [http://www.mega-nerd.com/SRC/ libsamplerate] - for vocoder support
** [http://xmlsoft.org/ libxml2] - for XSPF and RSS (read: podcast)
*For output plugins:
** [http://www.alsa-project.org ALSA] - For ALSA output.
** [http://jackit.sourceforge.net Jack] (try 0.100.0 if you have problems with other versions) - For Jack output.
** [http://xiph.org/ao/ Lib Audio Output] - For libao output.
** CoreAudio (MacOSX)
** Neuros library - for nms output
** [http://www.icecast.org libshout] - for ices (icecast) output.

*For language bindings (required by some clients):
** [http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/ Pyrex] (== 0.9.3) - For python bindings. (Code generated by Pyrex 0.9.4 currently produces a segfault in ''xmmsclient.PropDict'')
** [http://www.ruby-lang.org/ Ruby] (>= 1.8) - For Ruby bindings.
** [http://www.perl.org Perl] (>= 5.7.3) - For Perl bindings.
** [http://www.boost.org Boost signals] - For C++ bindings.

As with the packages above, be sure to grab -dev or -headers packages if building on a binary distro!

For debian, one can use:
"apt-get install python2.3-pyrex python2.3-dev ruby1.8 ruby1.8-dev"

== Configure ==

 ./waf configure

Will configure your build. Interesting options:

* --prefix <path> : tells waf to put the installation in path
* --conf-prefix <path> : tells waf to append -I<path>/include and -L<path>/lib before trying to compile anything
* --without-plugins <list> : disable all the plugins in list.
* --nocache : rerun all configuration tests.
* -p : show a useless but cool progress bar when building!

== Build ==

 ./waf build

will build your copy of XMMS2. All objects and binaries will end up in _build_/default.

== Install ==

 ./waf install

will install into <prefix>

== Uninstall ==

 ./waf uninstall

easy as 123.


