<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.xoreos.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Seedhartha</id>
	<title>xoreos Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.xoreos.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Seedhartha"/>
	<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Special:Contributions/Seedhartha"/>
	<updated>2026-06-14T10:53:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.6</generator>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=444</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=444"/>
		<updated>2019-03-02T05:05:18Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. xoreos follows the C++11 standard. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
* [https://www.webmproject.org/code/ libvpx] (&amp;gt;= 1.6.0)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev libvpx-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore libvpx&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore \&lt;br /&gt;
     mingw-w64-i686-libvpx&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore \&lt;br /&gt;
     mingw-w64-x86_64-libvpx&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves. Alternatively, vcpkg can be used to install most of these libraries.&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=443</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=443"/>
		<updated>2019-03-01T16:54:04Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. xoreos follows the C++11 standard. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
* [https://www.webmproject.org/code/ libvpx] (&amp;gt;= 1.6.0)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev libvpx-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore libvpx&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore \&lt;br /&gt;
     mingw-w64-i686-libvpx&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore \&lt;br /&gt;
     mingw-w64-x86_64-libvpx&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Main_Page&amp;diff=439</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Main_Page&amp;diff=439"/>
		<updated>2019-02-08T04:16:52Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;xoreos is an open source implementation of Bioware&#039;s Aurora engine and its derivatives, licensed under the terms of the GNU General Public License version 3 (or later).&lt;br /&gt;
&lt;br /&gt;
In order to accurately reimplement these games, we need to research how all of the mechanics work. If you feel like crawling deep into the bowels of the Aurora engine, or have already done so, please feel free to document your newly gained understandings here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Thanks to spambots, I had to close account registrations. Please [[contact us]] to get an account.&lt;br /&gt;
&lt;br /&gt;
== Index ==&lt;br /&gt;
&lt;br /&gt;
* [[Running xoreos]], intro on how to use xoreos&lt;br /&gt;
* [[Running xoreos-tools]], intro on how to use the xoreos-tools&lt;br /&gt;
* [[Developer Central]], technical documentation and info for developers&lt;br /&gt;
* [[Games]], a list of supported games&lt;br /&gt;
* [[TODO]], a list of things left to do&lt;br /&gt;
* [[contact us|Contact]], get in contact with the developers&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=438</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=438"/>
		<updated>2019-02-08T04:16:06Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=424</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=424"/>
		<updated>2018-08-10T08:15:00Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Phase 1 - Necessities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement the core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games as well as some areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Object selection [?:Nostritius]&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Party management&lt;br /&gt;
** Implement missing creature actions&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup&lt;br /&gt;
** Scripted animations&lt;br /&gt;
** Continuous flow&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based gameplay&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
** Force Powers (defensive)&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers (offensive)&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=423</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=423"/>
		<updated>2018-07-15T00:18:14Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Phase 1 - Necessities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement the core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games as well as some areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Object selection [?:Nostritius]&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Party management [1:seedhartha]&lt;br /&gt;
** Implement missing creature actions&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup&lt;br /&gt;
** Scripted animations&lt;br /&gt;
** Continuous flow&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based gameplay&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
** Force Powers (defensive)&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers (offensive)&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=422</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=422"/>
		<updated>2018-07-14T01:16:56Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Phase 1 - Necessities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement the core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games as well as some areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Object selection [?:Nostritius]&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Collision detection for creatures&lt;br /&gt;
** Party management&lt;br /&gt;
** Implement missing creature actions&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup&lt;br /&gt;
** Scripted animations&lt;br /&gt;
** Continuous flow&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based gameplay&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
** Force Powers (defensive)&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers (offensive)&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=421</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=421"/>
		<updated>2018-07-13T00:44:21Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Phase 1 - Necessities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement the core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games as well as some areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Object selection [?:Nostritius]&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Collision detection for creatures [1:seedhartha]&lt;br /&gt;
** Party management&lt;br /&gt;
** Implement missing creature actions&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup&lt;br /&gt;
** Scripted animations&lt;br /&gt;
** Continuous flow&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based gameplay&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
** Force Powers (defensive)&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers (offensive)&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=420</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=420"/>
		<updated>2018-07-07T04:39:33Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Phase 1 - Necessities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement the core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games as well as some areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Object selection [?:Nostritius]&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Party management&lt;br /&gt;
** Action queues [1:seedhartha]&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup&lt;br /&gt;
** Scripted animations&lt;br /&gt;
** Continuous flow&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based gameplay&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
** Force Powers (defensive)&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers (offensive)&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=417</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=417"/>
		<updated>2018-06-30T03:23:47Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Phase 1 - Necessities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement the core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games as well as some areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Object selection [?:Nostritius]&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Party management&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup&lt;br /&gt;
** Scripted animations&lt;br /&gt;
** Continuous flow&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based action queue&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
** Force Powers (defensive)&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers (offensive)&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=414</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=414"/>
		<updated>2018-06-24T10:44:30Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Phase 1 - Necessities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement the core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games as well as some areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Object selection [?:Nostritius]&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Party management [1:seedhartha]&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup&lt;br /&gt;
** Scripted animations&lt;br /&gt;
** Continuous flow&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based action queue&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
** Force Powers (defensive)&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers (offensive)&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=413</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=413"/>
		<updated>2018-06-24T06:18:59Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Phase 1 - Necessities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement the core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games as well as some areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Object selection [?:Nostritius]&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Party management [2:seedhartha]&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup [1:seedhartha]&lt;br /&gt;
** Scripted animations&lt;br /&gt;
** Continuous flow&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based action queue&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
** Force Powers (defensive)&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers (offensive)&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=412</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=412"/>
		<updated>2018-06-23T06:38:11Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
* Download http://downloads.xiph.org/releases/ogg/libogg-1.3.3.zip, extract and build both dynamic and static libraries using solution files in win32/VS2015&lt;br /&gt;
* Download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.zip, extract and build both dynamic and static libraries using solution files in win32/VS2010&lt;br /&gt;
* Download https://vorboss.dl.sourceforge.net/project/faac/faad2-src/faad2-2.8.0/faad2-2.8.8.tar.gz, extract and build projects &#039;&#039;&#039;libfaad&#039;&#039;&#039; and &#039;&#039;&#039;libfaad2_dll&#039;&#039;&#039; using the solution file in project/msvc. To build 64-bit libraries, create a new configuration&lt;br /&gt;
* Download source from https://github.com/seedhartha/xvidcore and build the library using CMake (requires NASM to be installed and present in PATH)&lt;br /&gt;
* Build xoreos using CMake&lt;br /&gt;
&lt;br /&gt;
To build a project using CMake, create a folder named &#039;&#039;&#039;build&#039;&#039;&#039; in a root directory of a project and from there invoke&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017&amp;quot;&lt;br /&gt;
&lt;br /&gt;
or, for 64-bit&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017 Win64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Open CMakeCache.txt in your favorite text editor and fill in missing information as needed. Then run cmake again. Project&#039;s solution file should be created at this point.&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=411</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=411"/>
		<updated>2018-06-22T10:45:35Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
* Download http://downloads.xiph.org/releases/ogg/libogg-1.3.3.zip, extract and build both dynamic and static libraries using solution files in win32/VS2015&lt;br /&gt;
* Download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.zip, extract and build both dynamic and static libraries using solution files in win32/VS2010&lt;br /&gt;
* Download https://vorboss.dl.sourceforge.net/project/faac/faad2-src/faad2-2.8.0/faad2-2.8.8.tar.gz, extract and build projects &#039;&#039;&#039;libfaad&#039;&#039;&#039; and &#039;&#039;&#039;libfaad2_dll&#039;&#039;&#039; using the solution file in project/msvc. To build 64-bit libraries, create a new configuration&lt;br /&gt;
* Download https://downloads.xvid.com/downloads/xvidcore-1.3.5.zip, extract and build the library using the solution file in build/win32 (requires NASM to be installed and present in PATH)&lt;br /&gt;
* Build xoreos using CMake&lt;br /&gt;
&lt;br /&gt;
To build a project using CMake, create a folder named &#039;&#039;&#039;build&#039;&#039;&#039; in a root directory of a project and from there invoke&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017&amp;quot;&lt;br /&gt;
&lt;br /&gt;
or, for 64-bit&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017 Win64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Open CMakeCache.txt in your favorite text editor and fill in missing information as needed. Then run cmake again. Project&#039;s solution file should be created at this point.&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=410</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=410"/>
		<updated>2018-06-19T12:33:09Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using the solution file in contrib/vstudio/vc14&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
* Download http://downloads.xiph.org/releases/ogg/libogg-1.3.3.zip, extract and build both dynamic and static libraries using solution files in win32/VS2015&lt;br /&gt;
* Download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.zip, extract and build both dynamic and static libraries using solution files in win32/VS2010&lt;br /&gt;
* Download https://vorboss.dl.sourceforge.net/project/faac/faad2-src/faad2-2.8.0/faad2-2.8.8.tar.gz, extract and build projects &#039;&#039;&#039;libfaad&#039;&#039;&#039; and &#039;&#039;&#039;libfaad2_dll&#039;&#039;&#039; using the solution file in project/msvc. To build 64-bit libraries, create a new configuration&lt;br /&gt;
* Download https://downloads.xvid.com/downloads/xvidcore-1.3.5.zip, extract and build the library using the solution file in build/win32 (requires NASM to be installed and present in PATH)&lt;br /&gt;
* Build xoreos using CMake&lt;br /&gt;
&lt;br /&gt;
To build a project using CMake, create a folder named &#039;&#039;&#039;build&#039;&#039;&#039; in a root directory of a project and from there invoke&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017&amp;quot;&lt;br /&gt;
&lt;br /&gt;
or, for 64-bit&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017 Win64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Open CMakeCache.txt in your favorite text editor and fill in missing information as needed. Then run cmake again. Project&#039;s solution file should be created at this point.&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=409</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=409"/>
		<updated>2018-06-19T10:11:18Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
* Download http://downloads.xiph.org/releases/ogg/libogg-1.3.3.zip, extract and build both dynamic and static libraries using solution files in win32/VS2015&lt;br /&gt;
* Download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.zip, extract and build both dynamic and static libraries using solution files in win32/VS2010&lt;br /&gt;
* Download https://vorboss.dl.sourceforge.net/project/faac/faad2-src/faad2-2.8.0/faad2-2.8.8.tar.gz, extract and build projects &#039;&#039;&#039;libfaad&#039;&#039;&#039; and &#039;&#039;&#039;libfaad2_dll&#039;&#039;&#039; using the solution file in project/msvc. To build 64-bit libraries, create a new configuration&lt;br /&gt;
* Download https://downloads.xvid.com/downloads/xvidcore-1.3.5.zip, extract and build the library using the solution file in build/win32 (requires NASM to be installed and present in PATH)&lt;br /&gt;
* Build xoreos using CMake&lt;br /&gt;
&lt;br /&gt;
To build a project using CMake, create a folder named &#039;&#039;&#039;build&#039;&#039;&#039; in a root directory of a project and from there invoke&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017&amp;quot;&lt;br /&gt;
&lt;br /&gt;
or, for 64-bit&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017 Win64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Open CMakeCache.txt in your favorite text editor and fill in missing information as needed. Then run cmake again. Project&#039;s solution file should be created at this point.&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=408</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=408"/>
		<updated>2018-06-19T10:07:19Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
* Download http://downloads.xiph.org/releases/ogg/libogg-1.3.3.zip, extract and build both dynamic and static libraries using solution files in win32/VS2015&lt;br /&gt;
* Download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.zip, extract and build both dynamic and static libraries using solution files in win32/VS2010&lt;br /&gt;
* Download https://vorboss.dl.sourceforge.net/project/faac/faad2-src/faad2-2.8.0/faad2-2.8.8.tar.gz, extract and build projects &#039;&#039;&#039;libfaad&#039;&#039;&#039; and &#039;&#039;&#039;libfaad2_dll&#039;&#039;&#039; using the solution file in project/msvc. To build 64-bit libraries, create a new configuration&lt;br /&gt;
* Download https://downloads.xvid.com/downloads/xvidcore-1.3.5.zip, extract and build the library using the solution file in build/win32 (requires NASM to be installed and present in PATH)&lt;br /&gt;
* Build xoreos using CMake&lt;br /&gt;
&lt;br /&gt;
To build a project using CMake, create a folder named &#039;&#039;&#039;build&#039;&#039;&#039; in a root directory of a project and from there invoke&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017&amp;quot;&lt;br /&gt;
&lt;br /&gt;
or, for 64-bit&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017 Win64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Open CMakeCache.txt in your favorite text editor and fill in missing information as needed. Then run cmake again. Project solution files should be created at this point.&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=407</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=407"/>
		<updated>2018-06-19T10:04:19Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
* Download http://downloads.xiph.org/releases/ogg/libogg-1.3.3.zip, extract and build both dynamic and static libraries using solution files in win32/VS2015&lt;br /&gt;
* Download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.zip, extract and build both dynamic and static libraries using solution files in win32/VS2010&lt;br /&gt;
* Download https://vorboss.dl.sourceforge.net/project/faac/faad2-src/faad2-2.8.0/faad2-2.8.8.tar.gz, extract and build projects &#039;&#039;&#039;libfaad&#039;&#039;&#039; and &#039;&#039;&#039;libfaad2_dll&#039;&#039;&#039; using the solution file in project/msvc. To build 64-bit libraries, create a new configuration&lt;br /&gt;
* Download https://downloads.xvid.com/downloads/xvidcore-1.3.5.zip, extract and build the library using the solution file in build/win32 (requires NASM to be installed and present in PATH)&lt;br /&gt;
* Build xoreos using CMake&lt;br /&gt;
&lt;br /&gt;
To build a project using CMake, create a folder named build in a root directory of a project and from there invoke&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017&amp;quot;&lt;br /&gt;
&lt;br /&gt;
or, for 64-bit&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017 Win64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=406</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=406"/>
		<updated>2018-06-19T10:02:57Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
* Download http://downloads.xiph.org/releases/ogg/libogg-1.3.3.zip, extract and build both dynamic and static libraries using solution files in win32/VS2015&lt;br /&gt;
* Download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.zip, extract and build both dynamic and static libraries using solution files in win32/VS2010&lt;br /&gt;
* Download https://vorboss.dl.sourceforge.net/project/faac/faad2-src/faad2-2.8.0/faad2-2.8.8.tar.gz, extract and build projects &#039;&#039;&#039;libfaad&#039;&#039;&#039; and &#039;&#039;&#039;libfaad2_dll&#039;&#039;&#039; using the solution file in project/msvc. To build 64-bit libraries, create a new configuration&lt;br /&gt;
* Download https://downloads.xvid.com/downloads/xvidcore-1.3.5.zip, extract and build the library using the solution file in build/win32 (requires NASM to be installed and present in PATH)&lt;br /&gt;
* Build xoreos using CMake&lt;br /&gt;
&lt;br /&gt;
To build a project using CMake, create a folder named build in a root directory of a project and from there invoke&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017&amp;quot;&lt;br /&gt;
&lt;br /&gt;
or for 64-bit&lt;br /&gt;
&lt;br /&gt;
  cmake .. -G &amp;quot;Visual Studio 15 2017 Win64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=405</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=405"/>
		<updated>2018-06-19T09:57:29Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
* Download http://downloads.xiph.org/releases/ogg/libogg-1.3.3.zip, extract and build both dynamic and static libraries using solution files in win32/VS2015&lt;br /&gt;
* Download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.zip, extract and build both dynamic and static libraries using solution files in win32/VS2010&lt;br /&gt;
* Download https://vorboss.dl.sourceforge.net/project/faac/faad2-src/faad2-2.8.0/faad2-2.8.8.tar.gz, extract and build projects &#039;&#039;&#039;libfaad&#039;&#039;&#039; and &#039;&#039;&#039;libfaad2_dll&#039;&#039;&#039; using the solution file in project/msvc. To build 64-bit libraries, create a new configuration&lt;br /&gt;
* Download https://downloads.xvid.com/downloads/xvidcore-1.3.5.zip, extract and build the library using the solution file in build/win32 (requires NASM to be installed and present in PATH)&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=404</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=404"/>
		<updated>2018-06-19T09:56:55Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
* Download http://downloads.xiph.org/releases/ogg/libogg-1.3.3.zip, extract and build both dynamic and static libraries using solution files in win32/VS2015&lt;br /&gt;
* Download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.zip, extract and build both dynamic and static libraries using solution files in win32/VS2010&lt;br /&gt;
* Download https://vorboss.dl.sourceforge.net/project/faac/faad2-src/faad2-2.8.0/faad2-2.8.8.tar.gz, extract and build projects &#039;&#039;&#039;libfaad&#039;&#039;&#039; and &#039;&#039;&#039;libfaad2_dll&#039;&#039;&#039; using the solution file in project/msvc. To build 64-bit libraries, create a new configuration&lt;br /&gt;
* Download https://downloads.xvid.com/downloads/xvidcore-1.3.5.zip, extract and build the library using the solution file in build/win32 (requires NASM installed and present in PATH)&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=403</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=403"/>
		<updated>2018-06-19T09:36:22Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
* Download http://downloads.xiph.org/releases/ogg/libogg-1.3.3.zip, extract and build both dynamic and static libraries using solution files in win32/VS2015&lt;br /&gt;
* Download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.zip, extract and build both dynamic and static libraries using solution files in win32/VS2010&lt;br /&gt;
* Download https://vorboss.dl.sourceforge.net/project/faac/faad2-src/faad2-2.8.0/faad2-2.8.8.tar.gz, extract and build projects &#039;&#039;&#039;libfaad&#039;&#039;&#039; and &#039;&#039;&#039;libfaad2_dll&#039;&#039;&#039; using the solution file in project/msvc. To build 64-bit libraries, create a new configuration&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=402</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=402"/>
		<updated>2018-06-19T08:25:19Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
* Download http://downloads.xiph.org/releases/ogg/libogg-1.3.3.zip, extract and build both dynamic and static libraries using solution files in win32/VS2015&lt;br /&gt;
* Download http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.zip, extract and build both dynamic and static libraries using solution files in win32/VS2010&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=401</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=401"/>
		<updated>2018-06-19T06:34:32Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using the solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
* Download ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz and build the library using the project file in msvc++. To build a 64-bit library, create a new configuration and replace preprocessor definition FPM_INTEL with FPM_64BIT&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=400</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=400"/>
		<updated>2018-06-19T06:27:15Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
* Download and extract http://kcat.strangesoft.net/openal-binaries/openal-soft-1.18.2-bin.zip&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=399</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=399"/>
		<updated>2018-06-19T06:22:54Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
* Download https://download.savannah.gnu.org/releases/freetype/ft291.zip and build the library using CMake&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=398</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=398"/>
		<updated>2018-06-19T06:21:27Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=397</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=397"/>
		<updated>2018-06-19T06:21:10Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip and extract development libraries&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=396</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=396"/>
		<updated>2018-06-19T06:20:33Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
* Download and extract SDL2 development libraries from https://www.libsdl.org/release/SDL2-devel-2.0.8-VC.zip&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=395</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=395"/>
		<updated>2018-06-19T06:17:44Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
* Download and install precompiled Boost libraries from https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=394</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=394"/>
		<updated>2018-06-19T06:12:48Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library by following instructions in win32/Readme.txt&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=393</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=393"/>
		<updated>2018-06-19T06:12:22Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv and build the library using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build the library using CMake&lt;br /&gt;
* Download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build the library using solution file in windows/vs2017&lt;br /&gt;
* Download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build the library using instructions in win32/Readme.txt&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=392</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=392"/>
		<updated>2018-06-19T06:05:42Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv, build using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip, extract and build using CMake&lt;br /&gt;
* liblzma: download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build using solution file in windows/vs2017&lt;br /&gt;
* libxml2: download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build using NMake&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=391</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=391"/>
		<updated>2018-06-19T06:05:27Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from https://github.com/win-iconv/win-iconv, build using CMake&lt;br /&gt;
* Download https://zlib.net/zlib1211.zip zlib1211.zip, extract and build using CMake&lt;br /&gt;
* liblzma: download https://tukaani.org/xz/xz-5.2.4.tar.gz, extract and build using solution file in windows/vs2017&lt;br /&gt;
* libxml2: download ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz, extract and build using NMake&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=390</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=390"/>
		<updated>2018-06-19T06:03:46Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* Download source from [[https://github.com/win-iconv/win-iconv]], build using CMake&lt;br /&gt;
* Download [[https://zlib.net/zlib1211.zip zlib1211.zip]], extract and build using CMake&lt;br /&gt;
* liblzma: download [[https://tukaani.org/xz/xz-5.2.4.tar.gz]], extract and build using solution file in windows/vs2017&lt;br /&gt;
* libxml2: download [[ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz]], extract and build using NMake&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=389</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=389"/>
		<updated>2018-06-19T06:03:21Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* iconv: download source from [https://github.com/win-iconv/win-iconv win-iconv], build using CMake&lt;br /&gt;
* zlib: download [https://zlib.net/zlib1211.zip zlib1211.zip], extract and build using CMake&lt;br /&gt;
* liblzma: download [https://tukaani.org/xz/xz-5.2.4.tar.gz xz-5.2.4.tar.gz], extract and build using solution file in windows/vs2017&lt;br /&gt;
* libxml2: download [[ftp://xmlsoft.org/libxml2/libxml2-2.9.8.tar.gz]], extract and build using NMake&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=388</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=388"/>
		<updated>2018-06-19T05:55:04Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Guide for Visual Studio 2017 users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* iconv: download source from [https://github.com/win-iconv/win-iconv win-iconv], build using CMake&lt;br /&gt;
* zlib: download [https://zlib.net/zlib1211.zip zlib1211.zip], extract and build using CMake&lt;br /&gt;
* liblzma: download [https://tukaani.org/xz/xz-5.2.4.tar.gz xz-5.2.4.tar.gz], extract and build using solution file in windows/vs2017&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=387</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=387"/>
		<updated>2018-06-19T05:54:35Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
===  Guide for Visual Studio 2017 users ===&lt;br /&gt;
&lt;br /&gt;
* iconv: download source from [https://github.com/win-iconv/win-iconv], build using CMake&lt;br /&gt;
* zlib: download [https://zlib.net/zlib1211.zip], extract and build using CMake&lt;br /&gt;
* liblzma: download [https://tukaani.org/xz/xz-5.2.4.tar.gz], extract and build using solution file in windows/vs2017&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=386</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=386"/>
		<updated>2018-06-19T05:39:53Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
Step-by-step guide to installing dependencies for Visual Studio 2017 users on Windows:&lt;br /&gt;
&lt;br /&gt;
# Download iconv implementation from [https://github.com/win-iconv/win-iconv win-iconv] and build it using CMake&lt;br /&gt;
&lt;br /&gt;
  mkdir build &amp;amp;&amp;amp; cd build &amp;amp;&amp;amp; cmake .. -G &amp;quot;Visual Studio 15 2017 x64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=385</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=385"/>
		<updated>2018-06-19T05:37:19Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
Step-by-step guide to installing dependencies for Visual Studio users on Windows:&lt;br /&gt;
&lt;br /&gt;
# Download iconv implementation from [https://github.com/win-iconv/win-iconv win-iconv] and build it with CMake&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=384</id>
		<title>Compiling xoreos</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Compiling_xoreos&amp;diff=384"/>
		<updated>2018-06-19T05:35:34Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page gives a few tips and pointers on how to compile xoreos on various platforms.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Compiler and build system==&lt;br /&gt;
&lt;br /&gt;
xoreos is written in C++, so a C++ compiler, like [https://gcc.gnu.org/ GCC] or [http://clang.llvm.org/ clang] is required. It has two build systems: [https://en.wikipedia.org/wiki/GNU_build_system Autotools] ([https://www.gnu.org/software/autoconf/ Autoconf], [https://www.gnu.org/software/automake/ Automake] and [https://www.gnu.org/software/libtool/ Libtool]) and [https://en.wikipedia.org/wiki/CMake CMake]. Use whichever you feel more comfortable with.&lt;br /&gt;
&lt;br /&gt;
===GNU/Linux===&lt;br /&gt;
&lt;br /&gt;
On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install libc6-dev g++ make autoconf automake libtool gettext cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install the necessary packages with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo pacman -S base-devel cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On other distributions, it should work similarily.&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
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&#039;re compiling SDL2 yourself.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you&#039;re using [http://www.mingw.org/ MinGW], however, you&#039;re free to choose either build system.&lt;br /&gt;
&lt;br /&gt;
On Windows, it is recommended that instead of Visual Studio, you use [https://msys2.github.io/ MSYS2] together with [https://mingw-w64.org/ Mingw-w64] (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos&#039; library dependencies very easily.&lt;br /&gt;
&lt;br /&gt;
You can install the 32-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-i686-toolchain mingw-w64-i686-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install the 64-bit toolchain in MSYS2 with&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;pacman -S base-devel git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libraries==&lt;br /&gt;
&lt;br /&gt;
xoreos uses the following libraries to function:&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Iconv iconv]&lt;br /&gt;
* [http://www.zlib.net/ zlib] (&amp;gt;= 1.2.3.4)&lt;br /&gt;
* [http://tukaani.org/xz/ liblzma] (&amp;gt;= 5.0.5)&lt;br /&gt;
* [http://www.xmlsoft.org/ libxml2] (&amp;gt;= 2.8.0)&lt;br /&gt;
* [http://www.boost.org/ Boost] (&amp;gt;= 1.53.0)&lt;br /&gt;
** Boost.Utility&lt;br /&gt;
** Boost.StringAlgo&lt;br /&gt;
** Boost.System&lt;br /&gt;
** Boost.Filesystem&lt;br /&gt;
** Boost.Regex&lt;br /&gt;
** Boost.Unordered&lt;br /&gt;
** Boost.Hash&lt;br /&gt;
** Boost.Date_Time&lt;br /&gt;
** Boost.Function&lt;br /&gt;
** Boost.Bind&lt;br /&gt;
** Boost.Uuid&lt;br /&gt;
** Boost.Smart_Ptr&lt;br /&gt;
** Boost.ScopeExit&lt;br /&gt;
** Boost.Atomic&lt;br /&gt;
** Boost.Locale&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenGL OpenGL] (&amp;gt;= 2.1)&lt;br /&gt;
* [https://www.libsdl.org/ SDL2] (&amp;gt;= 2.0.0)&lt;br /&gt;
* [http://www.freetype.org/ FreeType 2] (&amp;gt;= 2.4.0 (libtool number &amp;gt;= 11.0.5))&lt;br /&gt;
* [https://en.wikipedia.org/wiki/OpenAL OpenAL] (&amp;gt;= 1.12) (&#039;&#039;&#039;See below&#039;&#039;&#039;)&lt;br /&gt;
* [http://www.underbit.com/products/mad/ MAD] (&amp;gt;= 0.15.1b)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libogg] (&amp;gt;= 1.2.0)&lt;br /&gt;
* [https://www.xiph.org/downloads/ libvorbis] (&amp;gt;= 1.3.1)&lt;br /&gt;
* [http://www.audiocoding.com/faad2.html libfaad] (&amp;gt;= 2.7)&lt;br /&gt;
* [https://www.xvid.org/ libxvidcore] (&amp;gt;= 1.2.2)&lt;br /&gt;
&lt;br /&gt;
On Debian-based GNU/Linux distribution (including Ubuntu), you should be able to install these libraries and their development packages with&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install zlib1g-dev liblzma-dev libxml2-dev libboost-all-dev libsdl2-dev \&lt;br /&gt;
     libfreetype6-dev libopenal-dev libmad0-dev libogg-dev libvorbis-dev libfaad-dev \&lt;br /&gt;
     libxvidcore-dev&lt;br /&gt;
&lt;br /&gt;
On Arch Linux, you can install these dependencies with&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S zlib xz libxml2 boost boost-libs sdl2 freetype2 openal libmad libogg \&lt;br /&gt;
     libvorbis faad2 xvidcore&lt;br /&gt;
&lt;br /&gt;
Other GNU/Linux distributions should work similarily.&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 32-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-i686-zlib mingw-w64-i686-xz mingw-w64-i686-libxml2 \&lt;br /&gt;
     mingw-w64-i686-boost mingw-w64-i686-SDL2 mingw-w64-i686-freetype \&lt;br /&gt;
     mingw-w64-i686-openal mingw-w64-i686-libmad mingw-w64-i686-libogg \&lt;br /&gt;
     mingw-w64-i686-libvorbis  mingw-w64-i686-faad2 mingw-w64-i686-xvidcore&lt;br /&gt;
&lt;br /&gt;
On Windows, if you&#039;re using MSYS2, you can install these dependencies for 64-bit with&lt;br /&gt;
&lt;br /&gt;
  pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-xz mingw-w64-x86_64-libxml2 \&lt;br /&gt;
     mingw-w64-x86_64-boost mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype \&lt;br /&gt;
     mingw-w64-x86_64-openal mingw-w64-x86_64-libmad mingw-w64-x86_64-libogg \&lt;br /&gt;
     mingw-w64-x86_64-libvorbis  mingw-w64-x86_64-faad2 mingw-w64-x86_64-xvidcore&lt;br /&gt;
&lt;br /&gt;
Windows users not using MSYS2 will have to visit each website manually and download a precompiled version, or, if not available, download the source and compile the library themselves.&lt;br /&gt;
&lt;br /&gt;
Step-by-step guide to installing dependencies for Visual Studio users:&lt;br /&gt;
&lt;br /&gt;
# Download and build [https://github.com/win-iconv/win-iconv win-iconv] using CMake&lt;br /&gt;
&lt;br /&gt;
=== A note on OpenAL ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, we&#039;re using Apple&#039;s OpenAL implementation, so OpenAL does not need to be installed separately there.&lt;br /&gt;
&lt;br /&gt;
On both GNU/Linux and Microsoft Windows, we require [http://kcat.strangesoft.net/openal.html OpenAL Soft]. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at [http://openal.org/ http://openal.org/], but it&#039;s unfortunately old, outdated and abandoned. We do not recommend its use.&lt;br /&gt;
&lt;br /&gt;
Likewise, on NetBSD and other systems using pkgsrc, you should use [http://pkgsrc.se/audio/openal-soft openal-soft] instead of [http://pkgsrc.se/audio/openal openal].&lt;br /&gt;
&lt;br /&gt;
==Compiling xoreos==&lt;br /&gt;
&lt;br /&gt;
Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.&lt;br /&gt;
&lt;br /&gt;
===autotools===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;./autogen.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the src subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional ./configure flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* --with-werror &amp;amp;nbsp;&lt;br /&gt;
|| Compile with -Werror&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --without-warnings &amp;amp;nbsp;&lt;br /&gt;
|| Compile without the extra warnings enabled&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --with-lto &amp;amp;nbsp;&lt;br /&gt;
|| Compile with link-time optimization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* --disable-external-glew &amp;amp;nbsp;&lt;br /&gt;
|| Always compile against the internal GLEW libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===CMake ===&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cmake . &amp;amp;&amp;amp; make&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary can be found in the bin subdirectory, called &amp;quot;xoreos&amp;quot; or, on Windows, &amp;quot;xoreos.exe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.cmake.org/runningcmake/ Running CMake] on the CMake website for in-depth information on invoking CMake.&lt;br /&gt;
&lt;br /&gt;
Optional, non-conventional cmake flags:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
* -DBoost_USE_STATIC_LIBS=on &amp;amp;nbsp;&lt;br /&gt;
|| Link Boost statically instead of dynamically&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* -DGLEW_INTERNAL=on &amp;amp;nbsp;&lt;br /&gt;
|| Always use internal GLEW library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The CMake&#039;s stock FindBoost.cmake doesn&#039;t correctly detect dependencies when linking statically. In this case, xoreos might fail to link, missing symbols for ICU, when linking Boost statically.&lt;br /&gt;
&lt;br /&gt;
Moreover, if you&#039;re running GNU/Linux and have wrapper scripts installed that force the building of &amp;quot;hardened&amp;quot; binaries (often called &amp;quot;hardening-wrapper&amp;quot;, but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option &amp;quot;-fPIE&amp;quot;, which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).&lt;br /&gt;
&lt;br /&gt;
==Unit tests==&lt;br /&gt;
&lt;br /&gt;
On both build systems,&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;make check&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
compiles and runs our unit tests.&lt;br /&gt;
&lt;br /&gt;
==Running xoreos==&lt;br /&gt;
&lt;br /&gt;
Please have a look at the [[Running xoreos]] page.&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=383</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=383"/>
		<updated>2018-06-18T01:10:58Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement the core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games as well as some areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Object selection [?:Nostritius]&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Party management&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions [1:seedhartha]&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup [2:seedhartha]&lt;br /&gt;
** Scripted animations [3:seedhartha]&lt;br /&gt;
** Continuous flow [4:seedhartha]&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based action queue&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
** Force Powers (defensive)&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers (offensive)&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=380</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=380"/>
		<updated>2018-06-17T10:22:04Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games and areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Object selection [?:Nostritius]&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Party management&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions [1:seedhartha]&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup [2:seedhartha]&lt;br /&gt;
** Scripted animations [3:seedhartha]&lt;br /&gt;
** Continuous flow [4:seedhartha]&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based action queue&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
** Force Powers (defensive)&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers (offensive)&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=379</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=379"/>
		<updated>2018-06-17T10:18:42Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games and areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Object selection [?:Nostritius]&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Party management&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions [1:seedhartha]&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup [2:seedhartha]&lt;br /&gt;
** Scripted animations [3:seedhartha]&lt;br /&gt;
** Continuous flow [4:seedhartha]&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based action queue&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=378</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=378"/>
		<updated>2018-06-17T10:10:53Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games and areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Party management&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions [1:seedhartha]&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup [2:seedhartha]&lt;br /&gt;
** Scripted animations [3:seedhartha]&lt;br /&gt;
** Continuous flow [4:seedhartha]&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based action queue&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=377</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=377"/>
		<updated>2018-06-17T09:48:17Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games and areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Pathfinding [?:Supermanu]&lt;br /&gt;
** Party management&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions [4:seedhartha]&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup [1:seedhartha]&lt;br /&gt;
** Scripted animations [2:seedhartha]&lt;br /&gt;
** Continuous flow [3:seedhartha]&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based action queue&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=376</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=376"/>
		<updated>2018-06-17T09:45:42Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games and areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Text in square brackets represents feature priority and who it is assigned to.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Pathfinding&lt;br /&gt;
** Party management&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions [4:seedhartha]&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup [1:seedhartha]&lt;br /&gt;
** Scripted animations [2:seedhartha]&lt;br /&gt;
** Continuous flow [3:seedhartha]&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based action queue&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=375</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=375"/>
		<updated>2018-06-17T09:44:01Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: /* Phase 1 - Necessities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games and areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Numbers in square brackets represent the order in which we believe these features should be implemented.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Pathfinding&lt;br /&gt;
** Party management&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions [4|seedhartha]&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup [1|seedhartha]&lt;br /&gt;
** Scripted animations [2|seedhartha]&lt;br /&gt;
** Continuous flow [3|seedhartha]&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based action queue&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=374</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=374"/>
		<updated>2018-06-17T09:42:45Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games and areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Numbers in square brackets represent the order in which we believe these features should be implemented.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Pathfinding&lt;br /&gt;
** Party management&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions [4]&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Camera setup [1]&lt;br /&gt;
** Scripted animations [2]&lt;br /&gt;
** Continuous flow [3]&lt;br /&gt;
** Activation distance&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based action queue&lt;br /&gt;
** Normal attacks&lt;br /&gt;
** Death, body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Stores&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Alien/droid voice over in KotOR 2&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Force Powers&lt;br /&gt;
** Grenades&lt;br /&gt;
** Mines&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=373</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=Roadmap&amp;diff=373"/>
		<updated>2018-06-17T09:09:10Z</updated>

		<summary type="html">&lt;p&gt;Seedhartha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KotOR / KotOR 2 ==&lt;br /&gt;
&lt;br /&gt;
Number one priority is to implement core gameplay of the original games, i.e., exploration, conversations/cutscenes, combat and GUI, which implies implementation of resource management, graphics, scripting, RPG and sound systems. Then goes the extra stuff, e.g., minigames, auxiliary menus, graphics improvements, networking, etc. Below is a rough list of features required to achieve feature parity with the original games and areas for improvement.&lt;br /&gt;
&lt;br /&gt;
Numbers in square brackets represent the order in which we believe these features should be implemented.&lt;br /&gt;
&lt;br /&gt;
=== Phase 1 - Necessities ===&lt;br /&gt;
&lt;br /&gt;
* General&lt;br /&gt;
** Pathfinding&lt;br /&gt;
** Party members (switch between, follower behavior)&lt;br /&gt;
&lt;br /&gt;
* Scripting&lt;br /&gt;
** Implement missing functions&lt;br /&gt;
&lt;br /&gt;
* Conversations/cutscenes&lt;br /&gt;
** Scripted characters animations&lt;br /&gt;
** Camera setup&lt;br /&gt;
** Activation distance&lt;br /&gt;
** Alien and droid voice over in KotOR 2&lt;br /&gt;
** Continuous flow when there are no selectable replies&lt;br /&gt;
&lt;br /&gt;
* Combat&lt;br /&gt;
** Turn based game mode, action queue&lt;br /&gt;
** Action execution (closing in, animation)&lt;br /&gt;
** DnD based hit chance and damage calculations&lt;br /&gt;
** Death + body bags&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Character generation&lt;br /&gt;
** Save/load&lt;br /&gt;
** In-game&lt;br /&gt;
*** Equip&lt;br /&gt;
*** Inventory&lt;br /&gt;
*** Level up&lt;br /&gt;
*** Party selection&lt;br /&gt;
&lt;br /&gt;
=== Phase 2 - Auxiliary  ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** In-game&lt;br /&gt;
*** Character sheet&lt;br /&gt;
*** Abilities&lt;br /&gt;
*** Messages&lt;br /&gt;
*** Quests&lt;br /&gt;
*** Map&lt;br /&gt;
&lt;br /&gt;
=== Phase 3 - Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
* GUI&lt;br /&gt;
** Main menu&lt;br /&gt;
*** Movies&lt;br /&gt;
*** Options&lt;br /&gt;
** In-game&lt;br /&gt;
*** Options&lt;br /&gt;
&lt;br /&gt;
* Minigames&lt;br /&gt;
** Swoop racing&lt;br /&gt;
** Pazaak&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
** Shader based skeletal animation&lt;/div&gt;</summary>
		<author><name>Seedhartha</name></author>
	</entry>
</feed>