As a first step, download MinGW/MSYS packages. Required packages are: mingw-runtime, w32api, binutils, gcc and MSYS graphical installer. Alternatively, Cygwin installation can be used, although the process is not described here.

It is recommended to install MSYS using graphical installer first, then uncompress each MinGW package into the mingw/ subdirectory of your MSYS main directory.

You also need to build zlib and install appropriate headers and libraries into your MinGW tree. By adding --disable-zlib option to configure script you can disable linking with zlib, but this is not a good idea as this will likely break network compatibility.

If you wish to include support for DirectSound and DirectInput drivers into the client executable, you also need to get dsound.h and dinput.h files from MS DirectX SDK and place them into your include path. No extra libraries are required. Then add the following options to configure script: --enable-dsound --enable-dinput.

If you wish to include support for 32 bit textures, you need to build libjpeg and libpng and install appropriate headers and libraries into your MinGW tree. Then add the following options to configure script: --enable-jpeg --enable-png.

Enter the following commands at MSYS prompt:

cd /path/to/q2pro/source/tree
./configure [options]
make

This should build the following files in the current direcory:

On Windows, install target is not supported as Q2PRO is not designed to run shared between users there. You need to manually move executables into your Quake 2 directory.