-----------------------------------------------------------------------
COMPILING NEWTREE FOR WIN32 (Win95/98,NT/2000)

We've succesfully compiled newtree source code with following
compilers:

- Microsoft Visual C 6.0 (commercial)
- Borland C++ compiler v5.5 (free) and v5.02
- Borland C++ Builder 5 (commercial)
- Mingw (free, GPL), (GCC 2.95.2, http://www.mingw.org)

-----------------------------------------------------------------------
Steps to compile standalone on win32 platforms with VC++.

To compile under "free" Borland C++, see couple of paragraphs below.

1) either: (reccommended)
     download and install MGL for VC++. it is available from Scitech at
     http://www.scitechsoft.com
   
     IMPORTANT: make sure you add the mgl include and lib paths to VC++'s
     options in Tools->Options->Directories

     // Tonik: latest MGL from Scitech seems to have a couple of bugs,
     like F10 and alt keys not working :(

   or:
     if you don't feel like downloading the latest version of the MGL,
     which is very highly recommended, you can get the scitech directory
     from the q1source.zip file, rename the MGLLT.LIB file in it to
     MGLFX.LIB, and put the appropriate paths into VC++'s options, as
     above.

   also:
     download the source for zlib from http://www.info-zip.org/pub/infozip/zlib/
     and build a static library named zlib.lib (also, build a debug version named
     zlibd.lib if you plan to build the debug targets.). put the lib files in a
     directory together, and add it to the MSVC libraries path, and add the
     directory with the zlib source code to the include paths (see above)

   or:
     open include/vc/config.h and change the line that reads
        #define HAVE_ZLIB
     to
        #undef HAVE_ZLIB
     and remove zlib.lib and zlibd.lib from the project settings
     (not reccommended)

2) Build the gas2masm Debug program first. all the other targets depend
   on this one.

3) Build the other targets.

-----------------------------------------------------------------------
COMPILING QUAKEFORGE TREE (http://quake.sourceforge.net)
UNDER BORLAND C++ 5.02 and 5.5

0) Get latest Quakeforge CVS snapshot if you don't have it already.

