1286903908
Document USE_INTERNAL_VORBIS in README Update CI to Ubuntu 20.04 Add protocol handler support Fix bad client reliableAcknowledge DOS exploit |
||
---|---|---|
.. | ||
code | ||
docs | ||
misc | ||
ui | ||
make-linux-portable.sh | ||
make-macosx-app.sh | ||
make-macosx-ub.sh | ||
make-macosx-ub2.sh | ||
make-macosx.sh | ||
Makefile | ||
README.md | ||
resync_ioq3.sh |
Q3Rally engine
Q3Rally is a standalone game based on ioquake3. However it's not compatible with ioquake3.
Compiling
Q3Rally is compiled using GNU Make (make
) from a terminal while in the engine directory.
make ARCH=x86
, make ARCH=x86_64
, make ARCH=aarch64
(ARM64/Apple Silicon) specify compiling for a specific architecture instead of the host architecture.
If you have commit access and use an SSH key use git clone git@github.com:Q3Rally-Team/q3rally.git
instead.
Windows
There is several ways to get an MinGW-w64 build environment.
MSYS2
- Install MSYS2 with packages: git, make, mingw-w64-i686-gcc mingw-w64-x86_64-gcc
- Open "MSYS2 MinGW 64-bit"
- Get the Q3Rally source code with
git clone https://github.com/Q3Rally-Team/q3rally.git
- Change to the engine directory using "cd q3rally/engine"
- Run
make
Cygwin
:This was more relevant before MSYS2 was made.
- Install Cygwin with packages: git, make, mingw64-i686-gcc-core, mingw64-x86_64-gcc-core
- Open "Cygwin"
- Get the Q3Rally source code with
git clone https://github.com/Q3Rally-Team/q3rally.git
- Change to the engine directory using
cd q3rally/engine
- Run
make
WSL
- Install Windows Subsystem for Linux.
- Install a Linux distribution from the Windows store (e.g., Ubuntu).
- Open the start menu entry for the distribution (e.g., Ubuntu).
- Install Git, Make, and MinGW-w64 packages, for Ubuntu run:
sudo apt install git make mingw-w64
- Get the Q3Rally source code with
git clone https://github.com/Q3Rally-Team/q3rally.git
- Change to the engine directory using "cd q3rally/engine"
- Run
make PLATFORM=mingw32
It's possible to compile for Linux under WSL using make
or ./make-linux-portable.sh
. Compiling for macOS using osxcross is not supported under WSL as of writting.
Linux
- Install
git make gcc libsdl2-dev
packages for your Linux distribution. - Get the Q3Rally source code with
git clone https://github.com/Q3Rally-Team/q3rally.git
- Change to the engine directory using "cd q3rally/engine"
- Run
make
To make a release which includes SDL2 run: ./make-linux-portable.sh x86_64
(also with x86).
make PLATFORM=mingw32
and make PLATFORM=darwin
can be used to cross-compile for Windows and macOS from Linux, if mingw-w64 and osxcross are installed.
macOS
- Install Xcode from the AppStore (the GUI is optional, only the command-line tools are required).
- Open Terminal app.
- Get the Q3Rally source code with
git clone https://github.com/Q3Rally-Team/q3rally.git
- Change to the engine directory using "cd q3rally/engine"
- Run
make
To create an AppBundle:
- Single architecture:
./make-macosx.sh x86_64
(if needed, replace x86_64 with aarch64 (Apple Silicon), x86, or ppc). - Modern macOS 10.9+ (Apple Silicon, x86_64):
./make-macosx-ub2.sh
- Legacy macOS 10.5+ (x86_64, x86, ppc):
./make-macosx-ub.sh
Modern AppBundle requires macOS 11.0 SDK or later to be installed. Legacy AppBundle must be compiled on macOS 10.6 with 10.5 and 10.6 SDKs installed.
Release builds
Assuming you have everything set up; release builds could be done like this.
clean
is used to do a fresh build to be sure VERSION, etc from Makefile are applied to the build.
-j#
is the number of CPUs thread to use. Set it to your CPU cores/threads for faster compiling.
# Windows; run on Windows or Linux with mingw-w64
make PLATFORM=mingw32 ARCH=x86 clean release -j8
make PLATFORM=mingw32 ARCH=x86_64 clean release -j8
# Linux; run on Linux or Windows (WSL)
./make-linux-portable.sh ARCH=x86 clean release -j8
./make-linux-portable.sh ARCH=x86_64 clean release -j8
# macOS Modern; run on macOS or Linux with osxcross
make PLATFORM=darwin ARCH=aarch64 clean
make PLATFORM=darwin ARCH=x86_64 clean
./make-macosx-ub2.sh
# macOS Legacy: run on macOS 10.6
make PLATFORM=darwin ARCH=x86_64 clean
make PLATFORM=darwin ARCH=x86 clean
make PLATFORM=darwin ARCH=ppc clean
./make-macosx-ub.sh