How to build ioquake3 using Cygwin

This is a short tutorial on how to set up a mingw-w64 build environment for ioquake3 using Cygwin. One of the major downfalls of mingw-w64 is the fragmentation…i.e. lots of different builds, installers, scripts, etc. floating around the internet. I found it very confusing to figure out which version to download and how to install it etc. That’s where Cygwin comes to the rescue.

Not only are the Cygwin builds up to date but it is also very easy to install and maintain.

Cygwin is very much like a ‘rolling’ Linux distribution in that it is always updating packages within itself rather than putting out periodic ‘releases’

1. Install Cygwin
First off you want to download the Cygwin setup package from here:

Choose either the 32-bit or 64-bit environment (32-bit will work fine on both 32 and 64 bit versions of Windows)

A note here about the setup program. This is not the kind of setup program you just delete after installing. This is also your Cygwin environment updater. If you have an existing Cygwin environment, the setup program will, by default, update your existing packages.

Choose where you want to install Cygwin. The entire environment is self-contained in it’s own folder, but you can also interact with files from outside the environment if you want to as well.

Default is C:\Cygwin

Choose a mirror to download packages from. (I usually use the mirrors)

Choose a “storage area” for your package downloads.

2. Package selection.

The next screen you see will be the package selections screen. In the upper left is a search box. This is where you will want to search for the necessary packages.

These are the package names you’ll want to search for:

1.) mingw64-i686-gcc-core (For building 32bit binaries)
2.) mingw64-i686-gcc-g++ (Also for32bit…C++ support…Not required for ioquake3, but I recommend you get this too)
3.) mingw64-x86_64-gcc-core (For building 64bit binaries)
4.) mingw64-x86_64-gcc-g++ (For 64bit, same as above)
5.) make
6.) bison
7.) git

When you search for your packages you’ll see category listings. These packages would all be under the ‘Devel’ category.

To select a package, change the ‘Skip’ to the version of the package you want to install. The first click will be the newest version and subsequent clicks will allow you to choose older versions of the package. In our case here, you’re probably good choosing the latest and greatest.

3. Install packages.

After you have selected your packages, just hit ‘Next’ in the lower right. Cygwin will automatically add package dependencies. Hit next again to let the install run. Done.

The entire environment uses about 1GB of disk space (as opposed to about 6GB for a Visual Studio install)

4. Using Cygwin to check out and build ioquake3

After the install has completed you should have a ‘Cygwin Terminal’ icon on your Desktop. This is the bash shell for Cygwin, so go ahead and run it.

At the command prompt type:
git clone

This will pull the ioquake3 master branch source.

‘cd’ into the ioq3 folder that was created…

cd ioq3

ARCH=x86 make (to build 32bit binaries)
ARCH=x86_64 make (for 64bit binaries)

Wait for build to complete.

Output files will be in the ‘build’ folder.
(So for a default Cygwin install the path would be: C:\Cygwin\home\Your_Username\ioq3\build\release-mingw32-arch)

5. Have fun!


Great info!

I was unable to find the patch that fixes the qvm tools building, can you please link this as well?

Not sure why it hasn’t been committed [This topic is out of date, ioquake3 has supported cygwin for some time -TD] but here is the patch:

I’m not really familiar with Cygwin… so how do I apply this patch.

you don’t need to, see the edit in the message you read.

HERP DERP… lol thanks