<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
	<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
	<meta name="keywords" content="osirion, free, game, space, trade, combat, freelancer, privateer, opengl, radiant, gpl, creative commons">
	<link rel="stylesheet" type="text/css" href="osirion.css">
	<link rel="icon" type="image/png" href="http://osirion.org/icon.png">
	<title>Project::OSiRiON - Building from source code</title>
</head>

<body>
<div id="page">

<!-- header and menu ======================================= -->

<table class = "osirionmenu" width="100%" cellpadding="0" cellspacing="0"  border="0">
<tr>
	<td>
		<a href="http://osirion.org"><img class="osirionmenu" src="images/banner.png" alt="Project::OSiRiON"></a>
	</td>
</tr><tr>
	<td class="osirionmenu">
			<a class="osirionmenu" href="http://osirion.org/">Home</a> .
			<a class="osirionmenu" href="http://osirion.org/index.php?page=downloads">Downloads</a> .
			<a class="osirioncurrent" href="index.html">Documentation</a> .
			<a class="osirionmenu" href="http://osirion.org/forum/">Forum</a> .
			<a class="osirionmenu" href="http://osirion.org/wiki/">Wiki</a> .
			<a class="osirionmenu" href="http://osirion.org/tracker/">Tracker</a>
	</td>
</tr>
</table>

<div id="content">

<h1>Building from source code</h1>

<p>
	To build Project::OSiRiON from source code you need a working C++ compiler
	and have the necessary libraries and header files installed. 
	The official binaries are compiled with gcc on linux, and mingw on windows.
</p>
	<ul>
		<li><a href="#requirements">Requirements</a>
		<li><a href="#building_ubuntu">Building on Ubuntu Linux</a>
		<li><a href="#building_windows">Building on Windows</a>
		<li><a href="#building_bullet">Builiding the Bullet physics library</a>
		<li><a href="#download_source">Obtaining the source code</a>
		<li><a href="#configure">Configuring the source code</a>
		<li><a href="#building">Building the binaries</a>
		<li><a href="#download_data">Obtaining the game data</a>
		<li><a href="#running">Running</a>
	</ul>

<!-- System requirements =================================== -->

<h2 id="requirements">Requirements</h2>

<p>
	The following packages are required to build the the dedicated server: 
</p>
<ul>
	<li>zlib
	<li><a href="http://www.bulletphysics.com/">Bullet physics library</a>
	<li>ncurses or pdcurses (optional) 
</ul>
<p>
	Additionally, the client requires:
</p>
<ul>
	<li>libjpeg 
	<li>libpng 
	<li>libSDL 1.2 
	<li>OpenGL 
	<li>OpenAL or OpenAL Soft 
	<li>Ogg Vorbis
</ul>
<p>
	You will also need gcc, GNU make, automake and libtool.
</p>


<!-- Building on Ubuntu Linux ============================== -->

<h2 id="building_ubuntu">Building on Ubuntu Linux</h2>

<p>
	To build the game on Ubuntu, you can install the required tools and dependencies by running the following commands in a terminal window:
</p>
<pre>
sudo su -
apt-get install autoconf automake libtool subversion
apt-get install libjpeg8 libjpeg8-dev
apt-get install libpng3 libpng3-dev
apt-get install libvorbisfile3 libvorbis-dev
apt-get install libglu1-mesa-dev
apt-get install libopenal1 libopenal-dev
apt-get install libsdl1.2debian libsdl1.2-dev
</pre>

<!-- Building on Windows =================================== -->

<h2 id="building_windows">Building on Windows</h2>

<p>
	You can build the game on windows using a MinGW/MSYS environment. You can use
	the instructions in <a href="http://ingar.satgnu.net/devenv/mingw32/">this document</a>
	to create a complete environment, capable of building the Project::OSiRiON source code. 
</p>

<!-- Building the Bullet physics library =========================== -->

<h2 id="building_bullet">Building the Bullet physics library</h2>

<p>
	The engine uses the <a href="http://www.bulletphysics.com/">Bullet Physics Library</a>
	for physics support. You can download the bullet source code here:
	<ul>
		<li><a href="http://code.google.com/p/bullet/downloads/list">http://code.google.com/p/bullet/downloads/list</a>
	</ul>
</p>
<p>
	To download and install the library:
