]> git.rm.cloudns.org Git - xonotic/netradiant.git/commitdiff
Adding Windows compile guide.
authorrambetter <rambetter@8a3a26a2-13c4-0310-b231-cf6edde360e5>
Mon, 27 Dec 2010 08:29:22 +0000 (08:29 +0000)
committerrambetter <rambetter@8a3a26a2-13c4-0310-b231-cf6edde360e5>
Mon, 27 Dec 2010 08:29:22 +0000 (08:29 +0000)
git-svn-id: https://zerowing.idsoftware.com/svn/radiant/GtkRadiant/trunk@364 8a3a26a2-13c4-0310-b231-cf6edde360e5

windows_compile_guide/index.html [new file with mode: 0644]
windows_compile_guide/vc-radiant-release.png [new file with mode: 0644]

diff --git a/windows_compile_guide/index.html b/windows_compile_guide/index.html
new file mode 100644 (file)
index 0000000..238a87a
--- /dev/null
@@ -0,0 +1,345 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>Compiling GtkRadiant on Windows</title>
+    <style type="text/css">
+      body
+      {
+        color: black;
+        background-color: white;
+        font-family: sans-serif;
+        margin: 1em 1em 1em 1em;
+      }
+      a { color: blue; text-decoration: underline; }
+      a:hover { color: red; text-decoration: underline; }
+      .error { color: #dd0000; }
+    </style>
+  </head>
+  <body>
+    <div style="left:0px; top:0px; width:88px; height:31px; position:absolute">
+      <a href="http://validator.w3.org/check?uri=referer">
+        <img src="http://www.w3.org/Icons/valid-xhtml10"
+             style="border-style:none"
+             alt="Valid XHTML 1.0!" height="31" width="88" />
+      </a>
+    </div>
+    <br />
+    <center><h1>Compiling GtkRadiant on Windows</h1></center>
+    <hr />
+    <p>This guide explains how to compile GtkRadiant 1.6.x from source code on Windows operating systems.
+      The source code is obtained from
+      id Software's official GtkRadiant SVN repository, which is open to the public (details follow).
+      These instructions are aimed at developers wanting to test changes to GtkRadiant source code.
+      The instructions below have been executed successfully on
+      Windows XP 32 bit (some late service pack) and on Windows 7 Ultimate 32 bit.  Since 64 bit systems have not been tested by me, I cannot
+      give any advice on how to complete these instructions on those systems.  (Also, I'm an advanced UNIX user but a complete Windows nub.)</p>
+    <p>This guide is divided into the following main sections.  I choose to use MSYS instead of Cygwin in this
+      tutorial because using MinGW/MSYS is the documented and supported way to compile ioquake3.  The need for MinGW/MSYS is
+      really only to execute a single SCons build target; you could presumably execute those needed steps by
+      hand if you really don't want to bother with installing MSYS (but you're on your own if you choose that route).
+    </p>
+    <ul>
+      <li><h3><a href="#mingw">Section 1: Installing MinGW</a></h3></li>
+      <li><h3><a href="#msys">Section 2: Installing MSYS</a></h3></li>
+      <li><h3><a href="#python">Section 3: Installing Python</a></h3></li>
+      <li><h3><a href="#scons">Section 4: Installing SCons</a></h3></li>
+      <li><h3><a href="#svn">Section 5: Installing SVN</a></h3></li>
+      <li><h3><a href="#vcpp">Section 6: Installing Visual C++</a></h3></li>
+      <li><h3><a href="#sources">Section 7: Obtaining Source Code, Game Paks, and Libs</a></h3></li>
+      <li><h3><a href="#compile">Section 8: Compiling GtkRadiant</a></h3></li>
+      <li><h3><a href="#run">Section 9: Running GtkRadiant</a></h3></li>
+    </ul>
+    <hr />
+    <br />
+    <a name="mingw"></a>
+    <h2>Section 1: Installing MinGW</h2>
+    <p>The following URL can be used as a coarse guide for installing MinGW:
+      <a href="http://www.mingw.org/wiki/Getting_Started">http://www.mingw.org/wiki/Getting_Started</a>.
+      The needed steps are reproduced below.
+    </p>
+    <h3>Step A: Download</h3>
+    <p>Download the <tt>mingw-get</tt> program.  We're going to use <tt>mingw-get</tt>
+      as opposed to the graphical installer <tt>mingw-get-inst</tt> .  You can download the most
+      recent version of <tt>mingw-get</tt> from
+      <a href="http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get/">this SourceForge page</a>.
+      (That page also contains a <tt>readme.txt</tt> file that has very useful information on how to use
+      <tt>mingw-get</tt> , for your reading pleasure.)  Download the binary zip file version;
+      the downloaded file should have a name along the lines of <tt>mingw-get-0.1-mingw32-alpha-5-bin.zip</tt> .
+    </p>
+    <h3>Step B: Extract</h3>
+    <p>
+      Extract the zip file you just downloaded to <tt>C:\MinGW</tt> .  I would use that exact location; I will be referring to
+      that location in the rest of the instructions.  After extraction, double check that there exists a file
+      <tt>C:\MinGW\bin\mingw-get.exe</tt> .  If such a file does not exist, you extracted at an incorrect level or you downloaded
+      the wrong zip archive.
+    </p>
+    <h3>Step C: Set <tt>PATH</tt></h3>
+    <p>
+      You need to add <tt>C:\MinGW\bin</tt> to your <tt>PATH</tt> system environment variable.  Don't forget that the semicolon
+      character is the separator for the elements in <tt>PATH</tt> .  The steps to find where <tt>PATH</tt> can be edited are roughly
+      as follows on Windows XP:
+    </p>
+    <ol>
+      <li>Go to Control Panel (usually in Start menu).</li>
+      <li>In Control Panel, go to System.</li>
+      <li>Hit "Advanced" tab.</li>
+      <li>Hit "Environment Variables" button.</li>
+      <li>Near the bottom, under "System variables", highlight "Path" and click "Edit".</li>
+      <li>Tack on the string "C:\MinGW\bin" to the end, making sure to use a semicolon to separate the existing <tt>PATH</tt> from
+        your new entry.</li>
+      <li>Reboot? (I don't know if it's necessary.)</li>
+    </ol>
+    <h3>Step D: Update/Upgrade</h3>
+    <p>
+      We're going to update the <tt>mingw-get</tt> program with the latest version and pull in the latest distribution manifest.
+      Open up Command Prompt.  Execute the following commands:
+    </p>
+    <blockquote>
+      <pre width="80" style="background: #CCCCCC; padding: 2mm; border-style: ridge">C:\MinGW> <b>mingw-get update</b>
+C:\MinGW> <b>mingw-get upgrade mingw-get</b>
+</pre>
+    </blockquote>
+    <p>
+      The above commands can be executed from any directory; <tt>C:\MinGW</tt> happened to be the currect directory in my case.
+    </p>
+    <p>
+      Note: If you execute <tt>mingw-get</tt> without any arguments, you might get an unpleasant-looking error.
+      This is normal.
+    </p>
+    <p>
+      We're all done installing the base of the MinGW system.  You don't need to install any additional <tt>mingw-*</tt> packages
+      to get GtkRadiant to compile (because we're using different software to actually compile GtkRadiant).
+    </p>
+    <hr />
+    <br />
+    <a name="msys"></a>
+    <h2>Section 2: Installing MSYS</h2>
+    <p>We're now going to install MSYS, which sits on top of MinGW.</p>
+    <h3>Step A: Install <tt>msys-base</tt></h3>
+    <p>
+      Open up Command Prompt.  Execute the following command:
+    </p>
+    <blockquote>
+      <pre width="80" style="background: #CCCCCC; padding: 2mm; border-style: ridge">C:\MinGW> <b>mingw-get install msys-base</b>
+</pre>
+    </blockquote>
+    <p>You can now close the Command Prompt.  You won't have to use it again!</p>
+    <h3>Step B: Fire Up MSYS</h3>
+    <p>
+      In your native file exploring application in Windows, navigate to <tt>C:\MinGW\msys\1.0</tt> .  Here you will find
+      a file <tt>msys.bat</tt> .  This script is what launches MSYS.  You can make a shortcut to this file and place the shortcut
+      in a convenient location such as your Desktop.  You can also use the provided icon <tt>msys.ico</tt> (in the same
+      directory) for your shortcut icon.
+    </p>
+    <p>
+      Now start MSYS by double-clicking <tt>msys.bat</tt> (or your shortcut).  We will use MSYS to install some remaining packages that are needed.
+      In case you are completely new to MSYS, I'd like to point out that it's much like a UNIX shell.
+      In fact you can access the <tt>C:</tt> Windows drive in MSYS via the <tt>/c</tt> path.
+    </p>
+    <h3>Step C: Install MSYS Additions</h3>
+    <p>
+      There are many MinGW/MSYS packages you can install; you may even choose to install all of them.
+      However, for the purposes of compiling GtkRadiant, you will need only the following.  Execute this
+      from your MSYS shell:
+    </p>
+    <blockquote>
+      <pre width="80" style="background: #CCCCCC; padding: 2mm; border-style: ridge">$ <b>mingw-get install msys-wget</b>
+$ <b>mingw-get install msys-unzip</b>
+</pre>
+    </blockquote>
+    <p>You should now have the two commands <tt>wget</tt> and <tt>unzip</tt> at your disposal in the MSYS shell.
+      We will be needing these commands to successfully execute the SCons build target later on.</p>
+    <p>You can leave your MSYS shell open because we will use it again in a little while.</p>
+    <p>Side Note: The <tt>msys-openssh</tt> package comes with traditional <tt>scp</tt> and <tt>ssh</tt> commands that work
+      orders of magnitude faster than WinSCP or PuTTY.</p>
+    <hr />
+    <br />
+    <a name="python"></a>
+    <h2>Section 3: Installing Python</h2>
+    <p>We will now install the Python programming language, which is needed for SCons to work.</p>
+    <p>
+      The homepage for Python is <a href="http://www.python.org/download">www.python.org</a>.  You should download and install
+      a version of Python suitable for your version of Windows.  I would strongly recommend sticking to a version of Python
+      that is 2.x.x, <i>not</i> 3.x.x.  This is because lots of legacy software that uses Python is known to work correctly
+      with 2.x.x, but might not necessarily work with 3.x.x.  At the time of writing this tutorial, the preferred version of Python
+      was 2.7.1.  For purposes of this tutorial, Python is installed to <tt>C:\Python27</tt> .  All of the default
+      options for installing Python should be fine.
+    </p>
+    <p>
+      The following step is needed since we're going to be calling SCons in such a way that requires the <tt>python</tt>
+      command to be in our <tt>PATH</tt> in MSYS.  In your MSYS shell, execute this:
+    </p>
+    <blockquote>
+      <pre width="80" style="background: #CCCCCC; padding: 2mm; border-style: ridge">$ <b>mkdir -p /usr/local/bin</b>
+$ <b>ln -s /c/Python27/python.exe /usr/local/bin/python</b>
+</pre>
+    </blockquote>
+    <p>You should now have the <tt>python</tt> command at your disposal in your MSYS shell.</p>
+    <hr />
+    <br />
+    <a name="scons"></a>
+    <h2>Section 4: Installing SCons</h2>
+    <p>We will now install SCons, which is a multi-platform substitute for traditional Make.</p>
+    <p>
+      The homepage for SCons is <a href="http://www.scons.org/download.php">www.scons.org</a>.  You should download and install the
+      latest production release.  During the install procedure you will be asked to confirm the location of your Python
+      installation.
+    </p>
+    <p>
+      SCons gets installed into <tt>C:\Python27\Scripts</tt> because it's basically a Python script.
+      You would normally invoke SCons by using the <tt>scons.bat</tt> script
+      in this directory.  However, since we will be invoking SCons from MSYS (which is UNIX-like), we're actually going to call the UNIX script version
+      of SCons, which is the plain-old file <tt>scons</tt> in this same directory.  Furthermore, we're going to make sure that the <tt>scons</tt>
+      command is available under MSYS.  Execute these commands in your MSYS shell:
+    </p>
+    <blockquote>
+      <pre width="80" style="background: #CCCCCC; padding: 2mm; border-style: ridge">$ <b>mkdir -p /usr/local/bin</b>
+$ <b>ln -s /c/Python27/Scripts/scons /usr/local/bin/scons</b>
+</pre>
+    </blockquote>
+    <p>
+      You now have the <tt>scons</tt> command at your disposal in the MSYS shell.
+    </p>
+    <hr />
+    <br />
+    <a name="svn"></a>
+    <h2>Section 5: Installing SVN</h2>
+    <p>
+      We're now going to install a command-line version of the SVN client that we can use from MSYS.  We don't need no
+      stinkin' GUI.  Anyhow, command-line SVN is required to perform the SCons build target later on.
+      In fact, you don't need to touch TortoiseSVN or any other GUI-based SVN client for any part of this entire tutorial.
+      (I wouldn't touch a GUI-based SVN client with a 10 foot pole given the opportunity to use command-line SVN instead.)
+    </p>
+    <p>
+      The preferred download site for SVN client for Windows is <a href="http://www.collab.net/downloads/subversion/">CollabNet</a>.
+      You should download and install CollabNet Subversion Command-Line Client,
+      <i>not</i> CollabNet Subversion Edge or something of any other nature.  Unfortunately you'll have to create an account with CollabNet
+      to download this software, but everything is free.  You can use all defaults when installing SVN.
+    </p>
+    <p>
+      The CollabNet version of SVN client for Windows should automatically modify your <tt>PATH</tt> , and you should be able to
+      execute the <tt>svn</tt> command in MSYS after closing MSYS and starting it again.  If this is not the case for some strange
+      reason, you'll have to tweak your environment to ensure that you can execute the <tt>svn</tt> command from MSYS.
+    </p>
+    <hr />
+    <br />
+    <a name="vcpp"></a>
+    <h2>Section 6: Installing Visual C++</h2>
+    <p>
+      The GtkRadiant developers are currently using Microsoft Visual C++ 2008 to compile GtkRadiant.  Even though Visual C++ 2010 is a newer
+      version, don't use it [unless you want to be on your own].  You can download Visual C++ 2008 Express Edition from
+      <a href="http://www.microsoft.com/express/Downloads/#Visual_Studio_2008_Express_Downloads">this Microsoft webpage</a>.
+    </p>
+    <p>
+      When you install Visual C++ 2008 Express Edition, you can install the bare minimum application <i>without</i> any extras such as
+      Microsoft Silverlight Runtime or Microsoft SQL Server 2008 Express Edition.  For the rest of the install options, the
+      defaults can be chosen.
+    </p>
+    <hr />
+    <br />
+    <a name="sources"></a>
+    <h2>Section 7: Obtaining Source Code, Game Paks, and Libs</h2>
+    <p>We are now ready to get the source code for GtkRadiant.</p>
+    <h3>Step A: Get Base Project</h3>
+    <p>
+      Open an MSYS shell.  When you start the shell, you will be in what is called your "home directory".  You can execute the
+      <tt>pwd</tt> command in MSYS to find out which directory you are currently in.  For example, when I start MSYS, my
+      current directory is <tt>/home/rambetter</tt> .  In reality, this path is relative to the MSYS install root.
+      For example, in the Windows operating system, my home directory is actually <tt>C:\MinGw\msys\1.0\home\rambetter</tt> .
+    </p>
+    <p>
+      In any case, we need to create ourselves a work area for purposes of downloading files and compiling software.  I would recommend
+      creating a directory <tt>radiant-work</tt> in your home directory.  So:
+    </p>
+    <blockquote>
+      <pre width="80" style="background: #CCCCCC; padding: 2mm; border-style: ridge">$ <b>mkdir radiant-work</b>
+</pre>
+    </blockquote>
+    <p>Now, we're going to change to that directory and get the base GtkRadiant project:</p>
+    <blockquote>
+      <pre width="88" style="background: #CCCCCC; padding: 2mm; border-style: ridge">$ <b>cd radiant-work</b>
+$ <b>svn checkout https://zerowing.idsoftware.com/svn/radiant/GtkRadiant/trunk ./GtkRadiant</b>
+</pre>
+    </blockquote>
+    <p>We created the extra <tt>radiant-work</tt> parent directory of <tt>GtkRadiant</tt> because the following step will
+      place many files into the project's parent directory, and we don't want to litter our home directory with these files.</p>
+    <h3>Step B: Execute SCons Build Target</h3>
+    <p>
+      Remember all the work we did earlier in order to install SCons?  Well, thanks to all that work we did,
+      obtaining the remaining things we need for compiling is really really easy:
+    </p>
+    <blockquote>
+      <pre width="80" style="background: #CCCCCC; padding: 2mm; border-style: ridge">$ <b>cd GtkRadiant</b>
+$ <b>scons target=setup</b>
+</pre>
+    </blockquote>
+    <p>This SCons build target performs several actions:</p>
+    <ul>
+      <li>Downloads "install paks" for several games such as Quake III Arena and Urban Terror.</li>
+      <li>Downloads library dependencies (such as GTK+) for building and running GtkRadiant.</li>
+      <li>Places library dependencies in proper locations.</li>
+      <li>Performs any other actions needed prior to compiling GtkRadiant.</li>
+    </ul>
+    <hr />
+    <br />
+    <a name="compile"></a>
+    <h2>Section 8: Compiling GtkRadiant</h2>
+    <p>We are now finally going to compile GtkRadiant using Microsoft Visual C++.</p>
+    <p>
+      Start Microsoft Visual C++.  From the "File" menu, choose "Open" -> "Project/Solution...".
+      Navigate to your <tt>GtkRadiant</tt> directory (in my case <tt>C:\MinGW\msys\1.0\home\rambetter\radiant-work\GtkRadiant</tt>).
+      Choose the project file <tt>radiant_VC9.sln</tt> from this directory.
+    </p>
+    <p>
+      You now have the GtkRadiant project loaded in Visual C++.  You can poke around if you like, e.g. open up some source code
+      files and edit them.
+    </p>
+    <p>
+      Before you build the project, you might want to select the "Release" target (as pictured below).
+    </p>
+    <table border="0" cellpadding="0" cellspacing="0">
+      <tr>
+        <td width="20">&nbsp;</td>
+        <td><img src="vc-radiant-release.png" alt="vc-radiant-release.png"></img></td>
+      </tr>
+    </table>
+    <p>
+      To build GtkRadiant, choose "Build Solution" from the "Build" menu.  The build will take
+      about 5 minutes [on a Pentium 4 with HTT], so this would be a good time to go get coffee.
+    </p>
+    <p>If the build completes successfully, you will get a message similar to the following in the output
+      of Visual C++:</p>
+    <blockquote>
+      <pre width="80" style="background: #CCCCCC; padding: 2mm; border-style: ridge">radiant - 0 error(s), 1 warning(s)
+========== Build: 20 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
+</pre>
+    </blockquote>
+    <hr />
+    <br />
+    <a name="run"></a>
+    <h2>Section 9: Running GtkRadiant</h2>
+    <p>All of the files needed to run GtkRadiant are going to be in the folder <tt>radiant-work\GtkRadiant\install</tt> [relative
+      to your home directory in MSYS].  You can copy the entire <tt>install</tt> folder to some place such as your Desktop
+      and you can rename this folder to <tt>ZeroRadiant</tt> for example.
+      Then, you will use <tt>radiant.exe</tt> in that directory to launch the application.
+    </p>
+    <p>
+      There is one little bit of optional cleanup you can perform on your installation folder.  You can remove all SVN-related
+      files since they are no longer needed and only take up disk space.  Let's say that you renamed your installation folder
+      to <tt>ZeroRadiant</tt> (as the previous paragraph suggests), and let's say that you're in the MSYS shell, and that your current
+      working directory is the parent directory of <tt>ZeroRadiant</tt>.  Then, in your MSYS shell, you can execute this command to
+      delete all SVN-related files (all <tt>.svn</tt> directories):
+    </p>
+    <blockquote>
+      <pre width="80" style="background: #CCCCCC; padding: 2mm; border-style: ridge">$ <b>find ZeroRadiant/ -type d -name '\.svn' -print0 | xargs -0 rm -rf</b>
+</pre>
+    </blockquote>
+    <p>
+      That's it!  Good luck and thanks for reading my tutorial!  If you have comments or suggestions please email me at nlandys@gmail.com .
+      More information about GtkRadiant is on <a href="http://www.qeradiant.com/cgi-bin/trac.cgi">www.qeradiant.com</a>.
+    </p>
+    <br />
+    <br />
+  </body>
+</html>
diff --git a/windows_compile_guide/vc-radiant-release.png b/windows_compile_guide/vc-radiant-release.png
new file mode 100644 (file)
index 0000000..1b8b11c
Binary files /dev/null and b/windows_compile_guide/vc-radiant-release.png differ