This is a quide on how to download crossfire-client sources from SVN and basic instructions on compiling a crossfire client for local use or testing. Please post build instructions for various operating environments.

*nix

Requirements

Many of these packages (listed alphabetically) may already be installed on your system, but this list may help with setup of a build environment. When in doubt, carefully look over the results of the ./configure step as it will often imply when packages are missing. Everything is not always required, but without everything, certain functionality may be disabled.

General

  • autoconf - automatic configure script builder
    • Normally autoconf is not required for building, but the current SVN client trunk does require it.
  • automake - A tool for generating GNU Standards-compliant Makefiles.
  • flex - A fast lexical analyzer generator
    • m4 - a macro processing language (required by flex)
  • gcc - The GNU C compiler
  • libcurl3 - Multi-protocol file transfer library (OpenSSL)
  • libcurl4-openssl-dev - Development files and documentation for libcurl (OpenSSL)
  • libgd-tools - GD command line tools and example code
    • libgd2-noxpm - GD Graphics Library version 2 (without XPM support) (required by libgd-tools)
  • libgd2-xpm-dev - GD Graphics Library version 2 (development version)
  • libgtk1.2-dev - Development files for the GIMP Toolkit
  • libsdl1.2-dev - Simple DirectMedia Layer development files
  • libsdl-image1.2-dev - development files for SDL 1.2 image loading library
  • libtool - Generic library support script
  • make - The GNU version of the “make” utility
  • subversion - advanced version control system (aka. svn)
    • libapr0 - the Apache Portable Runtime (required by subversion)
    • libsvn0 - shared libraries used by Subversion (aka. svn) (required by subversion)

As a quick reference:

sudo apt-get install autoconf automake flex gcc libgd-tools libgd2-xpm-dev libtool make subversion libsdl1.2-dev libsdl-image1.2-dev libgtk1.2-dev libcurl3 libcurl4-openssl-dev

X11 Client

  • x11-common - X Window System (X.Org) infrastructure (FIXME - double check this package)

As a quick reference:

sudo apt-get install x11-common

GTKv1 Client

  • libgtk1.2-dev - Development files for the GIMP Toolkit

As a quick reference:

sudo apt-get install libgtk1.2-dev

GTKv2 Client

  • libgtk2.0-0 - The GTK+ graphical user interface library
  • libgtk2.0-dev - Development files for the GTK+ library
  • libglade2-0 - library to load .glade files at runtime
  • libglade2-dev - development files for libglade

As a quick reference:

sudo apt-get install libgtk2.0-0 libgtk2.0-dev libglade2-0 libglade2-dev  

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.

Finally, a quick reference to install all three clients:

sudo apt-get install libgtk2.0-0 libgtk2.0-dev libglade2-0 libglade2-dev libgtk1.2-dev x11-common

Recommended Packages

Recommended packages provide additional add-ons or functionality to the client, or allow more than one client to be built. It is quite possible to get a perfectly acceptable client functional without having all of the recommended packages.

  • libsdl1.2-dev - Simple DirectMedia Layer development files
  • libsdl-image1.2-dev - development files for SDL 1.2 image loading libray
  • lua5.1 - Simple, extensible, embeddable programming language
  • FIXME ( any more?)

As a quick reference:

sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev lua5.1

Useful Packages

These useful packages are not normally required for end-user builds, but they come in handy in cases where developers may have forgotten to check in changes to build scripts, etc.

  • cproto - supports `make proto` to automatically update prototype files.
  • sudo - Provide limited super user privileges to specific users
    • Not required, but `sudo make install` is useful for installing to system directories.
    • sudo is also useful for installing packages that are missing.
    • Do not run `make` as the root user for security reasons.

START HERE

This is the starting point and confirms you are located in your home directory

 $ cd ~
 $ pwd
 /home/<username>

DOWNLOAD

  • 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.10.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 https://crossfire.svn.sourceforge.net/svnroot/crossfire/client/trunk client.svn

Branch

These steps have you download branches/1.12

$ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/client/branches/1.12 client.svn

Tag

Here’s how to download Tag using the 1.10.0 release as an example

$ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/client/tags/1.10.0 client.svn

SETUP

Confirm that you are still in your home directory

 $ cd ~
 $ pwd
 /home/<username>

Now change the working directory to the directory where the client sources were downloaded.

 $ cd client.svn

Confirm that you are in the client source directory

 $ pwd
 /home/<username>/client.svn

Choose from one of the following:

1.) A “fool-proof” build preparation that should always work. By “fool” we’re talking about a forgetful developer, not the builder, though nobody can really fool-proof software against bugs, so your mileage may vary.

 $ export CFLAGS="-ggdb -g -O0"; ./autogen.sh --prefix=${HOME}

The export statement enables debugging and disables optimization to facilitate debugging. These settings are useful when running software that has not been released, and is the recommended practice so that if a bug is encountered, it will be possible to collect more data about the bug.

2.) Run the autogen script as is:

$ sh autogen.sh

The autogen.sh script re-creates the configure (./configure) script. It accepts the same options as would normally be pass to ./configure. This command requires both autoconf and automake to be installed.

This process attempts to locate required resources, and also discover whether or not required resources are installed. It is okay to proceed directly to compilation, but almost certainly the output of the ./configure process needs to be review, and packages may need to be installed based upon what features or functionality is desired. The ./configure output generally indicates whether it will or will not build particular clients.

COMPILE

Now, begin the compile process; choose one of the following:

$ make && make install

Some setups may require you to use sudo, like so:

$ make && sudo make install

LAUNCH

Once the server has been successfully built (aka compiled), you need to launch the Crossfire Server application

Double check that you are in the correct directory which is the server directory

 $ pwd
 /home/<username>/client.svn

Note: For the GTK clients, the version numbers are sometimes confusing. The first client to use GTK is often called the GTK 1 client because it was originally compiled with GTK+-1.x, but now it is often compiled with GTK+-2.x. The second client developed with GTK is called the gtk-v2 client. It used to be built with GTK+-2.x, but has now been converted to build against libglade-2.0 (which requires GTK+-2.0 and other related libraries). The gtk-v2 client is designed to build with GTK+1.0 libraries.

X11 Client

Change to the x11 directory with the following command:

$ cd x11

Double check your location with:

$ pwd
/home/<username>/client.svn/x11

Then launch the client with the following command:

$ ./crossfire-client-x11 &

The command runs the Crossfire Client and returns you back to a shell prompt

GTKv1 Client

Change to the x11 directory with the following command:

$ cd gtk

Double check your location with:

$ pwd
/home/<username>/client.svn/gtk

Then launch the client with the following command:

$ ./crossfire-client-gtk &

The command runs the Crossfire Client and returns you back to a shell prompt

GTKv2 Client

Change directory the gtk-v2 directory

$ cd gtk-v2/src

Your file directory path should look like this:

 $ pwd
 /home/<username>/client.svn/gtk-v2/src

Then launch the client with the following command:

$ ./crossfire-client-gtk2 &

The command runs the Crossfire Client and returns you back to a shell prompt

FIXME Add gdb instructions and discus possible issues regarding .glade layout files.

Microsoft (c) Windows

FIXME

 
crossfire_client_compile_guide.txt · Last modified: 2009/02/12 00:37 by leaf
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki