aboutsummaryrefslogtreecommitdiffstats
path: root/web/include/instruc.php
blob: 8770037661fdb0558754b5be1314050a4cb52ec8 (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
<h2>Check out and build from Subversion</h2>
<p>(This part assumes Windows users are using Cygwin. If you aren't,
<a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a> is a good client.)</p>
<ol>
	<li>Change into a directory that you want the tree to be kept in.</li>
	<li>Check out the source tree:<br />
	<span class="shell">svn co svn://svn.icculus.org/quake3/trunk quake3</span>
	<br />
	(You can check out a specific revision with the -r option, like this:
	<span class="shell">svn co svn://svn.icculus.org/quake3/trunk quake3 -r100</span>)
	</li>
	<li>Read the <a href="http://svn.icculus.org/*checkout*/quake3/trunk/i_o-q3-readme">readme</a> file. Really. Do it.</li>
	<li>Compile and install Quake 3:
		<ul>
			<li><h3>Linux and friends</h3>
				<ol>
					<li>Install Quake 3 for Linux using the latest point release
					installer. While the Quake3 engine is Free Software, you
					still need to copy over legal PK3s like before.</li>
					<li>Change into the top level directory (it contains the
					<span class="shell">ui</span> and <span class="shell">code</span>
					directories.)</li>
					<li>Run <span class="shell">make</span>.</li>
					<li>Set <span class="shell">$COPYDIR</span> to the directory
					you installed Quake3 to	and make the copyfiles target.
					Make sure you are changed to the owner of this path (probably
					root).<br />
					<span class="shell">COPYDIR="/opt/quake3" make copyfiles</span></li>
				</ol>
			</li>
			<li><h3>Windows</h3>
				<p>Building on Windows is slightly complicated. You can either
				use Microsoft Visual C++ or MinGW. MinGW works better currently;
				both methods are described in the
				<a href="http://svn.icculus.org/*checkout*/quake3/trunk/i_o-q3-readme">readme</a>
				you already are supposed to have read.</p>
			</li>
		</ul>
	</li>
	<li>If everything has gone well, you should have a binary that works! If not, seek <a href="#">help</a>.</li>
</ol>
<h2>Pay your dues, contribute!</h2>
<p>If you've come up with an improvement or fixed something, we'd love to hear about it!
Firstly, <em>try</em> to make sure that the patch breaks less than it fixes. We don't
require everyone to be decorated Geniuses, but do attempt to produce a patch that you've
tested and at list sort-of understand what you're doing.</p>
<p>Not everyone who knows C knows how to use <span class="shell">diff</span> (the tool
you need to create patches with), and not everyone is making patches against the C code.
That's okay, here's the 10¢ survival guide to making patches:</p>
<ul>
	<li>Create a patch named <em class="shell">amazing_new_feature.patch</em> between <em class="shell">oldfile</em> and <em class="shell">newfile</em>:<br />
	<span class="shell">diff -u <em>oldfile</em> <em>newfile</em> &gt; <em>amazing_new_feature.patch</em></span></li>
	<li>Create a patch named <em class="shell">amazing_new_features.patch</em> between directory <em class="shell">olddir</em> and <em class="shell">newdir</em>:<br />
	<span class="shell">diff -Naur <em>olddir</em> <em>newdir</em> &gt; <em>amazing_new_features.patch</em></span></li>
	<li>Apply a patch <em class="shell">amazing_new_feature.patch</em>:<br />
	<span class="shell">patch -p0 -i <em>amazing_new_feature.patch</em></span></li>
</ul>
<p>For more information on <span class="shell">diff</span> and <span class="shell">patch</span>,
read their man-pages.</p>
<p>The prefered way to get the ball rolling on a patch is to file a <a href="http://bugs.icculus.org">bug</a>
for your request with the patch attached to it and then send a notice to the mailing list
about it. If you're really so lazy that you can't do this, we would prefer you at least
<a href="mailto:zakk@icculus.org">mail it to zakk@icculus.org</a> rather than not do
anything.</p>