CompilingWesnoth
From Wesnoth
Compiling Wesnoth
- on Linux or Unix
- on Linux PDA
- on Mac OS X
- on MS Windows
- on SuSE
- cross-compiling
Tools
Contents |
Compiling Wesnoth
This page covers compilation on a Unix-like system. See also:
- Compiling Wesnoth on Windows
- Compiling Wesnoth on Mac OS X
- Compiling Wesnoth on Syllable
- Wesnoth on Linux PDAs
- Compiling Wesnoth on SuSE -For install on SuSE 10.0
Forcemstr has cross compiled for Windows using the free mingw32 tools, running under Linux.
Here's documentation of another cross compilation attempt: CompilingWesnoth/CrossCompiling
For detailed instructions and full prerequisites, please consult the current INSTALL file in the source code.
NOTE: it seems the compilation of trunk has problems with Debian Sarge see [1]
Prerequisites
You need to have the development packages of these libraries and a compiler (such as gcc) installed to build Wesnoth. You will also need the runtime packages to actually run Wesnoth.
- libsdl1.2 ( http://www.libsdl.org ) (SDL >= 1.2.7 strongly recommended)
- libsdl-image1.2 (with PNG support) ( http://www.libsdl.org/projects/SDL_image )
- libsdl-mixer1.2 (with Vorbis support) ( http://www.libsdl.org/projects/SDL_mixer )
- libsdl-net ( http://www.libsdl.org/projects/SDL_net )
- libintl (and other libraries found in gettext package) ( http://www.gnu.org/software/gettext/gettext.html )
- (newer than Wesnoth 1.3) python >= 2.4 ( rather optional but highly recommended, http://www.python.org )
- (newer than Wesnoth 1.3.12) libboost ( currently only libboost-iostreams, http://www.boost.org )
- (newer than Wesnoth 1.3.12) zlib ( in theory already needed for libsdl-image, http://www.zlib.org )
- scons (Development version only)
If you attempt to build from the stable branch from svn you will also need those packages:
- autoconf >= 2.60
- automake >= 1.9
The various SDL libraries can be found at http://www.libsdl.org
On all linux distributions that are based on Debian (like eg Ubuntu) it should be enough to use this command:
sudo apt-get build-dep wesnoth
To make sure Wesnoth >= 1.5.6 and svn head builds, too, you might need those:
sudo apt-get install libcairo2-dev libboost-regex-dev libsdl-ttf2.0-dev scons
Sourcecode
You can get it here:
Compiling (Development branch)
In the development branch, the autotools build is deprecated and unsupported. Our future choice of build system is not yet final -- SCons and CMake are both in contention -- but for the moment we are using SCons. When and if a CMake recipe is written we will do a technical comparison and make a final decision.
To build using SCons, simply type
$ scons
in the Wesnoth top-level directory. This will perform the equivalent of "configure --enable-editor --enable-tools; make" under autotools, buiding all client-side tools. To find out more about build options, type
$ scons --help
Equivalents of many configure options will be available, and you can easily build individual targets such as wesnothd.
Because scons checks for out-of-dateness with MD5 checksums of a target's ancestors and its build environment (including compiler and linker flags), the "make clean" and "make uninstall" preliminaries that you need for safety under autotools won't be necessary.
Compiling (Stable branch)
If you have an older installation, first uninstall that by changing into its source directory (i.e. the directory where you unpacked the older package) and by typing:
$ make uninstall
(It's very likely that you'll need root privileges to uninstall. To do this, check the Installing section.)
Change directory by typing
$ cd ..
You may want to delete the older unpacked package. You can do that now (or later) by typing:
$ rm -r wesnoth-1.x
(If you do it later be sure that you don't erase the new unpacked package.)
Untar the new package:
$ tar xfjv wesnoth-1.x.tar.bz2
then change directory:
$ cd wesnoth-1.x
If you have downloaded from svn run autogen.sh
$ ./autogen.sh
Once you have unpacked the source and uninstalled the old version,
$ ./configure
(you might want extra arguments to configure, for instance to build the map editor or to install with prefix, if so see below). Finally, compile with
$ make
Note: Users compiling SVN sources should 'make clean' before 'make' after any tree update.
- You can pass certain options to configure by the way, see the following example. It will install the whole game to /opt/games/wesnoth-1.2 and create the binary for the editor. The editor binary will be called wesnoth_editor.
$ ./configure --prefix=/opt/games/wesnoth-1.2 --enable-editor
- You also can specify compiler options using environment variables. For example, if you want to build a version using optimization you would run the following before running ./configure. (Post 1.1.8 note: the default optimization is now -O2)
$ CXXFLAGS="-O2" ; export CXXFLAGS
- If you would like to keep a version separated from other versions and attach a version suffix you could do this. In your users dir you will have the dir .wesnoth-1.2 for your preferences. The program itself will be called wesnoth-1.2 and the datadir will be the in the default path but named wesnoth-1.2. Remember that the path to the preferences dir is always relative. Absolute paths are not supported.
$ ./configure --with-preferences-dir=.wesnoth-1.2 --program-suffix=-1.2 --with-datadir-name=wesnoth-1.2
Some more configure options are shown when running ./configure --help.
Installing
Become superuser, so that you have permission to install.
$ su Password: /*doesn't show*/
Now that you have permission, install it. If you are using autotools:
# make install
or for smaller binaries,
# make install-strip
If you are using SCons:
# scons install
