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.2.1)
* http://www.scons.org/ SCons. (>= 0.96.90)
* http://www.gtk.org/ GLib (>= 2.6.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.

The following apt-get line will install the necessary packages, and
plugin packages below, on a Debian system (at least sarge) "aptitude
install debmake debhelper scons python2.3 python2.3-dev libglib2.0-dev
libsdl-ttf2.0-dev libflac-dev libspeex-dev libmodplug-dev libmad0-dev
libvorbis-dev libasound2-dev libspeex-dev libsqlite3-dev"

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 transport plugins:
  * http://curl.haxx.se Curl (>= 7.11.2) - For listening to streams over HTTP.

For decoder plugins:

  * 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.

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.

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.
	* For Java bindings:
		* http://java.sun.com/ Java SDK (>= 1.4)
		* http://www.swig.org/ SWIG (>= 1.3.25)
		* JAVA_HOME has to be set to the jdk's home

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"

== Configuring ==
Run ''scons'' to first run the configuration. Tweak the options,
running ''scons --config=force CONFIG=1'' each time till
satisfied. You may need to specify LIBPATH and CPPPATH so that scons
knows where to look for your include files and libraries. You can
exclude certain optional modules by running ''scons EXCLUDE="module1
module2 module3"'' where module names are the names of the directories
where the module is contained. For example the Java bindings are
located in src/clients/lib/java so the name of the module to be
excluded is 'java'. The faad plugin is in src/plugins/faad so the name
of the module to be excluded is 'faad'.

== Compiling ==
Simply run ''scons'' to compile, or ''scons PREFIX=/some/custom/path''
if you plan on installing XMMS2 in ''/some/custom/path''.

== Installing ==

Run ''scons install'' to install packages to their default path. You
can also install it to a non standard path by adding the PREFIX option
to scons. Like this:

 scons PREFIX=/usr/local/xmms
 scons PREFIX=/usr/local/xmms install

To only change the path the manual pages are installed in provide the
MANDIR option (it defaults to $PREFIX/man).

The INSTALLDIR option provides a way to prepend a path to ''all''
install pathes for package builders. When this option is set xmms2
still expects the files to be in the location without INSTALLDIR
prepended.

NOTE: There is a rather nasty bug with scons 0.96.1 that will cause it
to start using massive amounts RAM and CPU cycles, you can get around
this by running scons and then killing the process after this message:

 Install file: "mind.in.a.box-lament_snipplet.ogg" as
 "/usr/share/xmms2/mind.in.a.box-lament_snipplet.ogg"

Scons 0.96.92 also works fine.

== Cleaning up ==

''scons -c'' will clean the objects and binaries.

== Uninstalling ==
''scons -c install'' will uninstall any files installed by ''scons
install''. Alternatively, ''scons -c /path/'' will uninstall any files
installed under ''/path/'' For example, if you installed xmms2 under
/usr/local (default), run ''scons -c /usr/local''