1) Get and install latest SCITECH MGL (http://www.scitechsoft.com), you
don't need to install sources and demo's, just libraries and includes.

2) If you want to compile SDL/SGL targets, you also need to get SDL 
Source Code and Win32 Binary Runtime (http://www.libsdl.org.)  
Extract the runtime (sdl.dll) into the lib subdirectory of the SDL 
Source Code. If you don't know what SDL means, you don't need this.

3) Get and install Dirext-X 7.0 libraries and header files
(headers http://www.microsoft.com/downloads/release.asp?ReleaseID=12471)
(borland lib: http://www.microsoft.com/downloads/release.asp?ReleaseID=17051)

4) If you don't have Borland complier (5.02 or 5.5, or C++ Builder 5),
get and install FREE Borland C++ complier 5.5.
(http://www.borland.com/bcppbuilder/freecompiler/)
or get from alternative location:
(http://www.saunalahti.fi/~mipes/freecommandlinetools.exe)

Make sure you install latest Borland C++ free complier service packs for
5.5 to upgrade it to 5.5.1.

http://www.borland.com/devsupport/bcppbuilder/patches/bcc55/bcc55sp1.zip
http://www.borland.com/devsupport/bcppbuilder/patches/bcc55/bcc55sp2.exe
or get from alternative location:
(http://www.saunalahti.fi/~mipes/bcc55sp1.zip)
(http://www.saunalahti.fi/~mipes/bcc55sp2.exe)

5) Borland preprocessor can't process quake .S files. You need to get
.ASM files or use some other complier to preprocess them.
ASM files must be placed on newtree SOURCE dir.
(http://www.saunalahti.fi/~mipes/qf-asms.zip)

6) You need to have either MASM or TASM to compile ASM files. If you've
TASM32, you need to uncomment it in makefiles.

(For MASM: http://www.microsoft.com/ddk/download/98/BINS_DDK.EXE)
(MASM patch: http://support.microsoft.com/support/kb/articles/Q228/4/54.asp)

You only need to extract BINS_DDK.EXE and get two files, ML.EXE and ML.ERR
from it. Then get and run patch to upgrade ML.EXE to version 6.14. Put
ML.EXE and ML.ERR in some directory which is included in your %path.

7) Download ZLIB source code from http://www.info-zip.org/pub/infozip/zlib/
and build a static library named zlib.lib. You have to copy makefile.b32
from MSDOS directory to zlib main dir and then comment out or delete
MODEL=-WX line in makefile.b32. Then do:

make -fmakefile.b32 zlib.lib

and it'll make lib and stuff. You can safely ignore any complains
from zlib makefile as long as it builds working zlib.lib.

8) For GL targets, you'll need to have import library for OPENGL stuffs
one coming with Borland C++ itself is screwed!

implib -c -f opengl32.lib c:\windows\system\opengl32.dll

9) If you want to compile SDL/SGL, you HAVE to run this command 
in the SDL source code bin directory where you put the SDL binary 
runtime (sdl.dll):

implib -a -c sdl.lib sdl.dll

10) Check all paths in makefiles (found in sources directory, see list of
makefiles below) and correct them to suit your system. You shouldn't need
to change anything below "# end of system dependant stuff."

11) When everything else is done, just start making

cd source
make -fqf-client-win
make -fqf-client-wgl
...
and you should be on your way.


qf-server.mak           Makefile for QuakeWorld server for windows

qf-client-win.mak       Makefile for QuakeWorld client, software renderer

qf-client-wgl.mak       Makefile for QuakeWorld client, OpenGL renderer

qf-client-sdl.mak       Makefile for QuakeWorld client, software SDL renderer
                        Requires SDL SDK (www.libsdl.org)

qf-client-sgl.mak       Makefile for QuakeWorld client, SDL opengl wrapper
                        Requires SDL SDK (www.libsdl.org)

For FREE IDE for your BC 5.5:
http://www.objectcentral.com/vide.htm
-----------------------------------------------------------------------
COMPILING NEWTREE WITH MINGW (http://www.mingw.org)

These are MINGW compile instructions for users without cygwin or self-hosting
mingw. If you've cygwin or self-hosting mingw, you can soon use standard 
./configure process. You can also build WIN32 binaries under Linux using 
cross-compiling mingw. Note: THIS IS WORK IN A PROGRESS (in case you
haven't noticed yet)

1) Get and install MINGW compiler. See mingw home page for closer details.
Make sure your MINGW\BIN directory is in your PATH.
(if you want easy way in, get http://www.libsdl.org/Xmingw32/mingw32.zip and extract it)

2) Get and install LATEST WIN32API for mingw
(http://sourceforge.net/project/showfiles.php?group_id=2435)

Latest one at the time of the writing is 
http://download.sourceforge.net/mingw/w32api-0.4-20001122.tar.gz

3) Get and install ZLIB
You can either download ZLIB source code from
http://www.info-zip.org/pub/infozip/zlib/
and compile it OR get zlib packages from
http://sourceforge.net/projects/mingwrep/
and just install them.

4) If you want to compile SDL/SGL targets, you also need to get SDL 
Source Code and Win32 Binary Runtime (http://www.libsdl.org.)
Extract the runtime (sdl.dll) into the lib subdirectory of the SDL 
Source Code. If you don't know what SDL means, you don't need this.

Look libsdl FAQ page for closer details how to get mingw working with SDL.

5) Go to source directory and check paths in makefile.mgw and change them
to suit your system.

Then just type:

make -fmakefile.mgw

And hope for best. You will see lot of "warnings" but they're ok as long
as you manage to get working .EXE files.

Notes about mingw:
If you get weird compile errors, try getting
http://pws.prserv.net/thefortins/basetyps_h.tar.gz
and replacing your basetyps.h with it.

If you don't have WORKING DirectX libs with your mingw, you need
to get them.
(http://pws.prserv.net/thefortins/directx6_1-cyg.tar.gz)
Any later DX release (7.0, 8.0) is fine too.

If you don't get SDL library to build with mingw, don't worry, you're
not the only one. Just FLAME ON SDL dev. team, not us.

-----------------------------------------------------------------------