Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
blob: cc83ad86412623f722bfb70d25e0dfd7cabcec9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
	<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
	<meta name="keywords" content="osirion, free, game, space, trade, combat, freelancer, privateer, opengl, radiant, gpl, creative commons">
	<link rel="stylesheet" type="text/css" href="osirion.css">
	<link rel="icon" type="image/png" href="http://osirion.org/icon.png">
	<title>Project::OSiRiON - Building the development version</title>
</head>

<body>
<div id="page">

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

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

<div id="pagecontent">

<!-- Building the development version ====================== -->

<div class="content">

<h1 class="content">Building the development version</h1>

<p class="content">
	The latest release is usually lagging behind current development. If you want to check
	the latest developments for yourself, you can get the most recent source code and game
	data from the subversion repository.
</p>
<p class="content">
	Building the development version is very similar to <a href="installation_source.html">building
	from source code</a>. The system requirements still apply. Additionally you will need
	a subversion client.
</p>
<ul class="content">
	<li class="content"><a href="#download_source">Obtaining the source code</a>
	<li class="content"><a href="#download_data">Obtaining the game data</a>
	<li class="content"><a href="#configure">Configuring the source code</a>
	<li class="content"><a href="#building">Building the binaries</a>
	<li class="content"><a href="#running">Running</a>
	<li class="content"><a href="#updating">Updating</a>
	<li class="content"><a href="#source_data">Source data</a> <span class="superscript">optional</span>
	<li class="content"><a href="#radiant_support">Radiant support files</a> <span class="superscript">optional</span>
	<li class="content"><a href="#organization">Organization of the distribution</a>
</ul>

<p></p>

</div> <!-- class="content" -->

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

<div class="content">

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

<p class="content">
	On linux, you can use the Subversion command line client tool. The following 
	command will create a new subdirectory <span class="fixed">osirion</span> and download the source code into it.
</p>
<div class="fixed">
	svn checkout svn://osirion.org/osirion osirion
</div>
<p class="content">
	On windows, you can use the Turtoisesvn SubVersion client to access the
	SVN repositories. You can download it here:
</p>
<ul class="content">
	<li class="content"><a href="http://tortoisesvn.tigris.org">http://tortoisesvn.tigris.org</a>
</ul>
<p class="content">
	Enter the new directory:
</p>
<div class="fixed">
	cd osirion
</div>
<p class="content"></p>

</div> <!-- class="content" -->

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

<div class="content">

<h2 class="content" id="download_data">Obtaining the game data</h2>
<p class="content">
	The game data should be located in the <span class="fixed">data</span> subdirectory of the main distribution.
	You can use the game data package from the website or get it from the osirion-data subversion repository:
	<ul class="content">
		<li class="content"><a href="svn://osirion.org/osirion-data">svn://osirion.org/osirion-data</a>
	</ul>
</p>
<p class="content">
	Run the following command from within the main distribution directory to download
	the game data into the <span class="fixed">data</span> subdirectory:
</p>
<div class="fixed">
	svn checkout svn://osirion.org/osirion-data data
</div>

<p class="content"></p>

</div> <!-- class="content" -->

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

<div class="content">

<h2 class="content" id="configure">Configuring the source code</h2>
<p class="content">
	Create the configure script:
</p>
<div class="fixed">
	autoreconf -i
</div>
<p class="content">
	Create a build directory, If something goes wrong, or building doesn't work any more after updating,
	you can just delete the build directory and start over without destorying the working copy.
	Enter the build directory and configure the source code:
</p>
<div class="fixed">
	mkdir build<br>
	cd build<br>
	../configure --with-bullet=/usr/local --enable-static-bullet
</div>
<p class="content">
	Use the <span class="fixed">--help</span> option to get a list of all available options: 
</p>
<div class="fixed">
	../configure --help
</div>

<p class="content">
If you want to use clang, you'll need pass the <fixed>-Wno-overloaded-virtual</fixed> switch to the compiler,
to prevent the build from failing with a warning on the bullet header files:
</p>
<div class="fixed">
	CC=clang CXX=clang++ CXXFLAGS="-Wno-overloaded-virtual" ../configure
</div>

<p class="content"></p>

</div> <!-- class="content" -->

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

<div class="content">

<h2 class="content" id="building">Building the binaries</h2>
<p class="content">
	Compile the source code:
</p>
<div class="fixed">
	make -j2
</div>
<p class="content">
	The <span class="fixed">-j2</span> options tells make to use two threads while building, if you have a
	quad-core cpu, you can use <span class="fixed">-j4</span>.
</p>
<p class="content">
	The binaries will be built in the <span class="fixed">src/</span> subdirectory of the build directory.
