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

Fedora 26

A quick reference for Fedora 26 using the command line interface:

sudo dnf install cmake gtk2-devel libcurl-devel SDL_image SDL_image-devel SDL_mixer SDL_mixer-devel subversion vala

Linux Mint 18.2 (Sonya)

Command Line Interface (CLI)

A quick reference for Linux Mint 18.2 (Sonya) using command line interface:

sudo apt install cmake libcurl4-openssl-dev libglade2-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libgtk2.0-dev subversion valac

Installing on Linux Mint using Synaptic

Synaptic package manager is used to manage installation, update and removal of software.

  • To open package manager in Mate: Click Menu, lower left corner, the Package Manager.
  • To open in Cinnamon: Click Menu , then Administration, then Package Manager.
  • In XFCE: Click Menu, then System, then Synaptic Package Manager
  • In KDE: Menu, then Applications, then Settings, then Package Manager

Once open, click Reload in the menu bar. Use the Quick Filter box to search for package names or descriptions. You will need to install the following packages:

  • cmake
  • libcurl4-openssl-dev
  • libglade2-dev
  • libsdl1.2-dev
  • libsdl-image1.2-dev
  • libsdl-mixer1.2-dev
  • libgtk2.0-dev
  • subversion
  • valac

Ubuntu 14.04 LTS (Trusty Tahr)

A quick reference for Ubuntu 14.04 LTS (Trusty Tahr):

apt-get install cmake libcurl4-openssl-dev libglade2-0 libglade2-dev libpng12-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev subversion valac

Ubuntu 16.04 LTS (Xenial Xerus)

A quick reference for Ubuntu 16.04 (Xenial Xerus):

apt-get install cmake libcurl4-openssl-dev libglade2-0 libglade2-dev libpng12-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev subversion valac

Ubuntu 17.04 (Zesty Zapus)

A quick reference for Ubuntu 17.04 (Zesty Zapus):

apt-get install cmake libcurl4-openssl-dev libglade2-0 libglade2-dev libpng12-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev subversion valac

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.72.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.72.0 release as an example

$ svn co http://svn.code.sf.net/p/crossfire/code/client/tags/1.72.0 client.svn
client/client_compiling.txt · Last modified: 2017/09/26 02:39 by leaf