Prerequisites:

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

 libsdl1.2
 libsdl-image1.2
 libsdl-mixer1.2 (with Vorbis support)
 libsdl-net
 libfreetype2

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

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

The .tar.gz 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).

Sourcecode:

You can get it here:

 http://www.wesnoth.org/downloads


Compiling:

First untar the package:

 $ tar xfzv wesnoth-x.y.z.tar.gz

then

 $ cd wesnoth-x.y.z

The usual

 $ ./configure
 $ make
 $ make install

only compiles the wesnoth binary and installs it along with the game
data to the default prefix which is probably /usr/local.

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

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

