User Tools

Site Tools


client:client_compiling

Building the Crossfire Client

This page provides information on building the GTKv2 client from source. Instructions for compiling the server are on a separate page.

Quick Start

To build with the default options, change to the source directory and run:

  $ mkdir build && cd build/
  $ cmake ..
  $ make
  # make install

To build with minimal dependencies, use this CMake command instead:

  $ cmake -DLUA=OFF -DMETASERVER2=OFF -DOPENGL=OFF -DSDL=OFF -DSOUND=OFF ..

To build with debugging symbols:

  $ cmake -DCMAKE_BUILD_TYPE=Debug ..

Use ccmake instead of cmake to change these options and more interactively.

Dependencies

  • C compiler supporting C99
  • CMake
  • GTK+ 2
  • libpng
  • Perl

Optional:

  • libcurl (for metaserver support)
  • Lua 5 (for client-side Lua scripting)
  • OpenGL (gl, glu, glx) (for OpenGL rendering)
  • SDL, SDL_image (for SDL rendering)
  • SDL_mixer (for sound support)

As a quick reference for Debian and Ubuntu related distributions:

sudo apt-get install autoconf automake cmake flex gcc libgd-tools libgtk2.0-0 libgtk2.0-dev libpng3 libtool make perl libcurl3 libcurl4-openssl-dev libglade2-0 libglade2-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev lua5.1 subversion  

As a quick reference for openSUSE 64bit:

yast -i autoconf automake flex gcc libcurl4 libcurl-devel libSDL-devel libgda-tools libSDL_image-1_2-0 libSDL_image-devel libgtk-2_0-0 libglade-2_0-0 libglade2-devel libSDL2-2_0-0 libSDL2-devel libSDL_mixer-1_2-0 libSDL_mixer-devel libtool make subversion

Note: For x86_64 systems, do not mix 64-bit and 32-bit libraries unless it cannot be helped. For example, libsvn0 is a 32-bit library, but lib64svn0 is the 64-bit equivalent. The build process may fail in the linkage stage if a 32-bit library is linked during a 64-bit build.

Debian 8.1

Need to add contrib and non-free to sources.list

Need to add the following to sources.list as well:

deb http://http.us.debian.org/debian jessie main contrib non-free

For more details, see Example sources.list over at the Debian Wiki

A quick reference for Debian 8.1:

apt-get install autoconf automake cmake flex gcc libgd-tools libpng12-dev libtool make libcurl3 libcurl4-openssl-dev libglade2-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev lua5.1 subversion

Ubuntu 16.10 (Yakkety Yak)

As a quick reference:

sudo apt install autoconf automake cmake flex gcc libgd-tools libgtk2.0-0 libpng-dev libtool make perl libcurl3 libcurl4-openssl-dev libglade2-0 libglade2-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev lua5.1 subversion

Obtaining the Source

  • Trunk contains the newest features and development for the game
  • Branch contains the most recent “stable” version of the game
  • Tags is an official & stable release of the game

IMPORTANT - One should be consistent with what is checked out; meaning use all trunk server & archetypes & maps or branches/1.x server & archetypes & maps or tags/1.71.0 server & archetypes & maps otherwise a strong risk of failure due to incompatibilities exists (broken maps, missing graphics, etc.)

The follow steps may be used to download the client source files to your computer.

Trunk

$ svn co http://svn.code.sf.net/p/crossfire/code/client/trunk client.svn

Branch

These steps have you download branches/1.12

$ svn co http://svn.code.sf.net/p/crossfire/code/client/branches/1.12 client.svn

Tag

Here's how to download Tag using the 1.71.0 release as an example

$ svn co http://svn.code.sf.net/p/crossfire/code/client/tags/1.71.0 client.svn
client/client_compiling.txt · Last modified: 2017/05/19 13:48 (external edit)