Prerequisites:

You'll need to have these libraries (with equivalent devel versions) to build Wesnoth:

 libsdl1.2.7
 libsdl-image1.2 (with png support)
 libsdl-mixer1.2 (with Vorbis support)
 libsdl-net
 libfreetype2
 
Recommended (can be deactivated via ./configure --disable-python):
 python2.4

SDL* libraries can be found at http://www.libsdl.org . libfreetype can be found
at http://www.freetype.org/ . python can be found at http://www.python.org

You will also need to have a working installation of gettext to build the
translations.

The .tar.bz2 file is distributed with a working set of configure files. They
are not in the SVN repository. Consequently, if you are building from
SVN, you will need autoconf (>= 2.59) and automake (>= 1.9). Run './autogen.sh'
then to generate the configure files.

Sourcecode:

You can get it here:

 http://www.wesnoth.org/downloads


Compiling:

First untar the package:

 $ tar xfjv wesnoth-x.y.z.tar.bz2

then

 $ cd wesnoth-x.y.z

Do this 

 $ autogen.sh
 $ make
 $ sudo make install

to compile the wesnoth binary and install it along with the game
data to the default prefix, which is probably /usr/local.  You
can pass configure options to the autogen.sh call

After your first build, it should not be necessary to call autogen.sh 
again.  You can do

 $ configure
 $ make
 $ sudo make install

If you see lots of messages like "Type 'svnversion --help' for usage.",
you have a Subversion client installed but it is not implementing the 
-n option of svnversion. Time to update it.

If you want to build wesnoth_editor too add the --enable-editor
configure option.

The --enable-display-revision option enables code that shows the SVN
revision number on the main screen -- useful for detecting old builds
you might happen to have in your path, but probably not what you want
in a production release.

In case you want wesnothd to be built you should add:
--enable-server --localstatedir=/var --with-server-uid=user
--with-server-gid=group

$localstatedir/run is the location where a wesnothd subdirectory will be
created owned by user:group. This is relevant if you want to be able
to communicate with wesnothd through a fifo file named socket.
You have to run wesnothd with the user specified while configuring in
order for it to work.
You most likely want to change the default localstatedir since it will
probably default to PREFIX/var.
You can also specify the fifodir directly by using --with-fifodir
This way localstatedir won't be used.

If you want to install several versions of wesnoth you should use the
--with-preferences-dir= parameter to get distinct preferences directories.
The default is '.wesnoth'.

Rebuilding:

You should clean your existing wesnoth release build first with:

 $ make distclean

If you want to clean your wesnoth SVN build do:

 $ make maintainer-clean

