Directions for building the Windows Installer.

it is required that you have cygwin with tar, gzip, 'zip', and perl installed
  http://www.cygwin.org
alternatively, steps 3 and 4 can be completed on a linux machine (which
will probably work better anyway)

The following additional tools are required:
NSIS 2.0b3 or newer: nsis.sourceforge.net

Optionally:
upx 1.90 or newer: http://upx.sourceforge.net/#unstable
resource hacker: http://www.users.on.net/johnson/resourcehacker/

1) Compile uqm.exe.  Note that uqmversion.h defines the version of UQM to build,
   and should be set appropriately before compiling

2) Build content .zip files and content.nsh
     For this procedure, you must have no modifications in the content tree.
     having additional files won't cause any issues, but there can't be any
     modified files.      
       ./build_archives.pl
     This will generate .zip files of the content directory (assuming
     uqmversion.h defines the version as 0.3):
        uqm-0.3-content.zip
        uqm-0.3-voice.zip
        uqm-0.3-3domusic.zip
     These files should be uploaded to the distribution web page

     It will also generate content.nsh which contains information about the
     archives, for use in the installer

3) Modify the install script:
     Edit options.nsh, and change the following variables:
       DOWNLOAD_LOCATION: The default directory to download the archives from 
                          if not using a mirror file.  NOTE:  This parameter 
                          can be overridden by setting <...>_LOCATION an a 
                          per-archive basis.
       MIRROR_LOCATION:   The default location of the mirror file to use for
                          retrieving the archives if <...>_USE_MIRROR is defined
                          (see below).  The mirror file contains a list of 
                          directries (http) where the data-file can be 
                          downloaded from.  NOTE: This parameter can be 
                          overridden by setting <...>_LOCATION an a 
                          per-archive basis.

       Each of the archives can be fine-tuned using per-archive defines.  For
       most of these, the defaults should be fine.  The only paramater that
       is likely to need changing is:
       <...>_USE_MIRROR:   Whether to use a mirror file or not.  If this
                           parameter is not defined then DOWNLOAD_LOCATION
                           will be used, ootherwise MIRROR_LOCATION will be
                           used.  If <...>_LOCATION is defined, then 
                           <...>_USE_MIRROR must still be set depending on
                           whetehr the locationn is a mirror-file or directory.
                           (NOTE: DO NOT set it to '0'.  The value should 
                           either be defined as '1' or not at all.  Defining 
                           it is '0' WILL break things)

       The other sections that may be changed are defined below, however it is
       STRONGLY recommended that you do not change them without being sure of
       what you are doing!
       <...>_LOCATION:     The path (http) to retrieve the data-file or mirror-
                           file from (depending on the value of 'USE_MIRROR')
                                                      
       USE_UBX:            This will compress uqm.exe and the installer with
                           ubx.  This may break the game and/or installer, and
                           is not recomended.
       MUI_VERSION:        The version of UQM you are building.  This parameter
                           is normally auto-defined by reading uqmversion.h, 
                           but can be manually overridden if needed.

4) Run NSIS to build the installer:
     makensis uqm.nsi
   The installer expects all the dlls to be in the same directory as uqm.exe

5) You should be done.