
EDGE 1.35 COMPILATION NOTES
===========================

by Andrew Apted,  DECEMBER 2010


Note 1
------

If you downloaded the EDGE source code from the SVN (Subversion)
repository, then you will need to add a copy of the GLBSP source
code, and possibly the other libraries which EDGE uses.

The easiest way to get them is to download the 1.35 source code
package and move/copy the missing pieces from there.

Note 2
------

I personally compile the Win32 binaries on Linux using what's
called a "Cross Compiler".  That means I don't need to reboot
out of Linux in order to compile Win32 binaries.

If you want to compile EDGE on a Windows system, theoretically
it should work because the tools (like MinGW) exist for the
Win32 platform.  However: YOU ARE ON YOUR OWN!


Build System for EDGE
---------------------

EDGE 1.35 uses Makefiles for compiling.

(There is no autoconf/automake/libtool stuff here, because
 I tried really hard to get to grips with them but in the
 end found them extremely complex and frustrating to use.)

There are three basic configurations:

 1. Build Linux debugging + shared-lib binary:

    > make -f Makefile.linux

 2. Build Win32 statically-linked binary:

    > make -f Makefile.xming

 3. Build Linux statically-linked binary:

    (not supported right now)


Libraries
---------

For the list of libraries required by EDGE, please see the
following document: docs/tech/libraries.txt

The Makefiles not only build the main engine code
(i.e. all the stuff in the src/ directory) but also build
the EPI, DEH_EDGE, COAL, TIMIDITY and GLBSP libraries.

The following libraries are linked statically in the
release builds and must be built manually beforehand:
zlib, libpng, jpeglib, libogg, libvorbis and libvorbisfile.
Also FLTK for Linux release binaries.


Resource File
-------------

The file edge32.rc is a Win32 resource file containing
various strings that the Win32 run-time system can use,
as well as the EDGE Icon.  This must be built manually
before running make, like this:

   > i586-mingw32msvc-windres edge32.rc -o edge32_res.o

(The resource file is not essential, so if this step gives
 you big problems then simply remove the edge32_res.o part
 from the Makefile).


LINKS
=====

http://www.mingw.org/

(see docs/tech/libraries.txt for more links)

