13 KiB
Building from source
In order to build SuperTuxKart from source, you'll need both the code and the assets (See https://supertuxkart.net/Source_control for more information):
git clone https://github.com/supertuxkart/stk-code stk-code
svn co https://svn.code.sf.net/p/supertuxkart/code/stk-assets stk-assets
Building SuperTuxKart on Linux
Dependencies
To build SuperTuxKart from source, you'll need to install the following packages:
- OpenAL (recommended: openal-soft-devel)
- Ogg (libogg-dev)
- Vorbis (libvorbis-dev)
- Freetype (libfreetype6-dev)
- Harfbuzz (libharfbuzz-dev)
- libcurl (libcurl-devel)
- libbluetooth (bluez-devel)
- openssl (openssl-dev)
- libpng (libpng-devel)
- zlib (zlib-devel)
- jpeg (libjpeg-turbo-devel)
- SDL2 (libsdl2-devel)
Fedora command:
sudo dnf install @development-tools angelscript-devel \
bluez-libs-devel cmake desktop-file-utils SDL2-devel \
freealut-devel freetype-devel \
gcc-c++ git-core libcurl-devel libjpeg-turbo-devel \
libpng-devel libsquish-devel libtool libvorbis-devel \
openal-soft-devel openssl-devel libcurl-devel harfbuzz-devel \
libogg-devel openssl-devel pkgconf \
wiiuse-devel zlib-devel
Mageia 6 command:
su -c 'urpmi gcc-c++ cmake openssl-devel libcurl-devel freetype-devel harfbuzz-devel \
libjpeg-turbo-devel libogg-devel openal-soft-devel SDL2-devel \
libpng-devel libvorbis-devel nettle-devel zlib-devel git subversion \
libbluez-devel libfreetype6-devel
openSUSE command:
sudo zypper install gcc-c++ cmake openssl-devel libcurl-devel libSDL2-devel \
freetype-devel harfbuzz-devel libogg-devel openal-soft-devel libpng-devel \
libvorbis-devel pkgconf zlib-devel enet-devel \
libjpeg-devel bluez-devel freetype2-devel
Debian-based Distributions command:
sudo apt-get install build-essential cmake libbluetooth-dev libsdl2-dev \
libcurl4-openssl-dev libenet-dev libfreetype6-dev libharfbuzz-dev \
libjpeg-dev libogg-dev libopenal-dev libpng-dev \
libssl-dev libvorbis-dev libmbedtls-dev pkg-config zlib1g-dev
Solus command:
sudo eopkg it cmake openal-soft-devel libogg-devel libvorbis-devel freetype2-devel \
harfbuzz-devel curl-devel bluez-devel openssl-devel libpng-devel zlib-devel \
libjpeg-turbo-devel sdl2-devel enet-devel libjpeg-turbo-devel bluez-devel curl-devel
In-game recorder
To build the in-game recorder for STK, you have to install
libopenglrecorder from your distribution, or compile it yourself from here.
Compilation instruction is explained there. If you don't need this feature, pass -DBUILD_RECORDER=off
to cmake.
Shaderc for Vulkan support
You need to compile Shaderc for vulkan support in SuperTuxKart if you are not building for Windows or macOS. If you don't need this feature, pass -DNO_SHADERC=on
to cmake.
Compiling
To compile SuperTuxKart, run the following commands inside stk-code
directory
# go into the stk-code directory
cd stk-code
# create and enter the cmake_build directory
mkdir cmake_build
cd cmake_build
# run cmake to generate the makefile
cmake ..
# compile
make -j$(nproc)
STK can then be run from the build directory with bin/supertuxkart
Keeping your build up to date
To recompile the latest code without redownloading the entire source, first run the svn up
command inside the 'stk-assets' directory, then run the following commands inside the 'stk-code' directory:
git pull
cd cmake_build
cmake ..
make -j$(nproc)
Build Speed Optimization
"-j$(nproc)" is an example, for a faster build, use "-jx" instead, where "x" is the amount of CPU threads you have, minus one.
Further options
To create a debug version of STK, run:
cmake .. -DCMAKE_BUILD_TYPE=Debug
You can install your build system-wide:
sudo make install
The default install location is /usr/local
, i.e. the data files will
be written to /usr/local/share/games/supertuxkart
, the executable
will be copied to /usr/local/bin
. To change the default installation
location, specify CMAKE_INSTALL_PREFIX
when running cmake, e.g.:
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/stk
Building SuperTuxKart on Windows
To Build SuperTuxKart on Windows follow these instructions:
-
Download and install Visual Studio from here: Visual Studio - Download. The free Visual Studio Community edition works fine. Remember to select "Desktop development with C++" in the installer.
-
If you want the stable version, download the SuperTuxKart source package from the latest stable version SuperTuxKart on GitHub and unpack it.
-
If you want the development version, you will need a Git client and a SVN client. More information can be found here: SuperTuxKart.net - Source Control. Open your file browser and find somewhere you want to put the development version of SuperTuxKart. For example in C:\Users<Your Username> as the Git and SVN clients will have write permissions there, and you should create its own directory, for example SuperTuxKart-dev. Enter that directory, and create a directory inside called stk-assets, and enter it. If you installed TortoiseSVN, right-click, select TortoiseSVN -> Checkout... and paste the corresponding URL found in SuperTuxKart.net - Source Control. While it is downloading the game assets, go back to your file browser and one level up. Right-click again somewhere empty and select "Git clone..." and paste the corresponding link found in SuperTuxKart.net - Source Control. Note: Both
stk-code
andstk-assets
must be in the same directory, otherwise the build will likely fail! -
If you got the stable version, download the Windows dependencies package from SuperTuxKart on GitHub - Dependencies Releases, find the stk-code version there and download the
dependencies(arch).zip
as needed and unpack the archive into thestk-code
directory. -
If you got the development version go to SuperTuxKart-dev in your file browser, then visit SuperTuxKart on GitHub - Dependencies latest preview release and unpack the archive into the
stk-code
directory. Downloadi686
if you use Win32 generator of MSVC,x86_64
for x64,armv7
for ARM andaarch64
for ARM64. -
Download CMake from here: CMake - download page, install it; once CMake is installed, double click on the CMake icon on your desktop, and point it towards your
stk-code
directory in the 'Where is the source code' field, and point 'Where to build the binaries' to a new directory calledbuild
orbld
inside the stk-code directory. -
Press 'Configure'; CMake will ask you if it is OK to create the aforementioned directory, press
Yes
. CMake will then ask you about your version of Visual Studio.Confirm your selection; Please look at the table below to avoid confusion between version numbers and releases of Visual Studio; CMake will begin creating the required files for the build in the directory. If you want to do a 64-bit build, select the version of Visual Studio you installed with "Win64" appended. Press 'Generate' button.
-
Navigate to your build directory and open the
SuperTuxKart.sln
file; Visual Studio will now load the solution. -
In the 'Solution Explorer', right click on the
supertuxkart
project and select "Set as StartUp project". -
Open the 'Build' menu and select 'Build Solution'; or, press the default keyboard shortcut:
CTRL + SHIFT + B
to build the solution.
Note: To avoid confusion between releases and versions, refer to this table:
Visual Studio Release | Version |
---|---|
Visual Studio 2019 | 16 |
Visual Studio 2017 | 15 |
Visual Studio 2015 | 14 |
Visual Studio 2013 | 13 |
Building SuperTuxKart on Windows (from PowerShell/Command line)
-
Download and install Visual Studio from here: Visual Studio - Download, the free Visual Studio Community edition works fine.
-
Download a source package from either SuperTuxKart on GitHub or SuperTuxKart.net - Source Control NOTE: the
stk-code
andstk-assets
directories must be in the same directory,stk-assets
is not needed if you download the full source tarball(SuperTuxKart-version-src.tar.xz)
. -
Download the Windows dependencies package from SuperTuxKart on GitHub - Dependencies latest preview release and unpack the archive into the
stk-code
directory. Downloadi686
if you use Win32 generator of MSVC,x86_64
for x64,armv7
for ARM andaarch64
for ARM64. -
Download CMake from here: CMake - download page; and install it. Navigate to the
stk-code
directory; and create an directory called "build":mkdir build cd build
-
Once inside the build directory; run CMake to start the compilation process:
cmake ..
-
Now that CMake finished configuring and creating the necessary files for the build, run the build command in the same directory:
msbuild.exe SuperTuxKart.sln
SuperTuxKart can now be run as bin\Debug\supertuxkart.exe
or bin\Release\supertuxkart.exe
Building SuperTuxKart on Windows using LLVM MinGW
- Get the LLVM Mingw archive here, get the
*-msvcrt-i686.zip or
*-msvcrt-x86_64.zip
depending on whether you have an Intel / AMD 32 or 64-bit Windows. If you are using ARM64 Windows get the*-msvcrt-i686.zip
should be fine (untested). After downloading extract it asC:\llvm-mingw
soC:\llvm-mingw
containsbin
,include
,lib
, etc. - Get Ninja here, download the
ninja-win.zip
and extract theninja.exe
from the archive toC:\llvm-mingw
. If you are not using Intel / AMD 64-bit Windows use this link and extractmingw32\bin\ninja.exe
inside thetar.zst
. - Download a source package from either SuperTuxKart on GitHub or SuperTuxKart.net - Source Control
NOTE: the
stk-code
andstk-assets
directories must be in the same directory,stk-assets
is not needed if you download the full source tarball(SuperTuxKart-version-src.tar.xz)
. Also make sure they lie within the C drive. - Download the Windows dependencies package from SuperTuxKart on GitHub - Dependencies latest preview release
and unpack the archive into the
stk-code
directory. Downloadi686
if you compile for Intel / AMD 32-bit,x86_64
for Intel / AMD 64-bit,armv7
for ARM 32-bit andaarch64
for ARM 64-bit version of Windows. - Download CMake from here: CMake - download page, install it; once CMake is installed, double click on the CMake icon on your desktop, and point it towards your
stk-code
directory in the 'Where is the source code' field, and point 'Where to build the binaries' to a new directory calledbuild
inside the stk-code directory. - Press the
Add Entry
button and add the values below:
- Name:
LLVM_ARCH
Type:STRING
Value:i686
,x86_64
,armv7
oraarch64
- Name:
LLVM_PREFIX
Type:STRING
Value:C:/llvm-mingw
- Name:
CMAKE_MAKE_PROGRAM
Type:STRING
Value:C:/llvm-mingw/ninja.exe
- Name:
USE_WIIUSE
Type:BOOL
Value:Empty (unchecked)
- Press 'Configure'; CMake will ask you if it is OK to create the aforementioned directory, press
Yes
. ChooseNinja
fromSpecify the generator for this project
, chooseSpecify toolchain file for cross-compiling
then pressNext
. Specify the toolchain file which is located instk-code\cmake\Toolchain-llvm-mingw.cmake
and pressFinish
. If no error appears then press 'Generate' - Once inside the build directory using command line
cmd.exe
or PowerShell:C:\llvm-mingw\ninja.exe
SuperTuxKart can now be run as bin\supertuxkart.exe
.
Building SuperTuxKart on macOS
Getting Started
Install the developer tools, either from the OS X Install DVD or from Apple's website.
Download dependencies-macosx.tar.xz
from Assets
section here and extract it inside stk-code directory, use preview
version for git stk-code.
Build STK
cd /path/to/stk-code
mkdir cmake_build
cd cmake_build
cmake .. -DCMAKE_FIND_ROOT_PATH=$(pwd)/../dependencies-macosx -DUSE_CRYPTO_OPENSSL=FALSE
make
Add -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9
for 10.9 compatibility.
(Optional) packaging for distribution
By default, the executable that is produced is not ready for distribution. Install https://github.com/auriamg/macdylibbundler and run:
dylibbundler -od -b -x ./bin/SuperTuxKart.app/Contents/MacOS/supertuxkart -d ./bin/SuperTuxKart.app/Contents/libs/ -p @executable_path/../libs/ -s ../dependencies-macosx/lib
Add -ns
to disable ad-hoc codesigning
Afterwards, copy the contents of stk-assets
into /SuperTuxKart.app/Contents/Resources/data
.