</p>
<pre>
wget http://bullet.googlecode.com/files/bullet-2.79-rev2440.tgz
tar zxvf bullet-2.79-rev2440.tgz
cd bullet-2.79
./autogen.sh
./configure --prefix=/usr/local --disable-demos
make
sudo make install
cd ..
</pre>
<p>
	If you do not want to install bullet in <span class="fixed">/usr/local</span>,
	you can edit the <span class="fixed">--prefix</span> option here.
	Edit the the <span class="fixed">--with-bullet</span> option
	when configuring the Project::OSiRiON source code accordingly.
</p>
<p>
	It is recommended you use this specific version of the library, 
	physics behaviour could be different in other versions.
</p>

<!-- Obtaining the source code ===================================== -->

<h2 id="download_source">Obtaining the source code</h2>

<p>
	Download the source package from the website:
</p>
<ul>
	<li><a href="http://osirion.org/files/osirion-latest-src.tar.bz2">osirion-latest-src.tar.bz2</a>
</ul>
<p>
	Unzip the package into a directory of your liking and enter the new directory:
</p>
<div class="fixed">
	wget http://osirion.org/files/osirion-0.2.1-svn1082-src.tar.bz2<br>
	tar xf osirion-0.2.1-svn1082-src.tar.bz2<br>
	cd osirion-0.2.1-svn1082-src<br>
</div>

<!-- Configuring the source code =================================== -->

<h2 id="configure">Configuring the source code</h2>
<p>
	Enter the new directory and configure the source code:
</p>
<pre>
./configure --with-bullet=/usr/local --enable-static-bullet
</pre>
<p>
	If you do not need the client and want to build the dedicated server only you can pass 
	the <span class="fixed">--without-client</span> option to configure:
</p>
<pre>
./configure --with-bullet=/usr/local --enable-static-bullet --without-client
</pre>
<p>
	If configure finds ncurses or pdcurses, the dedicated server will use this library and a have a curses console.
	To disable curses detection, pass the <span class="fixed">--without-curses</span> option to configure. 
</p>
<pre>
./configure --with-bullet=/usr/local --enable-static-bullet --without-client --without-curses
</pre>
<p>
	You can use the <span class="fixed">--help</span> option to get a list of all available options: 
</p>
<pre>
./configure --help
</pre>

<!-- Building the binaries ========================================== -->

<h2 id="building">Building the binaries</h2>
<p>
	Compile the source code:
</p>
<pre>
make
</pre>
<p>
	The binaries will be built in the <span class="fixed">src/</span> subdirectory of the main distribution.
</p>
<p>
	<b>Important</b>: <span class="fixed">make install</span> is not supported. Results are unpredictable.
</p>

<!-- Obtaining the game data ======================================= -->

<h2 id="download_data">Obtaining the game data</h2>
<p>
	Download the game data package from the website:
</p>
<ul>
	<li><a href="http://osirion.org/files/osirion-latest-data.zip">osirion-latest-data.zip</a>
</ul>
<p>
	Unzip the package into the osirion directory. 
	The game data should be located in the <span class="fixed">data/</span> subdirectory of the main distribution.
</p>

<!-- Running ======================================================= -->

<h2 id="running">Running</h2>
<p>
	The client and the dedicated server will look for game data in the <span class="fixed">data</span> subdirectory 
	of the current working directory. Since the binaries are build in the <span class="fixed">src</span> you will
	have start them with the <span class="fixed">src/</span> prefix.
</p>
<p>
	To start the client:
</p>
<pre>
src/osirion
</pre>
<p>
	If the client opens a new window and immediatly close it again, it probably could not find
	the game data and exited. Check your installation.
</p>
<p>
	To start the dedicated server:
</p>
<pre>
src/osiriond
</pre>
<p>
	If you are using windows, the binaries will be called <span class="fixed">osirion.exe</span> and <span class="fixed">osiriond.exe</span>.
</p>
<!-- footer ================================================ -->

</div> <!-- div content -->

<div id="footer">

<div class="floatright">
	<a href="http://validator.w3.org/check?uri=referer">
	<img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Strict" height="31" width="88">		
	</a>
</div>
<p>
	Copyright &copy; 2007-2012 Project::OSiRiON
</p>
</div> <!-- div id=footer> -->

</div> <!-- div page> -->

</div>
</body>
</html>