Chapter 4. From Source to Package – the Overall Process

The entire process of getting the source and turning it into a releasable package is as follows. The rest of this chapter describes these steps in more detail. As some steps have to be done on certain operating systems, the systems required are indicated for each one.

  1. Get the source using a Subversion client. (Doable on Linux and Windows.)

  2. Compile the ZQuake Engine and AudioQuake gamecode. (Automated on Linux; a little extra work on Windows.)

  3. Use the build scripts provided to set up the above engine and gamecode on your machine, for testing purposes. (Automated on Linux.)

  4. Use the build scripts to compile the documentation into HTML files for distribution. (Automated on Linux; doable with work on Windows.)

  5. Use the build scripts to package the game engine, gamecode and documentation into packages suitable for release. This contains a few separate stages, as follows.

    1. Put all engine binaries in a known location for the build scripts to pick them up.

    2. Check the setup script, which is the Linux self-installer script and update it as necessary. (Applicable to Linux.)

    3. Issue the build script command that requests releases packages be made and indicate which releases you'd like to make (i.e. Linux/PowerPC, Linux/x86, Windows). The result of this is a self-installer for Linux and ZIP files for Windows that need further processing. (Automated on Linux.)

    4. For Windows releases, the ZIP files need to be extracted and the setup.iss file compiled with Inno Setup to create a standard Windows setup program. (Applicable to Windows.)

      Note

      If you wish to include the SAPI runtime and/or voices with your release, you'll have to follow Microsoft's documentation on how to do that separately. The license does not permit redistribution of such modules outside of installers for full applications.

  6. The final stage is to put the files somewhere public and point people towards them. Remember to test them first, though!