Downloading and Compiling under Linux
Specific instructions are given for a cleanly installed Ubuntu 12.04 amd64 system, but the procedure should be similar for other Linux distributions or FreeBSD. Please update this page if something is missing.
- 1 Setting Up the Build Environment
- 2 Getting the source code
- 3 Compiling
- 4 Running the executable
Setting Up the Build Environment
To download and compile Arx Libertatis you will need the following tools:
Your system must have the following dependencies installed, including headers / development versions:
SDL2 (recommended), or
SDL1.2.10 or newer
OpenGL1.5 or newer
libepoxy1.2 or newer (recommended), or
GLEW1.5.2 or newer
OpenAL(OpenAL Soft is strongly recommended)
Boost1.48 or newer (headers only)
GLM0.9.5.0 or newer
FreeType2.3.0 or newer
If both SDL 1.2 and SDL 2 are installed, arx will use SDL 2 - if you don't want this, pass
The optional crash reporter application also needs:
Qt4.7+ or 5: QtCore, QtConcurrent (Qt 5 only), QtGui and QtWidgets (Qt 5 only) libraries (http://qt.nokia.com/)
If both Qt 4 and Qt 5 are installed, arx will use Qt5 - if you don't want this, pass
The dependencies listed here are for the current development version of Arx Libertatis. For older versions refer to the README.md file in the respective source distribution.
apt-based system such as Debian or Ubuntu, use:
sudo apt-get install git build-essential cmake zlib1g-dev libfreetype6-dev libopenal1 libopenal-dev mesa-common-dev libgl1-mesa-dev libboost-dev libsdl2-dev libepoxy-dev libglm-dev qt-sdk gdb
On Ubuntu 12.04 be sure to install Boost 1.48:
sudo apt-get install libboost1.48-dev
You may need to install
libglew-dev instead of
libepoxy-dev if the latter is not available for your Debian/Ubuntu version.
Your package manager will probably prompt you to install other packages, so just say yes to those. qt-sdk is not needed for the game to run, but without it the crash reporter will be disabled, making it harder to report errors in case of a crash. gdb is used to generate detailed crash information and is not needed at compile-time.
Dependency versions in stable Linux distros
|Debian 6 (squeeze)||GCC 4.4.5|| 2.8.2
|Debian 7 (wheezy)||GCC 4.7.2|| 2.8.9
|Debian 8 (jessie)||GCC 4.9.2||3.0.2||1.55||2.0.2||0.9.5.4||1.2||1.10.0||2.5.2||5.3.2||7.38.0|
|Ubuntu 12.04 (precise)||GCC 4.6.3||2.8.7||1.48||1.2.14||0.9.2.7||(missing)||1.6.0||2.4.8||4.8.1||7.22.0|
|Ubuntu 14.04 (trusty)||GCC 4.8.2||126.96.36.199||1.54||2.0.2||0.9.5.1||(missing)||1.10.0||2.5.2||5.2.1||7.35.0|
|Ubuntu 15.04 (vivid)||GCC 4.9.2||3.0.2||1.55||2.0.2||0.9.5.4||(missing)||1.10.0||2.5.2||5.4.1||7.38.0|
|Ubuntu 15.10 (wily)||GCC 5.2.1||3.2.2||1.58||2.0.2||0.9.6.3||(missing)||1.10.0||2.5.2||5.4.2||7.43.0|
|Ubuntu 16.04 (xenial)||GCC 5.3.1||3.5.1||1.58||2.0.4||0.9.7.2||(missing)||1.13.0||2.6.1||5.5.1||7.47.0|
|Ubuntu 16.10 (yakkety)||GCC 6.1.1||3.5.2||1.61||2.0.4||0.9.7.5||1.3.1||1.13.0||2.6.3||5.6.1||7.50.1|
|Fedora 24||GCC 6.2.1||3.5.2||1.60||2.0.4||0.9.7.3||1.4.1||1.13.0||2.6.3||5.6.1||7.47.1|
|Fedora 25||GCC 6.2.1||3.8.0||1.60||2.0.5||0.9.7.3||1.4.1||1.13.0||2.6.5||5.7.1||7.51.0|
|Fedora 26||GCC 7.1.1||3.8.2||1.63||2.0.5||0.9.8.4||1.4.1||2.0.0||2.7.1||5.8.0||7.53.1|
|openSUSE 13.1||GCC 4.8||2.8.11||1.53||2.0.0||0.9.4.4||(?)||1.9.0||188.8.131.52||5.1.1||7.42.1|
|openSUSE 13.2||GCC 4.8||3.0.2||1.54||2.0.3||0.9.5.3||(?)||1.10.0||2.5.3||5.4.2||7.42.1|
|openSUSE Leap 42.1||GCC 4.8||3.3.2||1.54||2.0.3||0.9.5.3||(?)||1.13.0||2.5.5||5.5.1||7.37.0|
|openSUSE Leap 42.2||GCC 4.8||3.5.2||1.54||2.0.3||0.9.5.3||1.3.1||1.13.0||2.6.3||5.6.1||7.37.0|
|openSUSE Leap 42.3||GCC 4.8||3.5.2||1.61||2.0.3||0.9.5.3||1.3.1||1.13.0||2.6.3||5.6.2||7.37.0|
- Green: Fully supported
- Yellow: Supported, but not recommended (support may be removed soon)
- Red: Unsupported
Getting the source code
There are several methods to get the Arx Libertatis source code - choose the one that suits you best:
Downloading a released version
The easiest way to get the AL source code is to download a versioned release. This will get you a reasonably up to date copy of the source code that has been tested to work.
- Arx Libertatis Source Code (mirror)arx-libertatis-1.1.2.tar.xz948 KiB
Cloning the repository
If you want the absolute latest version of the Arx Libertatis development code and stay up to date, you can clone the AL source code repository. Beware that this will give you the current master development branch that we are actively working on. While the code in that branch should always work, it hasn't undergone any significant testing. If you just want to play the game, consider using a released version instead.
To clone the repository, type:
git clone git://github.com/arx/ArxLibertatis.git
This creates a directory called ArxLibertatis and downloads the current source code from github.
Later if you want to update your local copy of the source code, run
The git repository does not contain raster images for the icon and logo. These will be generated from scalable versions when building Arx Libertatis, but doing so requires additional dependencies (Inkscape, ImageMagick and OptiPNG). To avoid this, you can instead get the generated images from the ArxLibertatisData repo:
git clone --depth 1 git://github.com/arx/ArxLibertatisData.git
Downloading a snapshot
Alternatively you can download the current snapshot of the source code repository as a .zip or .tar.gz file and extract that:
- Arx Libertatis Development Snapshot (tar.gz)latest snapshot of branch 'master'
- Arx Libertatis Development Snapshot (zip)latest snapshot of branch 'master'
This will give you the same code as cloning the repository, but won't let you update it without downloading everything again.
Preparing the build directory
First go to where you downloaded / extracted the AL source code (the directory containing the `CMakeLists.txt` file):
Then create a build directory that will contain compiled files.
mkdir build cd build
Using the data repository (git checkouts only)
Next, tell the build system where to find the ArxLibertatisData repo (you can skip this if you want to generate the data files yourself or if you are building from a release source archive):
ln -s ../../ArxLibertatisData arx-libertatis-data
../../ArxLibertatisData with the path to the ArxLibertatisData checkout. Alternatively you can pass the
-DDATA_FILES=../../ArxLibertatisData option to the cmake command(s) below.
Now you should be ready to configure and compile. Run cmake:
If you plan on adding code, it might be a good idea to use the developer mode instead:
cmake .. -DDEVELOPER=1
This disables the unity build to allow for faster incremental builds and also enables runtime checks and debug output in the compiled binary.
And now you should be able to compile with
make -j`getconf _NPROCESSORS_ONLN`
If you run out of RAM during the build, run make without the -j flag. If that is still not enough, disable the unity build by running cmake like this:
cmake .. -DUNITY_BUILD=0
Running the executable
For a manual installation, run arx by specifying a relative path to the
If you installed arx through the package manager of your distro, just run
You will need to obtain a copy of the data files from a commercial copy of Arx, or use the demo data files. Arx Libertatis comes with a script to extract these and install the files in the correct location.
The game will automatically change all used files to lower-case on the first start. If you want to run the game with read-only data you need to do this manually.
For running arx in a debugger, see Debugging