Compiling xoreos: Difference between revisions

From xoreos Wiki
Jump to navigation Jump to search
(Add a page on how to compile xoreos)
 
m (→‎Libraries: Boost was bumped to 1.48.0)
Line 29: Line 29:
* [http://www.zlib.net/ zlib] (>= 1.2.3.4)
* [http://www.zlib.net/ zlib] (>= 1.2.3.4)
* [http://tukaani.org/xz/ liblzma] (>= 5.0.5)
* [http://tukaani.org/xz/ liblzma] (>= 5.0.5)
* [http://www.boost.org/ Boost] (>= 1.42.0)
* [http://www.boost.org/ Boost] (>= 1.48.0)
** Boost.StringAlgo
** Boost.StringAlgo
** Boost.System
** Boost.System

Revision as of 21:08, 3 October 2014

This page gives a few tips and pointers on how to compile xoreos on various platforms.

Compiler and build system

xoreos is written in C++, so a C++ compiler, like GCC or clang is required. Its build system is based on Autotools, more specifically Autoconf, Automake and Libtool.

GNU/Linux

On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with

apt-get install libc6-dev g++ make autoconf automake libtool

On other distributions, it should work similarily.

Mac OS X

Due to the dependency on SDL2 (see below), you need at least Mac OS X 10.5 if you use a precompiled SDL2 library, and at least Mac OS X 10.7 if you're compiling SDL2 yourself.

Windows

Our build system is autotools-based, so we unfortunately do not support Visual Studio. Windows users need to install MinGW. For further information, please read this note.

Libraries

xoreos uses the following libraries to function:

  • iconv
  • zlib (>= 1.2.3.4)
  • liblzma (>= 5.0.5)
  • Boost (>= 1.48.0)
    • Boost.StringAlgo
    • Boost.System
    • Boost.Filesystem
    • Boost.Regex
    • Boost.Unordered
    • Boost.Hash
    • Boost.Date_Time
    • Boost.Function
    • Boost.Bind
    • Boost.Uuid
    • Boost.Smart_Ptr
    • Boost.Atomic
  • OpenGL (>= 2.1)
  • SDL2 (>= 2.0.0)
  • FreeType 2 (>= 2.4.0 (libtool number >= 11.0.5))
  • OpenAL (>= 1.12)
  • MAD (>= 1.15.1b)
  • libogg (>= 1.2.0)
  • libvorbis (>= 1.3.1)
  • libfaad (>= 2.7)
  • libxvidcore (>= 1.2.2)

On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with

apt-get install zlib1g-dev liblzma-dev libboost-all-dev libsdl2-dev libfreetype6-dev \
    libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev libxvidcore-dev

Other GNU/Linux distributions should work similarily. Windows users have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.

Compiling xoreos

Open a terminal, change into the directory of your sources and type

./autogen.sh && ./configure && make

This should compile xoreos successfully if the compiler, build system and libraries have been installed correctly. The binary can be found in the src subdirectory, called "xoreos" or, on Windows, "xoreos.exe". Alternatively, you can install it system-wide with

make install

Please also have a look at the Running xoreos page.

A note on build systems and Visual Studio

There are certain build systems that promise to generate both standard Makefiles and Visual Studio project files. I have tried CMake, SCons and qmake, and found them all lacking, so they're unfortunately not an option for xoreos.

Another options would be to parse our Automake files, and generate Visual Studio project files out of them. ScummVM does something similar with its create_project, but their Makefiles are a bit different than ours. Somebody™ "just" needs to adapt ScummVM's create_project. So far, no one has.