</p>
<p class="content">
	<b>Important</b>:<br>
	<span class="fixed">make install</span> is not supported. Results are unpredictable.
</p>
<p class="content">
	Leave the build directory:
</p>
<div class="fixed">
	cd ..
</div>

<p class="content"></p>

</div> <!-- class="content" -->

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

<div class="content">

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

</div> <!-- class="content" -->

<!-- Updating ====================================================== -->

<Div class="content">

<h2 class="content" id="updating">Updating</h2>
<p class="content">
	Once you downloaded the source code and the game data from the subversion repository,
	there is no need to re-download the entire distribution when there are updates available.
	You can update your local copy and rebuild it.
</p>
<p class="content">
	Update the source code:
</p>
<div class="fixed">
	cd osirion<br>
	cd build<br>
	make clean<br>
	cd ..<br>
	svn update
</div>
<p class="content">
	Update the game data:
</p>
<div class="fixed">
	cd data<br>
	svn update<br>
	cd ..
</div>
<p class="content">
	Rebuild the binaries:
</p>
<div class="fixed">
	autoreconf<br>
	cd build<br>
	../configure  --with-bullet=/usr/local --enable-static-bullet<br>
	make -j2<br>
	cd ..
</div>
<p class="content"></p>

</div> <!-- class="content" -->

<!-- Source data =================================================== -->

<div class="content">

<h2 class="content" id="source_data">Source data (optional)</h1>

<p class="content">
	There is a seperate repository for files that are used to
	create the game data, like blender, gimp or vector graphics files.
	It is not necessary to download these files to play the game,
	but if you are interested in contributing to the game you
	might want to get them.
</p>
<p class="content">
	To download the source data from the subversion repository:
</p>
<div class="fixed">
	svn checkout svn://osirion.org/osirion-data-src data-src
</div>

<p class="content"></p>

</div> <!-- class="content" -->

<!-- Radiant support files ========================================= -->

<div class="content">

<h2 class="content" id="radiant_support">Radiant support files (optional)</h1>
<p class="content">
	You can skip this section if you do not intent to create models with netradiant or
	gtkradiant 1.5.	These files probably won't work with other versions. You can find precompiled
	netradiant packages here:
	<ul class="content">
		<li class="content"><a href="http://ingar.satgnu.net/gtkradiant">http://ingar.satgnu.net/gtkradiant</a>
	</ul>
<p class="content">
	These instructions assume gtkradiant is installed in the directory
	<span class="fixed">/usr/local/games/netradiant</span>. If it is installed in a different 
	directory on your system, edit these instructions accordingly.
<p class="content">
	Copy the support files to the gtkradiant folder:
</p>
<div class="fixed">
	cd data<br>
	cd gtkradiant<br>
	cp -vr * /usr/local/games/netradiant
</div>
<p class="content">
	Open the file <span class="fixed">/usr/local/games/netradiant/games/osirion.game</span> in 
	your favourite editor. Look for a line that begins with:
</p>
<div class="fixed">
	enginepath_linux=
</div>
<p class="content">
	Make sure it points to your osirion data directory. For example,
	if you checked out the source code into <span class="fixed">/home/user/osirion</span>, 
	then the data will be in <span class="fixed">/home/user/osirion/data</span> and 
	the line should look like this:
</p>
<div class="fixed">
	enginepath_linux="/home/user/osirion/data"
</div>
<p class="content">
	Save the changes.
</p>

</div> <!-- class="content" -->

<!-- Organization of the distribution ============================== -->

<Div class="content">

<h2 class="content" id="organization">Organization of the distribution</h1>

<pre>
/doc 					Documentation

	index.html			Documentation content
	attributions.html		List of game data attributions
	installation_release.html	Installing the latest release
	installation_source.html	Building from source code
	installation_develop.html	Building the development version (this file)
	guide.html			Player guide
	manual.html			User manual

/src 					C++ source code

	/audio				audio library
	/auxiliary			auxiliary functions
	/client				osirion client
	/core				game-independent core library
	/dedicated			osiriond dedicated server
	/filesystem			filesystem library
	/game				game-specific functions 
		/base			base game module
		/example		example game module
		/intro			intro game module
	/math				mathematical classes and functions
	/sys				low-level system functions
	/render				render library
	/ui				user interface library

/data					Data files

	/base				game data files
		/bitmaps		essential textures
		/ini			game world definitions
		/maps			3D models (.map format)
		/materials		material definitions
		/models			3D models (.ase and .obj format)
		/particles		particle definitions
		/textures		game world textures

	/gtkradiant			radiant support files
</pre>

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

<!-- footer ================================================ -->

</div> <!-- div pagecontent -->

<div id="pagefooter">

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

</div>
</body>

</html>