Building BZFlag and its associated projects in Dev-C++ on Windows or Linux
is quite easy.

1. Download the latest version of Dev-C++. You can download it from:

    http://sf.net/projects/dev-cpp

   Releases are under "Binaries". Download the release containing MinGW32, which
   should be the file entitled, "devcppXXXsetup.exe" (replace XXX with a version number).
   If there is none, it should be quite obvious anyway.

2. Download the latest version of SDL, available from:

    http://libsdl.org/

    Installation instructions are below.

3. Download libCURL, available from:

    http://curl.haxx.se/latest.cgi?curl=win32-devel

   Select the mirror closest to you to download.
	 Installation is roughly the same as the SDL instructions below.

4. Open up the corresponding project files (only build on at a time), included in the "Dev-C++"
   directory. Note that each project uses an individual project file,
   so no two can be combined.

5. Let the opened project compile (this may take several minutes, depending on your computer).

6. The binary and object files should be in each project's corresponding main source
   directory, such as src/bzflag/ for BZFlag client.

*If you want to build bzadmin-pdcurses.dev, make sure you have pdcurses or a similiar
curses library installed. Get the package from http://prdownloads.sourceforge.net/pdcurses/pdc27_ming_w32.zip?download
(make sure you always use that URL or get version 2.7), and install like libcURL and libSDL (see below).

Project files were maintained using Dev-C++ 4.9.9.2

The latest version of Dev-C++ (at this time) has been used to create and maintain these project
files, so older versions may not necessarily work (but they may, but it is best just
to get the latest or the above version). The version of MinGW32 that Dev-C++
uses should not matter as long as it is reasonably up to date (at this time, 3.2.x is
a good minimum for best performance let alone errorless compilation). MinGW32 is distributed
with Dev-C++.

The default build is no Kerberos library, but to enable it, all you do is
uncomment the #define in the config.h file in the /Dev-C++/ directory.

Some of the project files instruct the compiler to optimize to a mild extent, so
compilation might be a small bit slower than normal compilation, but it is worth it and not
very noticeable or annoying.

SDL is needed for the current building style, which is considerably smaller
than DirectX SDK, and is available from:

    www.libsdl.org

It is only a few megabytes, and is cross-platform. Remember to download the "devel"
one for MinGW32 so it works nicely (however, a VC++ one may also work, but it is not recommended), if you
are on Windows, otherwise download the one for GCC on Linux. Place
the .a files in your "/lib/" directory of Dev-C++ (or MinGW32 dir), and the headers in
"/include/". For libcURL, place the folder named "/curl/", containing .h files, into the "/include/" of
Dev-C++, like stated above. Follow same instructions as for SDL for libcURL's .a files. Also, make sure
you put all included dynamic libraries from SDL and libcURL (for example, "SDL.dll" on Windows)
somewhere in your PATH environment variable (on Windows), such as "c:\WINDOWS\".
On Linux, place it in a directory that it knows to look in.

Dev-C++ currently exhibits a bug in which if any project is opened from inside Dev-C++,
rather than launching the project file itself (double-clicking the project file's icon in
Explorer, on Windows), it will fail to create a makefile and therefore cannot compile.
This bug may not happen all the time, but it is present.

==Linker cannot find "-lsdlmain"==
If you get this error, you need to replace your SDL files with the ones downloadable from
http://libsdl.org/ The package downloadable from the Dev-C++ update window will not fix this.

==The linker gives errors about undefined references to cURL functions==
You need to get either the source distribution or the binary distribution under the Win32 Generic
category on http://curl.haxx.se/download.html Again, the Dev-C++ update window package will not fix this.

=="xx" in Makefile==
If you get an error regarding building "target 'xx'" and it references the makefile, go to
the "Tools" menu in Dev-C++. Select "Compiler Settings". When the new settings window appears,
check the box near the bottom that says, "Use fast but imperfect dependency generation." Continue
compiling.

==Linker Errors==
If compilation includes linking errors, and you are using CVS source code, it may be temporary
and due to the project files not being updated yet for new BZFlag source files. Make sure you
also have the latest Dev-C++ files from CVS. If you are using release source code, it most likely
is due to the library (.a) files of your compiler. Make sure you have properly installed your compiler,
and have the correct library files in the correct place, and of the correct version that matches your compiler.
Also, your Dev-C++ configuration and setup (more specifically, that of MinGW32/GCC) may be the problem. If
you have updated ANY part of your MinGW32/GCC from the version(s) that shipped with the original Dev-C++ release
package that you originally downloaded, this may be it. If you get linker errors regarding undefined things that relate
to C++, rather than BZFlag (you can usually tell by the names listed in the errors), then your compiler setup and files
are the cause. Try reinstalling Dev-C++ or using the original compiler files that shipped with Dev-C++.

==Building BZAdmin with Curses==
If you want to use the given project file to compile BZAdmin using
PDCurses (http://pdcurses.sf.net) or NCurses, or any other Curses interface, make sure your
Curses lib file is named "libcurses.a" so it links correctly (named exactly like the ncurses lib).

==Further Help==
If you have any trouble not answered here, and you are unable to figure it out yourself, BZBB (bzbb.bzflag.org)
can be a big help. Check the "CVS/Development/Compiling" forum on BZBB; there are several posts regarding Dev-C++.
Post your own message if you still are unable to fix it.

==Messed Up Interface==
If BZFlag looks significantly messed up when you run it, and it is clearly done loading, and you also have
reasonably played around with the GUI settings, you may want to close it and re-open it. If
this does not work, try doing a "clean compile" (rebuild the entire BZFlag project); this usually
works. If it still looks messed up, it may be a current issue in CVS or your release. Get the latest code
and try again. If it still does not work, you most likely are a victim of poor hardware. Mention it on BZBB
for further help.

==Further Help==
For further information and help regarding:

Dev-C++:
    *http://www.bloodshed.net
    *http://sf.net/projects/dev-cpp

MinGW32:
    *http://www.mingw.org
    *http://sf.net/projects/mingw32

GCC:
    *http://gcc.gnu.org

SDL:
    *http://libsdl.org
