Add directions for compiling

This commit is contained in:
Zack Middleton 2023-03-07 17:33:13 -06:00
parent 00b5ebaf7b
commit 8ccf66ca7f
2 changed files with 97 additions and 0 deletions

7
README.md Normal file
View file

@ -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).

90
engine/README.md Normal file
View file

@ -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
```