Setting up the development environment
--------------------------------------
-You first need tools to download and compile the Xonotic game data. Make sure you have at least 2 GB memory to compile.
+Make sure you have at least 2 GB memory to compile.
### Linux
-Linux already is adequate for development, all we need are the **dependencies** for the download/compilation process and then we can clone the data.
+**Ubuntu Dependencies**:
-**Ubuntu Dependencies** (independent package `x11-proto-devel` dependencies fill the rest of the Debian package dependencies):
+ sudo apt-get install autoconf build-essential curl git-core libtool libgmp-dev libjpeg-turbo8-dev libsdl2-dev libxpm-dev xserver-xorg-dev zlib1g-dev
- sudo apt-get install build-essential curl xserver-xorg-dev x11proto-xf86dri-dev x11proto-xf86dga-dev x11proto-xf86vidmode-dev libxxf86dga-dev libxcb-xf86dri0-dev libxpm-dev libxxf86vm-dev libsdl1.2-dev libsdl2-dev libsdl2-image-dev libclalsadrv-dev libasound2-dev libxext-dev libjpeg-turbo8-dev git-core unzip wget zlib1g-dev
+Note: On Debian, use `libjpeg8-dev` if `libjpeg-turbo8-dev` isn’t available in the package repositories.
-Note: If using **i386** architecture, you can replace `libsdl1.2debian` with `libsdl1.2debian:i386` in the list above. On Debian, use `libjpeg8-dev` if `libjpeg-turbo8-dev` isn’t available in the package repositories.
+Note: `curl` isn't required but it's strongly recommended for downloading maps when playing online.
-For **Fedora** and other **RPM based** distros dependencies:
+Note: `libasound2-dev libxext-dev libxxf86vm-dev p7zip-full unzip wget x11proto-xf86vidmode-dev` might be needed but are probably already installed. `libclalsadrv-dev libsdl2-image-dev libxcb-xf86dri0-dev libxxf86dga-dev x11proto-xf86dga-dev x11proto-xf86dri-dev` should no longer be needed.
- x11-proto-devel libalsa2-static-devel libjpeg62-devel libjpeg62-static-devel libSDL2-devel
+**Fedora** and other **RPM based** distro dependencies:
-For **Archlinux** the dependencies can be installed via the following command:
+ autoconf automake gcc-c++ gmp-devel libjpeg-turbo-devel libtool SDL2-devel
+
+Note: `x11-proto-devel` or `xorg-x11-proto-devel` might be needed but might be already installed.
+
+**Archlinux** dependencies:
sudo pacman -S alsa-lib curl libjpeg-turbo libmodplug libpng libvorbis libxpm libxxf86dga libxxf86vm sdl2 unzip wget
You can now use this shell to continue on with the guide and clone the Xonotic repositories.
-### Mac OSX
+### macOS
You must first install **XCode** which comes on your installation DVD or can be downloaded from the Apple website. This package provides tools like **Git and GCC**, which are needed for successful checkout and compilation of Xonotic. Some versions of XCode come with Git and others don’t - if you don’t have Git after installing XCode get it here: [XCode installer](http://sourceforge.net/projects/git-osx-installer/files/)
The **git://** protocol uses port **9418**, which may be a problem if you’re behind a **strict firewall**. You may instead use the clone url http://git.xonotic.org/xonotic/xonotic.git (however, using the git protocol directly is preferred for performance reasons).
-For Windows users: once finished cloning move to the main repository (`cd xonotic`) and checkout the branch Mario/Win64 with the command:
-
- git checkout -b Mario/win64 origin/Mario/win64
-
Now the game can be compiled and run with the following commands:
./all compile -r
**Note:** if you encounter en error similar to darkplaces#111, try `./all clean && ./all compile -r -0`.
-You can use just `./all compile` to create a slower build with debug symbols but usually you want `-r`.
+You can use just `./all compile` to create a slower unoptimized build with debug symbols but usually you want `-r`.
-The `./all run` or `./all compile` line can be followed by one of `glx` (Linux native), `sdl` (input/sound managed by SDL), `agl` (OSX native), `wgl` (Windows native), or `dedicated` (for server hosting) to choose which executable to run or compile. E.g. `./all compile -r dedicated`.
+The `./all run` or `./all compile` line can be followed by `dedicated` to build or run the executable for server hosting. E.g. `./all compile -r dedicated`.
The `run` command can also be followed by standard DarkPlaces commandline arguments:
To apply for write access, add your SSH key to your GitLab account and ask for access in #xonotic on the FreeNode IRC network or [request access](https://docs.gitlab.com/ce/user/group/index.html#request-access-to-a-group) using the GitLab interface.
-### Windows/Linux/OS X
+### Windows/Linux/macOS
Get a checkout (see above), and do:
This command commits and pushes your local changes.
- ./all run xonotic
+ ./all run
Starts the Xonotic client
- ./all run dedicated xonotic
+ ./all run dedicated
Starts a Xonotic dedicated server