Compiling ezQuake sources on Windows: (updated 2008-08-12)
---------------------------------------------------------------------------------------------------------

*** Sources are compilable with Microsoft Visual Studio 8 (2005). Older versions (6, 7, 7.1) may have problems in project files ***



Instructions:
--------------------
1) Grab sources from ezquake SVN (most devs use http://tortoisesvn.tigris.org/ for this since it integrates with explorer):
  - SVN root path (includes trunk+branches): https://ezquake.svn.sourceforge.net/svnroot/ezquake/
  - To check only the HEAD branch and ezquake itself you do:
    - TortoiseSVN
      1. right-click inside of some directory, select "SVN Checkout..."
      2. as "URL of repository" use https://ezquake.svn.sourceforge.net/svnroot/ezquake/trunk
    - Command-line Subversion:
      svn co https://ezquake.svn.sourceforge.net/svnroot/ezquake/trunk ezquake

2) Get Microsoft Visual Studio 8 and install it. 
   Instead of the expensive MSVS8 you can install Visual C++ 2008 Express Edition which is free.
  - http://www.microsoft.com/Express/Download/
  - Just follow the instructions (you don't need SQL server).

3) Download all dependancies and tools needed for the build process (ml.exe and gas2masm.exe):
  - Run ezquake/make/download_dependencies.bat
  - Or download them manually from http://ezquake.svn.sourceforge.net/viewvc/ezquake/trunk/libs/windows-x86/

4) Open open ezquake_msvs_90.sln located in ezquake/make/msvs2008

5) Select GLDebug configuration and press "Build".
  - Note, to use the game files in your normal quake dir do the following in Visual studio:
    1. Click "Project -> ezquake properties"
    2. Choose "All configurations" from the Configuration drop down box at the top.
    3. Go to "Configuration properties -> Debugging"
    4. In "Working directory" enter the path to your quake dir.
    5. In "Command arguments" add any additional commandline switches. I always use -window when debugging.

Microsoft Visual Studio 8 and .s (asm) files:
---------------------------------------------------------------------
 - Requirements:
   There are no special requirements, we include everything in CVS, you just need cl.exe
   which is a part of MS VS 8 package
 - We use Custom Build Tool to compile asm .s files in MS VS 8.
 - Visual Studio reads all instructions from qasm.rules
 - That file is included in the project file (ezquake_msvs_80.vcproj)
 - Instructions are named 'qasm' and are applied on *.s files
 - Visual Studio 8 doesn't have ml.exe (known as masm32) so we have ml.exe in masm32 dir (binary in SVN)
 - We dont include gas2masm in ezquake solution
 - gas2masm.exe is stored in our SVN
 - How custom build works:
   1) cl (optimizer), input is .s file, output is .spp (optimized) file
   2) gas2masm, input is .spp file, output is .asm file
   3) ml, input .asm file, output is .obj file
   4) intermediate .spp and .asm files are deleted
   5) .obj file is then used by the linker




Troubleshooting:
---------------------------
- If you get "unresolved external symbol __imp__" linker errors, you need to edit the corewin_express.vsprops file (found in C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults) and change the string that reads: AdditionalDependencies="kernel32.lib" to AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"
  It's also good to read this: http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx




Developer notes:
---------------------------
Debugger detected:
- Error warning that MS VS gives you when you try to run debug build in your quake dir. Solution: move ezquake-security.dll out of your quake dir
