diff --git a/README.md b/README.md new file mode 100644 index 00000000..668fa2a6 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +Q3Rally _It's damn fast, baby._ +=============================== + +Q3Rally is a standalone game based on ioquake3. + +For compiling, see [engine/README.md](engine/README.md). + diff --git a/engine/README.md b/engine/README.md new file mode 100644 index 00000000..46cde431 --- /dev/null +++ b/engine/README.md @@ -0,0 +1,90 @@ +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. + +### Windows +There is several ways to get an MinGW-w64 build environment. + +#### MSYS2 +1. Install MSYS2 with packages: git, make, mingw-w64-i686-gcc mingw-w64-x86_64-gcc +2. Open "MSYS2 MinGW 64-bit" +3. Get the Q3Rally source code with `git clone https://github.com/Q3Rally-Team/q3rally.git`. (If you have commit access use `git://` instead.) +4. Change to the engine directory using "cd q3rally/engine" +5. Run `make` + +#### Cygwin +:_This was more relevant before MSYS2 was made._ +1. Install Cygwin with packages: git, make, mingw64-i686-gcc-core, mingw64-x86_64-gcc-core +2. Open "Cygwin" +3. Get the Q3Rally source code with `git clone https://github.com/Q3Rally-Team/q3rally.git` (If you have commit access use `git://` instead.) +4. Change to the engine directory using `cd q3rally/engine` +5. Run `make` + +#### WSL +1. Install Windows Subsystem for Linux. +2. Install a Linux distribution from the Windows store (e.g., Ubuntu). +3. Open the start menu entry for the distribution (e.g., Ubuntu). +4. Install Git, Make, and MinGW-w64 packages, for Ubuntu run: `sudo apt install git make mingw-w64` +5. Get the Q3Rally source code with `git clone https://github.com/Q3Rally-Team/q3rally.git`. (If you have commit access use `git://` instead.) +6. Change to the engine directory using "cd q3rally/engine" +7. Run `make PLATFORM=mingw32` + +It 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 +1. Install `git make gcc libsdl2-dev` packages for your Linux distribution. +2. Get the Q3Rally source code with `git clone https://github.com/Q3Rally-Team/q3rally.git`. (If you have commit access use `git://` instead.) +3. Change to the engine directory using "cd q3rally/engine" +4. 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 +1. Install Xcode from the AppStore (the GUI is optional, only the command-line tools are required). +2. Open Terminal app. +3. Get the Q3Rally source code with `git clone https://github.com/Q3Rally-Team/q3rally.git`. (If you have commit access use `git://` instead.) +4. Change to the engine directory using "cd q3rally/engine" +5. 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 +```