May 10, 1999
=============

Here is a quick outline of *one* way you can build FG for Win32 using
a completely free development environment.


1.  Install cygwin (latest is version 20.1)

    http://sourceware.cygnus.com/cygwin/

    Now called "full.exe"

    (I believe "user.exe" is included in full.exe so you don't need to
    install those separately)


2.  This step may now be optional.  I haven't tried without, but
    cygwin is now egcs-1.1 (which should work I think.)  This step
    just upgrades to the latest greatest version of egcs.

    Install egcs binary release for cygwin-20.x (latest egcs is version 1.1.2)

    http://www.xraylith.wisc.edu/~khan/software/gnu-win32/egcs.html

    For instance, if you've downloaded egcs to /tmp:

    cd //c/cygnus/cygwin-b20
    tar xzvf //c/tmp/egcs-1.1.2-cygb20.tar.gz

3.  Install the free win32 api library (latest version is 0.1.5) from:

    http://www.acc.umu.se/~anorland/gnu-win32/w32api.html

    (Recommend you install in /usr/local)

    Run "make; make install"


4.  Also download glut import libraries from extra section at:

    http://www.acc.umu.se/~anorland/gnu-win32/w32api.html

    copy these libs to /usr/local/lib/lib*.a


5.  Install the Mesa-3.0 includes:

    Feel free to download mesa from www.mesa3d.org and grab them from
    there.  Line #453 of glut.h needs to be edited to look like the
    following:

    GLUTAPI int APIENTRY glutCreateMenu(void (GLUTCALLBACK * func)(int));

    Or you can grab just these headers from the fgfs ftp site.

    ftp:://ftp.flightgear.org/pub/fgfs/Win32/Mesa-3.0-includes.zip

    Copy these includes to /usr/local/include/gl/*.h


6.  Install the glut dll's somewhere in your path:

    You can fetch these from the fgfs site:

    ftp:://ftp.flightgear.org/pub/fgfs/Win32/glut-dll-3.7.zip


7.  Build and install plib (latest version is 1.0.5/6?) from:

    http://www.woodsoup.org/~sjbaker/plib (check url)

    Recommend you run configure as follows:

    CFLAGS="-O2 -Wall" CXXFLAGS="-O2 -Wall" CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure --prefix=/usr/local --includedir=/usr/local/include/plib

    make; make install


8.  Fetch the Flight Gear code which can be found at:

        ftp://ftp.flightgear.org/pub/fgfs/Downloads/Source/

    Grab the latest "FlightGear-X.XX.zip" or if you want to live on the 
    edge you can try one of the nightly snapshots in:

        ftp://ftp.flightgear.org/pub/fgfs/Downloads/Source/Snapshots


9.  Unpack the FG source code.  Run:

        pkunzip -d FlightGear-X.XX.zip

    Be sure to use the -d option.  This will create all the needed
    subdirectories.  Otherwise you will have one big mess!  Trust me!


Side Note: we need to make a distinction between the "build tree" and
    the "install tree."  The "build tree" is what we've been talking
    about up until this point.  This is where the source code lives
    and all the compiling takes place.  Once the executables are
    built, they need to be installed someplace.  We shall call this
    install location the "install tree".  This is where the
    executables, the scenery, the textures, and any other run-time
    files will be located.

    Open the Cygnus bash via its entry in the Start menu.
    Mount the drive as follows (assuming you unpacked the code on d:):

         mkdir /mnt
         mount d: /mnt

    You only have to do this once. The drive stays mounted (until you
    umount it) even through reboots and switching off the machine.


10. Configure the make system for your environment and your "install
    tree".  Tell the configure script where you would like to install
    the exectuables and all the scenery and textures by using the
    "--prefix" option.  In the following example the base of the
    "install tree" is "\FlightGear".  Stay within the bash shell. Run:

        ./configure --prefix=/mnt/FlightGear

Side Note: the make procedure is designed to link against opengl.dll,
    glu.dll, and glut.dll.  However, some accelerated video cards
    require you to link against opengl32.exe, glu32.exe, and
    glut32.exe.  If this is the case for your video card, you can edit
    .../Simulator/Main/Makefile and rename these three libraries to
    their version "32" counterparts.  There is only one place in this
    make file where these files are listed.


11. Build the executable.  Run:

        make


12. Assuming you have installed the updated version of install.exe (see
    earlier instructions) you can now create and populate the install 
    tree.  Run:

        make install

    You can save a significant amount of space by stripping all the 
    debuging symbols off of the executables.  To do this run:

        strip file.exe

Important Note: so far you've built and installed the simulator and
    related tools.  Before you can actually try it out, you need to
    make sure you have the appropriate scenery and texture downloaded
    and unzip'ed in your "install tree".


13. Download and install the (most recent!) scenery and texture files.


14. In Windows explorer, change to /FlightGear/bin within your install tree.
    Call runfg.bat which will set the environment variable FG_ROOT and
    call the executable.


15. Try it out!  There are several ways to run flight gear once it has
    been installed. The simplest is as follows.  Run:

        \FlightGear\bin\runfg.bat     (command shell)


16. I appreciate feedback.  Tell me if it works!  If it doesn't, tell me 
    what went wrong.  My email is curt@me.umn.edu