<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://backup.witchspacewiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Day</id>
	<title>Elite Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://backup.witchspacewiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Day"/>
	<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php/Special:Contributions/Day"/>
	<updated>2026-04-12T11:09:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47116</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47116"/>
		<updated>2015-03-24T18:44:09Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Getting the source code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
== Cloning or forking? ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
We used to use a svn repository, but this one isn't maintained anymore.&lt;br /&gt;
&lt;br /&gt;
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
== Installing git ==&lt;br /&gt;
&lt;br /&gt;
We need git for this. &lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Installing git depends on your distribution. For ubuntu:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (alternative to cloning the master branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Just go into your oolite directory and do:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47115</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47115"/>
		<updated>2015-03-24T18:43:27Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Cloning or forking? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
== Cloning or forking? ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
We used to use a svn repository, but this one isn't maintained anymore.&lt;br /&gt;
&lt;br /&gt;
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
== Installing git ==&lt;br /&gt;
&lt;br /&gt;
We need git for this. &lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Installing git depends on your distribution. For ubuntu:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (alternative to cloning the master branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Just go into your oolite directory and do:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47114</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47114"/>
		<updated>2015-03-24T18:41:35Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
== Cloning or forking? ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
== Installing git ==&lt;br /&gt;
&lt;br /&gt;
We need git for this. &lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Installing git depends on your distribution. For ubuntu:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (alternative to cloning the master branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Just go into your oolite directory and do:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47113</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47113"/>
		<updated>2015-03-24T18:40:55Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
== Cloning or forking? ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
== Installing git ==&lt;br /&gt;
&lt;br /&gt;
We need git for this. &lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Installing git depends on your distribution. For ubuntu:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (alternative to cloning the master branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47112</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47112"/>
		<updated>2015-03-24T18:40:30Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Getting the code by cloning the master branch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
== Cloning or forking? ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
== Installing git ==&lt;br /&gt;
&lt;br /&gt;
We need git for this. &lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Installing git depends on your distribution. For ubuntu:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (alternative to cloning the master branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47111</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47111"/>
		<updated>2015-03-24T18:39:49Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Installing git */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
== Cloning or forking? ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
== Installing git ==&lt;br /&gt;
&lt;br /&gt;
We need git for this. &lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Installing git depends on your distribution. For ubuntu:&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (alternative to cloning the master branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47110</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47110"/>
		<updated>2015-03-24T18:39:18Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Getting the code by forking your own branch (optional) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
== Cloning or forking? ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
== Installing git ==&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (alternative to cloning the master branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47109</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47109"/>
		<updated>2015-03-24T18:38:35Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Getting the code by cloning the master branch (alternative to forking your own branch) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
== Cloning or forking? ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
== Installing git ==&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (optional) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47108</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47108"/>
		<updated>2015-03-24T18:38:07Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
== Cloning or forking? ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
It is possible either to fork (create a copy of) your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
== Installing git ==&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (optional) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch (alternative to forking your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47107</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47107"/>
		<updated>2015-03-24T18:34:45Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Fetching your branch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
== Installing git ==&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (optional) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch (alternative to forking your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47106</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47106"/>
		<updated>2015-03-24T18:33:43Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
== Installing git ==&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (optional) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch (alternative to forking your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47105</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47105"/>
		<updated>2015-03-24T18:33:07Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Fetching your branch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (optional) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch (alternative to forking your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47104</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47104"/>
		<updated>2015-03-24T18:24:17Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (optional) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch (alternative to forking your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
Some use Emacs.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47103</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47103"/>
		<updated>2015-03-24T18:21:38Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Cloning the master branch (alternative to forking your own branch) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (optional) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the code by cloning the master branch (alternative to forking your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47102</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47102"/>
		<updated>2015-03-24T18:21:21Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Forking your own branch (optional) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Getting the code by forking your own branch (optional) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cloning the master branch (alternative to forking your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47101</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47101"/>
		<updated>2015-03-24T18:20:41Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Cloning the master branch (alternative to forking your own branch) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Forking your own branch (optional) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cloning the master branch (alternative to forking your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github. First do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then, in the directory this creates, do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47100</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47100"/>
		<updated>2015-03-24T18:15:13Z</updated>

		<summary type="html">&lt;p&gt;Day: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Forking your own branch (optional) =&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cloning the master branch (alternative to forking your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github.  Use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to fetch the various submodules.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47099</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47099"/>
		<updated>2015-03-24T18:09:24Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Building Oolite-Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Versioning (optional) =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cloning the master branch (alternative to setting up your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github.  Use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to fetch the various submodules.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
=== Getting the source code ===&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47098</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47098"/>
		<updated>2015-03-24T18:02:15Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Versioning (optional) =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cloning the master branch (alternative to setting up your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github.  Use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to fetch the various submodules.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building Oolite-Linux ==&lt;br /&gt;
&lt;br /&gt;
You will need the following components:&lt;br /&gt;
* The GNU Objective-C compiler (gcc-objc). Your distribution should have this available.&lt;br /&gt;
* [http://www.gnustep.org GNUstep Startup]. Your distro may provide the appropriate GNUstep development libraries.&lt;br /&gt;
* SDL development libraries including SDL_mixer and SDL_image. All Linux distros seem to have the main SDL library, but some do not seem to have SDL_image. This can be downloaded from [http://www.libsdl.org the SDL Library Development website].&lt;br /&gt;
* OpenGL development libraries - your distribution will have these.&lt;br /&gt;
* To build Autopackages, you will also need the Autopackage development kit, which is available at [http://autopackage.org Autopackage.org]&lt;br /&gt;
&lt;br /&gt;
The source code for these dependencies is also available at [ftp://ftp.alioth.net]&lt;br /&gt;
&lt;br /&gt;
You may also want the following optional component:&lt;br /&gt;
* espeak, if you want speech (1.73 &amp;amp; later). Your distribution should have this; otherwise, see [http://espeak.sourceforge.net espeak.sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
It is recommended you use git to download the source tree. First do&lt;br /&gt;
 git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
to get the main repository. Then, in the directory this creates, do&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
to pull in various other components such as dependencies, binary resources, and so on. The old SVN repository is no longer being updated.&lt;br /&gt;
&lt;br /&gt;
Once you have a source tree, you can build it by just typing 'make'. To run the newly-built code, then type 'openapp oolite'. If you want to build the Autopackage .package file, type 'makeinstaller'. This will leave a .package file in the build directory. You can then run this file to install the game.&lt;br /&gt;
&lt;br /&gt;
=== Notes about the build process ===&lt;br /&gt;
&lt;br /&gt;
* The makefile is called GNUmakefile rather than 'Makefile'; this seems to be the convention for GNUstep applications. If you are not using GNUmake, then you will probably need to 'make -f GNUmakefile'. However, it is recommended that you install gmake if you are using a platform (BSD) that doesn't include GNU make (it's a dependency for GNUstep anyway). The build process first builds all the Objective-C source (source code files end in '.m' which is the standard file extension for Objective-C) into the executable oolite.app/oolite and then copies the data into oolite.app/Contents.&lt;br /&gt;
&lt;br /&gt;
* A new dependency on the SpiderMonkey JavaScript v1.70 library was introduced on SVN revision 1157. This requires some attention regarding the Linux build process. The full instructions on building the game successfully with JavaScript 1.70 on Debian can be found in the following forum post:&amp;lt;br /&amp;gt;http://aegidian.org/bb/viewtopic.php?p=42188&amp;amp;highlight=#42188&lt;br /&gt;
&lt;br /&gt;
* As of 1.73, a new 'Makefile' has been added to the project to simplify building Oolite.  Assuming your system has all required build dependencies installed (as outlined above), you can build debug and optimised copies of Oolite with the following commands.  The included Spidermonkey dependency is automatically built as well.  For a full list of targets, use 'make -f Makefile help'.&lt;br /&gt;
** make -f Makefile debug&lt;br /&gt;
** make -f Makefile release&lt;br /&gt;
&lt;br /&gt;
=== Notes about GNUstep ===&lt;br /&gt;
&lt;br /&gt;
Several bugs have been found with gnustep-base1.19.3 which affect Oolite to a greater or lesser extent.  As older versions of several popular Linux Distributions ship with this version of GNUstep, it is highly recommended that you compile and install a known good version of GNUstep for development. gnustep-base1.18 is known to be good.  The current trunk (gnustep-base1.21.1) appears to also be ok.&lt;br /&gt;
&lt;br /&gt;
This [http://aegidian.org/bb/viewtopic.php?t=8008&amp;amp;highlight= forum post] details how to build and install gnustep for developing Oolite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Running_Oolite-Windows&amp;diff=47097</id>
		<title>Running Oolite-Windows</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Running_Oolite-Windows&amp;diff=47097"/>
		<updated>2015-03-24T10:16:58Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Old Building Oolite from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The Windows port of Oolite is built from the same source as the [[Running Oolite-Mac|Mac OS X]] and [[Running Oolite-Linux|Linux]] versions, and has all the features of those versions.&lt;br /&gt;
&lt;br /&gt;
All OXPs should be compatible with the Windows port.&lt;br /&gt;
&lt;br /&gt;
==Getting and installing the game==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 2px solid  #000033; background-color: #ffffff; padding: .1em; cellpadding: 0; cellspacing: 0; color: #000000;&amp;quot;&lt;br /&gt;
|'''The latest release can be downloaded from [http://developer.berlios.de/project/showfiles.php?group_id=3577 the BerliOS project].''' New releases are announced on [http://www.aegidian.org/bb/viewforum.php?f=8 the Oolite forum].&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
The latest recommended release, 1.77, or the last official stable release, 1.76.1, can be downloaded from [http://www.oolite.org/download.shtml Oolite.org].&lt;br /&gt;
&lt;br /&gt;
To install, run the installer that you have just downloaded.&lt;br /&gt;
&lt;br /&gt;
The game has been tested on Windows 2000, XP, Vista and Windows 7. This game uses OpenGL, and you are advised to run the latest 3D graphics drivers from your 3D card manufacturer.&lt;br /&gt;
'''It will not run on the DOS-extender versions of Windows''' such as Windows 95, 98 or ME.&lt;br /&gt;
&lt;br /&gt;
===Important note for Vista users!===&lt;br /&gt;
&amp;lt;h5&amp;gt;Summary:&amp;lt;/h5&amp;gt;&lt;br /&gt;
DATA LOSS and OXP MALFUNCTION can appear if you install an early version of Oolite (1.65 - 1.72.x) on Vista. '''Oolite 1.73 and later releases have corrected this issue''' by using a different default installation directory, instead of one inside program files, as before.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Do This&amp;lt;/h5&amp;gt;&lt;br /&gt;
When asked by the installer, change the Oolite install directory to a different location, one outside C:\Program Files\, like&lt;br /&gt;
* C:\Oolite\ &lt;br /&gt;
* C:\Games\Oolite\&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Don't Do This&amp;lt;/h5&amp;gt;&lt;br /&gt;
It is STRONGLY recommended NOT to use the folder C:\Program Files\Oolite\ or any path including the following:&lt;br /&gt;
* %ProgramFiles%&lt;br /&gt;
* %ProgramData%&lt;br /&gt;
* %SystemRoot%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Why?&amp;lt;/h5&amp;gt;&lt;br /&gt;
Vista rearranges some files outside the Oolite folder structure without visible alias/redirects, which completely hides all saved games and causes some OXP add-ons to malfunction. This is because Vista virtualizes files in those locations for legacy processes. You can read more about this problem on [http://aegidian.org/bb/viewtopic.php?t=5610 this Oolite forum thread]. The Microsoft explanation is here: [http://technet.microsoft.com/en-us/magazine/2007.06.uac.aspx].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Recovering Your Commanders Saved Under Vista&amp;lt;/h5&amp;gt;&lt;br /&gt;
If you have already installed Oolite on a Vista machine and wish to move your saved games to a new and safer file location:&lt;br /&gt;
* Examine location C:\Users\[username]\AppData\Local\VirtualStore\Program Files\Oolite\oolite.app\oolite-saves\&lt;br /&gt;
or&lt;br /&gt;
* Use Windows Explorer to search for the string &amp;quot; *.oolite-save &amp;quot; with the Windows search option &amp;quot;''include system and hidden files''&amp;quot; checked (turned on).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, the default commander, if saved, might be found in this path:&lt;br /&gt;
C:\Users\[username]\AppData\Local\VirtualStore\Program Files\Oolite\oolite.app\oolite-saves\Jameson.oolite-save&lt;br /&gt;
&lt;br /&gt;
==Running the game==&lt;br /&gt;
Find the Oolite icon in the Start -&amp;gt; Programs menu and click on it. Alternatively double click the Oolite program icon on the desktop. Note that the following key combination will get you out of 'graphics related trouble':&lt;br /&gt;
&lt;br /&gt;
Shift-Escape: Quit Oolite immediately&lt;br /&gt;
&lt;br /&gt;
If your game seems to have unreasonably low fps performance (check this in-game by hitting SHIFT-F) it is strongly recommended you visit your graphic cards' suppliers website and download and install the latest drivers.&lt;br /&gt;
&lt;br /&gt;
===Installing OXPs===&lt;br /&gt;
You will need to find where the oolite.app folder is placed: versions 1.65 to 1.72.x should default to C:\Program Files\Oolite, later versions default install is C:\Oolite, to avoid clashes with Vista's virtual folders feature(see above). Create an AddOns folder beside the oolite.app folder. Put OXPs in here. '''NB:''' most OXPs zip files contain a folder with a README file and the actual OXP directory (somename.oxp) as a sub-folder - in this case, it's best to unzip the OXP somewhere else and then copy the unpacked .oxp folder into AddOns.&lt;br /&gt;
&lt;br /&gt;
===Notes for amd64 users===&lt;br /&gt;
64-bit builds of Oolite for Windows are available and the development environment used defaults to 64-bit executables generation. They are the recommended ones for 64-bit OSes. However, the 32-bit version should run on 64-bit Windows without issues as well.&lt;br /&gt;
&lt;br /&gt;
==Building from Source==&lt;br /&gt;
[[Developing_Oolite#On_Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Running_Oolite-Windows&amp;diff=47096</id>
		<title>Running Oolite-Windows</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Running_Oolite-Windows&amp;diff=47096"/>
		<updated>2015-03-24T10:16:41Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Revised build from Source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The Windows port of Oolite is built from the same source as the [[Running Oolite-Mac|Mac OS X]] and [[Running Oolite-Linux|Linux]] versions, and has all the features of those versions.&lt;br /&gt;
&lt;br /&gt;
All OXPs should be compatible with the Windows port.&lt;br /&gt;
&lt;br /&gt;
==Getting and installing the game==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: 2px solid  #000033; background-color: #ffffff; padding: .1em; cellpadding: 0; cellspacing: 0; color: #000000;&amp;quot;&lt;br /&gt;
|'''The latest release can be downloaded from [http://developer.berlios.de/project/showfiles.php?group_id=3577 the BerliOS project].''' New releases are announced on [http://www.aegidian.org/bb/viewforum.php?f=8 the Oolite forum].&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
The latest recommended release, 1.77, or the last official stable release, 1.76.1, can be downloaded from [http://www.oolite.org/download.shtml Oolite.org].&lt;br /&gt;
&lt;br /&gt;
To install, run the installer that you have just downloaded.&lt;br /&gt;
&lt;br /&gt;
The game has been tested on Windows 2000, XP, Vista and Windows 7. This game uses OpenGL, and you are advised to run the latest 3D graphics drivers from your 3D card manufacturer.&lt;br /&gt;
'''It will not run on the DOS-extender versions of Windows''' such as Windows 95, 98 or ME.&lt;br /&gt;
&lt;br /&gt;
===Important note for Vista users!===&lt;br /&gt;
&amp;lt;h5&amp;gt;Summary:&amp;lt;/h5&amp;gt;&lt;br /&gt;
DATA LOSS and OXP MALFUNCTION can appear if you install an early version of Oolite (1.65 - 1.72.x) on Vista. '''Oolite 1.73 and later releases have corrected this issue''' by using a different default installation directory, instead of one inside program files, as before.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Do This&amp;lt;/h5&amp;gt;&lt;br /&gt;
When asked by the installer, change the Oolite install directory to a different location, one outside C:\Program Files\, like&lt;br /&gt;
* C:\Oolite\ &lt;br /&gt;
* C:\Games\Oolite\&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Don't Do This&amp;lt;/h5&amp;gt;&lt;br /&gt;
It is STRONGLY recommended NOT to use the folder C:\Program Files\Oolite\ or any path including the following:&lt;br /&gt;
* %ProgramFiles%&lt;br /&gt;
* %ProgramData%&lt;br /&gt;
* %SystemRoot%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Why?&amp;lt;/h5&amp;gt;&lt;br /&gt;
Vista rearranges some files outside the Oolite folder structure without visible alias/redirects, which completely hides all saved games and causes some OXP add-ons to malfunction. This is because Vista virtualizes files in those locations for legacy processes. You can read more about this problem on [http://aegidian.org/bb/viewtopic.php?t=5610 this Oolite forum thread]. The Microsoft explanation is here: [http://technet.microsoft.com/en-us/magazine/2007.06.uac.aspx].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Recovering Your Commanders Saved Under Vista&amp;lt;/h5&amp;gt;&lt;br /&gt;
If you have already installed Oolite on a Vista machine and wish to move your saved games to a new and safer file location:&lt;br /&gt;
* Examine location C:\Users\[username]\AppData\Local\VirtualStore\Program Files\Oolite\oolite.app\oolite-saves\&lt;br /&gt;
or&lt;br /&gt;
* Use Windows Explorer to search for the string &amp;quot; *.oolite-save &amp;quot; with the Windows search option &amp;quot;''include system and hidden files''&amp;quot; checked (turned on).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, the default commander, if saved, might be found in this path:&lt;br /&gt;
C:\Users\[username]\AppData\Local\VirtualStore\Program Files\Oolite\oolite.app\oolite-saves\Jameson.oolite-save&lt;br /&gt;
&lt;br /&gt;
==Running the game==&lt;br /&gt;
Find the Oolite icon in the Start -&amp;gt; Programs menu and click on it. Alternatively double click the Oolite program icon on the desktop. Note that the following key combination will get you out of 'graphics related trouble':&lt;br /&gt;
&lt;br /&gt;
Shift-Escape: Quit Oolite immediately&lt;br /&gt;
&lt;br /&gt;
If your game seems to have unreasonably low fps performance (check this in-game by hitting SHIFT-F) it is strongly recommended you visit your graphic cards' suppliers website and download and install the latest drivers.&lt;br /&gt;
&lt;br /&gt;
===Installing OXPs===&lt;br /&gt;
You will need to find where the oolite.app folder is placed: versions 1.65 to 1.72.x should default to C:\Program Files\Oolite, later versions default install is C:\Oolite, to avoid clashes with Vista's virtual folders feature(see above). Create an AddOns folder beside the oolite.app folder. Put OXPs in here. '''NB:''' most OXPs zip files contain a folder with a README file and the actual OXP directory (somename.oxp) as a sub-folder - in this case, it's best to unzip the OXP somewhere else and then copy the unpacked .oxp folder into AddOns.&lt;br /&gt;
&lt;br /&gt;
===Notes for amd64 users===&lt;br /&gt;
64-bit builds of Oolite for Windows are available and the development environment used defaults to 64-bit executables generation. They are the recommended ones for 64-bit OSes. However, the 32-bit version should run on 64-bit Windows without issues as well.&lt;br /&gt;
&lt;br /&gt;
==Building from Source==&lt;br /&gt;
[[Developing_Oolite#On_Windows]]&lt;br /&gt;
&lt;br /&gt;
==Old Building Oolite from source==&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47095</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47095"/>
		<updated>2015-03-24T10:06:51Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Versioning (optional) =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cloning the master branch (alternative to setting up your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github.  Use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to fetch the various submodules.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
=== Current way to do it ===&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47094</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47094"/>
		<updated>2015-03-24T10:06:14Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Versioning (optional) =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cloning the master branch (alternative to setting up your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github.  Use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to fetch the various submodules.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
=== Old Building Oolite from source ===&lt;br /&gt;
'''Updated on 09 January 2009 - (left here for reference, please use the instructions above).'''&lt;br /&gt;
&lt;br /&gt;
'''Acknowledgments and thanks to Kaks for providing them:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.'''&lt;br /&gt;
&lt;br /&gt;
# If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep). &lt;br /&gt;
# Google &amp;amp; download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe&lt;br /&gt;
# Google &amp;amp; download tortoiseSVN, install. &lt;br /&gt;
# You now need the dependencies files for Windows. Download Local_20090108.zip [ftp://ftp.alioth.net/oolite/Local_20090108.zip].&lt;br /&gt;
# Go to the Windows Start menu, navigate to and select ''Start&amp;gt;Programs&amp;gt;GNUstep&amp;gt;Shell''&lt;br /&gt;
# At the prompt :&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir /Local/oolite/trunk &amp;lt;/code&amp;gt;. The first slash &amp;amp; the upper case L are very important! &lt;br /&gt;
# From windows, extract the directories inside Local_20090108.zip to &amp;lt;code&amp;gt;C:\GNUstep\Local &amp;lt;/code&amp;gt;&lt;br /&gt;
# Still from windows go to &amp;lt;code&amp;gt;C:\GNUstep\Local\oolite\trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
# It's empty. Right click&amp;gt;SVN checkout. The repository is &amp;lt;code&amp;gt;svn://svn.berlios.de/oolite-linux/trunk &amp;lt;/code&amp;gt;. Wait for it to finish. &lt;br /&gt;
# From inside the GNUstep shell &lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:/Local/bin &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make debug=no&amp;lt;/code&amp;gt;&lt;br /&gt;
# We're now ready to launch the compiled oolite! From inside the GNUstep shell:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd /Local/oolite/trunk &amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.'''&lt;br /&gt;
&lt;br /&gt;
# Download and install the necessary software&lt;br /&gt;
## Download and install svn for Windows: [http://subversion.tigris.org/project_packages.html#binary-packages]. Accept all defaults given by the installer.&lt;br /&gt;
## Download and install GNUstep for windows: [ftp://ftp.gnustep.org/pub/gnustep/binaries/windows/base-1.11.1-gui-0.10.1/GNUstep-base-1.11.1-gui-0.10.1-3.exe]. Accept all defaults given by the installer.&lt;br /&gt;
## Download the SDL files required to build Oolite: [http://prdownload.berlios.de/oolite-pc/Local.zip]&lt;br /&gt;
## Unzip this file to &amp;lt;code&amp;gt;c:\GNUstep\Local&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get the source and build it (note, the source comes from the oolite-linux project)&lt;br /&gt;
## Start the GNUstep command line (&amp;lt;i&amp;gt;Start -&amp;gt; Programs -&amp;gt; GNUstep Development -&amp;gt; MSYS for GNUstep&amp;lt;/i&amp;gt;) and issue the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;cd $GNUSTEP_LOCAL_ROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mkdir oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd oolite&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;svn checkout svn://svn.berlios.de/oolite-linux/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;cd trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
# To run the game in the build environment:&lt;br /&gt;
## Before running the first time: &amp;lt;code&amp;gt;cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;openapp oolite.app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the &amp;lt;code&amp;gt;$GNUSTEP_LOCAL_ROOT/oolite/trunk&amp;lt;/code&amp;gt; directory, issue the commands:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;svn up&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;rm -rf oolite.app/Resources; make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.&lt;br /&gt;
&lt;br /&gt;
Then use the following script to copy the new files over the existing installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OA=&amp;quot;/c/Program Files/Oolite/oolite.app&amp;quot;&lt;br /&gt;
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk&lt;br /&gt;
if [ oolite.app/oolite.exe -nt &amp;quot;$OA/oolite.exe&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Updating oolite.exe&amp;quot;&lt;br /&gt;
    cp oolite.app/oolite.exe &amp;quot;$OA/oolite.exe&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for a in AIs Config Images Models Music Sounds Textures; do&lt;br /&gt;
    for b in Resources/$a/*; do&lt;br /&gt;
        c=`basename $b`&lt;br /&gt;
        if [ $b -nt &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot; ]; then&lt;br /&gt;
            echo &amp;quot;Updating with $b&amp;quot;&lt;br /&gt;
            cp $b &amp;quot;$OA/Contents/Resources/$a/$c&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to edit the source, Notepad++ has good Objective-C support and is free: [http://notepad-plus.sourceforge.net/]&lt;br /&gt;
&lt;br /&gt;
Also see the Oolite-PC forum: [http://www.aegidian.org/bb/viewforum.php?f=8]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47093</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47093"/>
		<updated>2015-03-24T10:02:00Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Versioning (optional) =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cloning the master branch (alternative to setting up your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github.  Use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to fetch the various submodules.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''Let's hear the wise words of another_commander (Updated 08th November 2013)''&lt;br /&gt;
&lt;br /&gt;
Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw.&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
''1. Create our working directory:''&lt;br /&gt;
* &amp;lt;code&amp;gt; mkdir /d/myoolite &amp;lt;/code&amp;gt; - to create a folder called myoolite under D:\. This is where we will check out the code.&lt;br /&gt;
*&amp;lt;code&amp;gt; cd /d/myoolite &amp;lt;/code&amp;gt; - to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''2. Check out the oolite code:''&lt;br /&gt;
* &amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite.git &amp;lt;/code&amp;gt; - this will start copying the source code from the repository to your working dir.  When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
*  &amp;lt;code&amp;gt; cd oolite &amp;lt;/code&amp;gt; to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
*  &amp;lt;code&amp;gt; git submodule update --init &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''3. Build the source:''&lt;br /&gt;
* &amp;lt;code&amp;gt;  make debug=no &amp;lt;/code&amp;gt; - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''4. Profit:''&lt;br /&gt;
Double click the oolite.exe file that resides in your &amp;lt;code&amp;gt;D:\myoolite\trunk\oolite.app &amp;lt;/code&amp;gt; folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
* &amp;lt;code&amp;gt; cd /d/myoolite/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;git pull &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make debug=no &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47092</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47092"/>
		<updated>2015-03-24T09:57:58Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Cloning the master branch (alternative to setting up your own branch) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Versioning (optional) =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cloning the master branch (alternative to setting up your own branch) =&lt;br /&gt;
&lt;br /&gt;
The Oolite source is available from github.  Use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git clone https://github.com/OoliteProject/oolite &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to retrieve. Then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; git submodule update --init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to fetch the various submodules.&lt;br /&gt;
&lt;br /&gt;
Et voila! You've got the source ready to be compiled and/or tweaked.&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
Let's hear the wise words of another_commander:&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up. &lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64,&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64,&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
1. Create our working directory:&lt;br /&gt;
Code:&lt;br /&gt;
mkdir /d/myoolite&lt;br /&gt;
to create a folder called myoolite under D:\. This is where we will check out the code, but instead of D: any available drive letter can be used. We will refer to D: here for simplicity.&lt;br /&gt;
Code:&lt;br /&gt;
cd /d/myoolite&lt;br /&gt;
to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
2. Check out the oolite code:&lt;br /&gt;
Code:&lt;br /&gt;
git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
This will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
Code:&lt;br /&gt;
cd oolite&lt;br /&gt;
to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
Code:&lt;br /&gt;
git submodule update --init&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Build the source:&lt;br /&gt;
Code:&lt;br /&gt;
make debug=no&lt;br /&gt;
That's it! Sit back and relax while it builds. Once done, you will find two new folders under the oolite folder: obj.win.spk and oolite.app. obj.win.spk contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
4. Profit:&lt;br /&gt;
Double click the oolite.exe file that resides in your D:\myoolite\oolite\oolite.app folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
Code:&lt;br /&gt;
cd /d/myoolite/oolite&lt;br /&gt;
git pull&lt;br /&gt;
git submodule update&lt;br /&gt;
make debug=no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Good luck.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47091</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47091"/>
		<updated>2015-03-24T09:54:32Z</updated>

		<summary type="html">&lt;p&gt;Day: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Versioning (optional) =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Cloning the master branch (alternative to setting up your own branch) =&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
Let's hear the wise words of another_commander:&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up. &lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64,&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64,&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
1. Create our working directory:&lt;br /&gt;
Code:&lt;br /&gt;
mkdir /d/myoolite&lt;br /&gt;
to create a folder called myoolite under D:\. This is where we will check out the code, but instead of D: any available drive letter can be used. We will refer to D: here for simplicity.&lt;br /&gt;
Code:&lt;br /&gt;
cd /d/myoolite&lt;br /&gt;
to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
2. Check out the oolite code:&lt;br /&gt;
Code:&lt;br /&gt;
git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
This will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
Code:&lt;br /&gt;
cd oolite&lt;br /&gt;
to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
Code:&lt;br /&gt;
git submodule update --init&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Build the source:&lt;br /&gt;
Code:&lt;br /&gt;
make debug=no&lt;br /&gt;
That's it! Sit back and relax while it builds. Once done, you will find two new folders under the oolite folder: obj.win.spk and oolite.app. obj.win.spk contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
4. Profit:&lt;br /&gt;
Double click the oolite.exe file that resides in your D:\myoolite\oolite\oolite.app folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
Code:&lt;br /&gt;
cd /d/myoolite/oolite&lt;br /&gt;
git pull&lt;br /&gt;
git submodule update&lt;br /&gt;
make debug=no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Good luck.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47090</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47090"/>
		<updated>2015-03-24T09:52:56Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Versioning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Versioning (optional) =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
Let's hear the wise words of another_commander:&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up. &lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64,&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64,&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
1. Create our working directory:&lt;br /&gt;
Code:&lt;br /&gt;
mkdir /d/myoolite&lt;br /&gt;
to create a folder called myoolite under D:\. This is where we will check out the code, but instead of D: any available drive letter can be used. We will refer to D: here for simplicity.&lt;br /&gt;
Code:&lt;br /&gt;
cd /d/myoolite&lt;br /&gt;
to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
2. Check out the oolite code:&lt;br /&gt;
Code:&lt;br /&gt;
git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
This will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
Code:&lt;br /&gt;
cd oolite&lt;br /&gt;
to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
Code:&lt;br /&gt;
git submodule update --init&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Build the source:&lt;br /&gt;
Code:&lt;br /&gt;
make debug=no&lt;br /&gt;
That's it! Sit back and relax while it builds. Once done, you will find two new folders under the oolite folder: obj.win.spk and oolite.app. obj.win.spk contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
4. Profit:&lt;br /&gt;
Double click the oolite.exe file that resides in your D:\myoolite\oolite\oolite.app folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
Code:&lt;br /&gt;
cd /d/myoolite/oolite&lt;br /&gt;
git pull&lt;br /&gt;
git submodule update&lt;br /&gt;
make debug=no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Good luck.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47089</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47089"/>
		<updated>2015-03-24T09:52:31Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
It is possible either to setup your own branch on github, or to only clone locally the master branch.&lt;br /&gt;
In both cases, you can hack, try, do whatever takes your fancy :-)&lt;br /&gt;
But to have your changes integrated back into the main Oolite, it is easier to setup your own branch. Luckily, you can do this at the end when you are ready to propose your code too.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
Let's hear the wise words of another_commander:&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up. &lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64,&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64,&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
1. Create our working directory:&lt;br /&gt;
Code:&lt;br /&gt;
mkdir /d/myoolite&lt;br /&gt;
to create a folder called myoolite under D:\. This is where we will check out the code, but instead of D: any available drive letter can be used. We will refer to D: here for simplicity.&lt;br /&gt;
Code:&lt;br /&gt;
cd /d/myoolite&lt;br /&gt;
to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
2. Check out the oolite code:&lt;br /&gt;
Code:&lt;br /&gt;
git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
This will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
Code:&lt;br /&gt;
cd oolite&lt;br /&gt;
to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
Code:&lt;br /&gt;
git submodule update --init&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Build the source:&lt;br /&gt;
Code:&lt;br /&gt;
make debug=no&lt;br /&gt;
That's it! Sit back and relax while it builds. Once done, you will find two new folders under the oolite folder: obj.win.spk and oolite.app. obj.win.spk contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
4. Profit:&lt;br /&gt;
Double click the oolite.exe file that resides in your D:\myoolite\oolite\oolite.app folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
Code:&lt;br /&gt;
cd /d/myoolite/oolite&lt;br /&gt;
git pull&lt;br /&gt;
git submodule update&lt;br /&gt;
make debug=no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Good luck.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47076</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47076"/>
		<updated>2015-03-20T15:27:08Z</updated>

		<summary type="html">&lt;p&gt;Day: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;br /&gt;
&lt;br /&gt;
= Building =&lt;br /&gt;
== On Windows ==&lt;br /&gt;
Let's hear the wise words of another_commander:&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
The download link to the Oolite Development Environment - Light Edition is this:&lt;br /&gt;
https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing&lt;br /&gt;
The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. &lt;br /&gt;
&lt;br /&gt;
Instructions on how to build an Oolite trunk executable from zero:&lt;br /&gt;
&lt;br /&gt;
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.&lt;br /&gt;
&lt;br /&gt;
Once unzipped, you must run the msys.bat file, found in &amp;lt;RootOfWhereTheEnvironmentWasInstalled&amp;gt;\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up. &lt;br /&gt;
&lt;br /&gt;
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this:&lt;br /&gt;
1) Devlibs -&amp;gt; Devlibs64,&lt;br /&gt;
2) Mingw -&amp;gt; Mingw64,&lt;br /&gt;
3) Devlibs32 -&amp;gt; Devlibs&lt;br /&gt;
4) Mingw32 -&amp;gt; Mingw&lt;br /&gt;
Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.&lt;br /&gt;
&lt;br /&gt;
The rest of the steps are:&lt;br /&gt;
&lt;br /&gt;
1. Create our working directory:&lt;br /&gt;
Code:&lt;br /&gt;
mkdir /d/myoolite&lt;br /&gt;
to create a folder called myoolite under D:\. This is where we will check out the code, but instead of D: any available drive letter can be used. We will refer to D: here for simplicity.&lt;br /&gt;
Code:&lt;br /&gt;
cd /d/myoolite&lt;br /&gt;
to enter our working directory.&lt;br /&gt;
&lt;br /&gt;
2. Check out the oolite code:&lt;br /&gt;
Code:&lt;br /&gt;
git clone https://github.com/OoliteProject/oolite.git&lt;br /&gt;
This will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a&lt;br /&gt;
Code:&lt;br /&gt;
cd oolite&lt;br /&gt;
to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):&lt;br /&gt;
Code:&lt;br /&gt;
git submodule update --init&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Build the source:&lt;br /&gt;
Code:&lt;br /&gt;
make debug=no&lt;br /&gt;
That's it! Sit back and relax while it builds. Once done, you will find two new folders under the oolite folder: obj.win.spk and oolite.app. obj.win.spk contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.&lt;br /&gt;
&lt;br /&gt;
4. Profit:&lt;br /&gt;
Double click the oolite.exe file that resides in your D:\myoolite\oolite\oolite.app folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.&lt;br /&gt;
&lt;br /&gt;
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then &lt;br /&gt;
Code:&lt;br /&gt;
cd /d/myoolite/oolite&lt;br /&gt;
git pull&lt;br /&gt;
git submodule update&lt;br /&gt;
make debug=no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Good luck.&amp;quot;''&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47048</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47048"/>
		<updated>2015-03-19T15:06:04Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;br /&gt;
&lt;br /&gt;
You can see the call hierarchy in the doxygen documentation.&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47047</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47047"/>
		<updated>2015-03-19T13:41:36Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij).&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47046</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47046"/>
		<updated>2015-03-19T13:40:49Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Generation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The documentation is generated into a html sub-directory.&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c.&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47045</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47045"/>
		<updated>2015-03-19T13:39:39Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Fetching your branch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
We now repatriate the code locally: we fetch it.&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
We need git for this. Installing it depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
The documentation is generated in a html sub-directory.&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c.&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47044</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47044"/>
		<updated>2015-03-19T13:36:39Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
The documentation is generated in a html sub-directory.&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;br /&gt;
&lt;br /&gt;
Do as you wish :-)&lt;br /&gt;
&lt;br /&gt;
I use vim + youcompleteme.&lt;br /&gt;
&lt;br /&gt;
There's no IDE on linux managing objective-c.&lt;br /&gt;
Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).&lt;br /&gt;
&lt;br /&gt;
The only plugin for objective-c on eclipse is discontinued.&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47043</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47043"/>
		<updated>2015-03-19T13:33:43Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
The documentation is generated in a html sub-directory.&lt;br /&gt;
Go into your oolite directory and just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47042</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47042"/>
		<updated>2015-03-19T13:33:14Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
The documentation is generated in a html sub-directory in your oolite directory.&lt;br /&gt;
Just do: &amp;lt;code&amp;gt;$doxygen Doxyfile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47041</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47041"/>
		<updated>2015-03-19T13:05:02Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Installing git */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47040</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47040"/>
		<updated>2015-03-19T13:04:36Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
The documentation is automatically generated from the source code.&lt;br /&gt;
When generated, it's 700mb heavy !&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
Installing Doxygen&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For Ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install doxygen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47039</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47039"/>
		<updated>2015-03-19T12:02:33Z</updated>

		<summary type="html">&lt;p&gt;Day: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47038</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47038"/>
		<updated>2015-03-19T12:01:05Z</updated>

		<summary type="html">&lt;p&gt;Day: /* On Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Installing git ====&lt;br /&gt;
&lt;br /&gt;
It depends on your distribution. For ubuntu:&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fetching ====&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47037</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47037"/>
		<updated>2015-03-19T11:59:14Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Fetching your branch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
''to be completed''&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$git fetch --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47036</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47036"/>
		<updated>2015-03-19T11:55:41Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Creating a branch on GitHub */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
Fork the [https://github.com/OoliteProject/oolite oolite main branch].&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47035</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47035"/>
		<updated>2015-03-19T11:53:24Z</updated>

		<summary type="html">&lt;p&gt;Day: /* Versioning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
When developing software, each little modification is tracked independently and assigned a version identifier.&lt;br /&gt;
That's called [http://en.wikipedia.com/Software_versioning versioning].&lt;br /&gt;
To do this, we use the [http://en.wikipedia.com/Git_(software) git] software.&lt;br /&gt;
&lt;br /&gt;
The Oolite code is hosted on a git-friendly repository: github.&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
Go to https://github.com/ and create an account.&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47034</id>
		<title>Developing Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Developing_Oolite&amp;diff=47034"/>
		<updated>2015-03-19T11:28:56Z</updated>

		<summary type="html">&lt;p&gt;Day: Created page with &amp;quot;= Overview =  This page intends to allow you to setup an environment to develop Oolite.  = Versioning =  == Creating a GitHub account ==  == Creating a branch on GitHub ==  ==...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
This page intends to allow you to setup an environment to develop Oolite.&lt;br /&gt;
&lt;br /&gt;
= Versioning =&lt;br /&gt;
&lt;br /&gt;
== Creating a GitHub account ==&lt;br /&gt;
&lt;br /&gt;
== Creating a branch on GitHub ==&lt;br /&gt;
&lt;br /&gt;
== Fetching your branch ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
&lt;br /&gt;
== Pre-requisites ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
=== On Windows ===&lt;br /&gt;
&lt;br /&gt;
=== On Mac OSX ===&lt;br /&gt;
&lt;br /&gt;
=== On Linux ===&lt;br /&gt;
&lt;br /&gt;
= Setting up your development environment =&lt;br /&gt;
&lt;br /&gt;
== On Windows ==&lt;br /&gt;
&lt;br /&gt;
== On Mac OSX ==&lt;br /&gt;
&lt;br /&gt;
== On Linux ==&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=Oolite&amp;diff=47033</id>
		<title>Oolite</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=Oolite&amp;diff=47033"/>
		<updated>2015-03-19T11:06:51Z</updated>

		<summary type="html">&lt;p&gt;Day: Adding link to &amp;quot;Developing Oolite page&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox CVG| title = Oolite&lt;br /&gt;
|image = [[File:oolite-logo3.png]]&lt;br /&gt;
|developer = [[Giles Williams]]|&lt;br /&gt;
|publisher = [http://oolite.org oolite.org]&lt;br /&gt;
|version = 1.76.1|&lt;br /&gt;
|released = May 27, 2012 |&lt;br /&gt;
  operating_system = Mac OS X, Linux |&lt;br /&gt;
|platforms = Mac OS X&amp;lt;br/&amp;gt;Linux&amp;lt;br/&amp;gt;Microsoft Windows&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Oolite''' is an [[Elite]]-like space sim game, originally written for Mac OS X. Stable ports for *NIX and Windows (XP, 2000 and Vista only) exist, and ports are also available for SGI IRIX and FreeBSD on Intel architectures..&lt;br /&gt;
&lt;br /&gt;
It was written by [[Giles Williams]] as response to the withdrawal of [[Elite:_The_New_Kind|Elite - The New Kind]] from the internet. Although inspired by the work of [[Christian Pinder]], following [[David Braben]] and [[Ian Bell]], the work is an independent interpretation and expansion of the original game.&lt;br /&gt;
&lt;br /&gt;
Oolite is designed as a small game that is easy for users to pick up and expand upon. Almost every aspect of the game can be modified using simple, free graphics packages and text-editors.&lt;br /&gt;
&lt;br /&gt;
The game and source-code are offered for free under a Creative Commons License. One of Giles' priorities for development was to separate the game engine from the game materials (graphics, models, AI, text-strings etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game style ==&lt;br /&gt;
&lt;br /&gt;
Oolite follows the original Elite rather than [[Frontier Elite 2]] or [[First Encounters|Frontier First Encounters]]. It is set in the [[classic Elite]] universe, with the features found in the classic Elite universe (systems and the descriptions of systems generated by an algorithm, rather than text that the author has written). Like classic Elite, there is a single planet per system - although the game allows authors of add-ons to add multiple planets to a star system. Like classic Elite, the flight model is non-[[Newtonian modelling|Newtonian]] - meaning the spacecraft handles like an &amp;quot;aeroplane in space&amp;quot;. However, this can be thought of as a complex flight computer helping the pilot as the game engine itself allows for real-world physics, for example, during collisions. This can lead to some interesting flight characteristics when the player survives a collision (especially with a [[Hognose|Hognose Tugship]]).&lt;br /&gt;
&lt;br /&gt;
See the [[Oolite Instruction Manual]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Expandability ==&lt;br /&gt;
&lt;br /&gt;
The game can be expanded in a number of ways with an [[OXP]] (Oolite eXpansion Pack).  This takes the form of a directory with the extension 'oxp' that is placed in the AddOns folder. When Oolite is launched, it scans this folder for OXPs, and loads them. An OXP can contain new ships with custom AI and textures as well as new missions. Some notable OXPs have been to replace the space stations in Tech Level 13+ planets with a &amp;quot;2001-style&amp;quot; [[Torus station]], and the [[Tionisla Orbital Graveyard]] from the novella, [[The Dark Wheel]].&lt;br /&gt;
* [[OXP howto|How to make OXPs]]&lt;br /&gt;
&lt;br /&gt;
== Portability to other operating systems ==&lt;br /&gt;
&lt;br /&gt;
The game was originally written to use OpenGL and Cocoa (the Mac OS X toolkit) in Objective C. In April [http://en.wikipedia.org/wiki/2005 2005] a porting project was started by [[David Taylor]] and [[Dylan Smith]]. The port uses OpenGL and the GNUstep Objective-C library. The first stable version was 1.52, released on 24th September 2005. Substantial parts of the graphics output were changed to use SDL (Simple Directmedia Layer), a cross platform game library. This is portable to any Unix-like operating system that supports OpenGL and GNUstep, including back to Mac OS X as a Cocoa/SDL application. The game has been run on the PowerPC, Intel x86, AMD 64 and MIPS processor achitectures.&lt;br /&gt;
&lt;br /&gt;
== Getting and installing Oolite ==&lt;br /&gt;
&lt;br /&gt;
The following articles contain detailed information about where to get and how to run the game. There is also an additional section in these pages on how to build from source for those who are inclined to explore the technicalities of the game.&lt;br /&gt;
&lt;br /&gt;
* [[Running Oolite-Mac]]&lt;br /&gt;
* [[Running Oolite-Linux]]&lt;br /&gt;
* [[Running Oolite-Windows]]&lt;br /&gt;
* [[Running Oolite-Unix|Running Oolite IRIX or BSD]]&lt;br /&gt;
&lt;br /&gt;
== Developing Oolite ==&lt;br /&gt;
&lt;br /&gt;
The following article contains information about what to do to get started on Oolite development:&lt;br /&gt;
&lt;br /&gt;
[[Developing Oolite]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
*[http://oolite.org/ Oolite web site]&lt;br /&gt;
*[http://aegidian.org/bb Oolite Bulletin board]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite| Oolite]]&lt;br /&gt;
[[Category:Factual]]&lt;/div&gt;</summary>
		<author><name>Day</name></author>
		
	</entry>
</feed>