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.
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.
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
- double check this package)As a quick reference:
sudo apt-get install x11-common
As a quick reference:
sudo apt-get install libgtk1.2-dev
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 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.
( any more?)As a quick reference:
sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev lua5.1
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.
This is the starting point and confirms you are located in your home directory
$ cd ~ $ pwd /home/<username>
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.
$ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/client/trunk client.svn
These steps have you download branches/1.12
$ svn co https://crossfire.svn.sourceforge.net/svnroot/crossfire/client/branches/1.12 client.svn
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
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.
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
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.
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
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
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
Add gdb instructions and discus possible issues regarding .glade layout files.