               THE UR-QUAN MASTERS: BUILD INSTRUCTIONS
               ---------------------------------------

INSTALLING PREREQUISITES
------------------------

To build The Ur-Quan Masters, you must first install its
prerequisites: SDL2, PNG, Ogg Vorbis, and Zlib. How to do this will
depend on what operating system you are running:

On Debian or similar systems like Ubuntu, install the following packages:

  sudo apt-get install build-essential libogg-dev libpng-dev libsdl2-dev \
                       libvorbis-dev libz-dev

On Fedora or similar systems like CentOS, install these packages:
  sudo dnf install libogg-devel libpng-devel libvorbis-devel make SDL2-devel \
                   zlib-devel

On macOS, install Xcode from the App Store, and then install
"Additional components" when you run it for the first time. You can
then install brew from https://brew.sh and then use it to install your
requirements from the Terminal:

  brew install libogg libpng libvorbis sdl2

On Windows, you will need to use the MSYS2 system from
https://www.msys2.org -- after you install the base system, open an
"MSYS2 MSYS" window and update the system with the command

  pacman -Syuu

until there is nothing left to do. Aftr that you can install the
packages you will need to build the 32-bit version of UQM:

  pacman -S make pkg-config mingw-w64-i686-gcc mingw-w64-i686-libogg \
            mingw-w64-i686-libpng mingw-w64-i686-libsystre \
            mingw-w64-i686-libvorbis mingw-w64-i686-SDL2 mingw-w64-i686-zlib

Actually building UQM will need to be done from a "MSYS2 MinGW 32-bit"
window, not "MSYS2 MSYS".

BUILDING THE PROGRAM
--------------------

Building and configuration is managed by the "build.sh" script in the
same directory as this file. Ordinarily, you will only need the command

  ./build.sh uqm

To configure and build the system. Pass an argument like "-j5" for a
parallel build using 5 processes. To delete the current bulid and
reconfigure, issue the command

  ./build.sh uqm clean

And it will clear out all configuration choices.

The configuration process is interactive; for unattended or scripted
installs, consult the "config.state" file generated by the
configuration process and synthesize an equivalent as needed; builds
will then skip the configure step after that.

After the build completes, a binary named "uqm" or "uqm-debug" will be
created, and should be runnable out of this directory. To produce a
distributable or installable package that runs on any system, more
work is needed.

INSTALLING THE CONTENT
----------------------

Once the build is complete you'll need to download the content files,
if you have not done so already, and place them in your content directory.

This could be in the root folder where the
MegaMod was compiled:

  UQM-MegaMod/content

Or if you're compiling within Linux it could be in the default location used 
by the build script when ran with the "install" command

  /usr/share/uqm-megamod/content

--MAJOR RELEASES

For major releases all the content and addons can be found at the
main website:
  
  https://megamod.serosis.net/Releases

The base content package, mm-0.8.X-content.uqm, goes into a subfolder
named "packages" inside the content directory:

  /content/packages/mm-0.8.X-content.uqm

The addon content, mm-0.8.X-hd.uqm for example, goes into a subfolder
named "addons" inside the content directory:

  /content/addons/mm-0.8.X-hd.uqm

--LATEST GIT REPOSITORY

When building straight from the repository it is best 
that you download or clone the UQM-MegaMod-Content repository:

  https://github.com/JHGuitarFreak/UQM-MegaMod-Content

When downloading or cloning the content repo make sure to remove
the addons you do not want to load into the MegaMod.


BUILDING AN INSTALLABLE PACKAGE
-------------------------------

LINUX: The UQM project does not officially maintain any installation
packages for any Linux distro, but other volunteers have often done
this already. In general, all that will be needed is to arrange
matters so that the uqm binary and the content directory are installed
into globally accessible locations, and that it is invoked with
arguments that properly identify those directories.

WINDOWS: An installable Windows build takes the UQM.EXE file created
by the build process and then correlates it with the prepackaged
content packs to produce an installer executable that will download
all other data from sourceforge. See INSTALL.win32 for the extra steps
required for this.

MAC: A redistributable package on macOS is an app bundle that contains
everything needed to run the program. Because of the way brew handles
system dependencies, the program must be built differently to be
redistributable. See INSTALL.macos for details on how to do this.

