This guide explains how to build recent versions of SuperTux from source. It is
assumed that you will either use git to fetch the source code or that you will
use an officially provided tarball (**not** those auto-generated by GitHub, as
these are broken). It is also assumed that you already know some basics of the
command line on UNIX-like systems.

Notes for Windows Users
-----------------------

To build on Windows, see the instructions here: https://github.com/SuperTux/supertux/blob/master/INSTALL.md#installing-under-windows-using-cmake-and-visual-studio

Dependencies
------------

- General development tools

  - C++ compiler (a recent version of GCC or Clang)
  - A GNU Binutils equivalent
  - A Shell
  - Common POSIX command line tools

- CMake 2.6 or later
- OpenGL headers and libraries
- SDL2
- SDL2_image
- OpenAL
- C++ OpenGL Bindings

  - GLEW
  - glbinding

- Boost
- cURL
- libogg
- libvorbis

In addition to the libraries listed above, you will also need the respective
development headers. Some distributions of Linux ship these as separate package.

Instructions
------------

You need to run this commands in a Terminal to get SuperTux built.

1. If you don't have the source code yet, download it via git (requires
   git to be installed)
   ::
      git clone https://github.com/SuperTux/supertux.git
2. Enter the directory containing SuperTux's source code
   ::
      cd supertux
3. Make sure all submodules are downloaded. This step is required for
   successful compilation!
   ::
      git submodule update --init --recursive
4. Create a new directory for build files and change to it.
   ::
      mkdir build
      cd build
5. Generate the Makefiles required for the build process using CMake
   ::
      cmake ..
6. Start the build process
   ::
      make
7. You should now be able to start your build of SuperTux
   ::
      ./supertux2

If you run into any issues while compiling, please contact us on IRC or the Forums.
