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-assetsTo 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-develMageia 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-developenSUSE 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-develDebian-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-devSolus 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-develTo 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.
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.
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
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)"-j$(nproc)" is an example, for a faster build, use "-jx" instead, where "x" is the amount of CPU threads you have, minus one.
To create a debug version of STK, run:
cmake .. -DCMAKE_BUILD_TYPE=DebugYou can install your build system-wide:
sudo make installThe 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
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-codeandstk-assetsmust 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).zipas needed and unpack the archive into thestk-codedirectory. -
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-codedirectory. Downloadi686if you use Win32 generator of MSVC,x86_64for x64,armv7for ARM andaarch64for 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-codedirectory in the 'Where is the source code' field, and point 'Where to build the binaries' to a new directory calledbuildorbldinside 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.slnfile; Visual Studio will now load the solution. -
In the 'Solution Explorer', right click on the
supertuxkartproject and select "Set as StartUp project". -
Open the 'Build' menu and select 'Build Solution'; or, press the default keyboard shortcut:
CTRL + SHIFT + Bto 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 |
-
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-codeandstk-assetsdirectories must be in the same directory,stk-assetsis 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-codedirectory. Downloadi686if you use Win32 generator of MSVC,x86_64for x64,armv7for ARM andaarch64for ARM64. -
Download CMake from here: CMake - download page; and install it. Navigate to the
stk-codedirectory; 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
- Get the LLVM Mingw archive here, get the
*-msvcrt-i686.zip or*-msvcrt-x86_64.zipdepending on whether you have an Intel / AMD 32 or 64-bit Windows. If you are using ARM64 Windows get the*-msvcrt-i686.zipshould be fine (untested). After downloading extract it asC:\llvm-mingwsoC:\llvm-mingwcontainsbin,include,lib, etc. - Get Ninja here, download the
ninja-win.zipand extract theninja.exefrom the archive toC:\llvm-mingw. If you are not using Intel / AMD 64-bit Windows use this link and extractmingw32\bin\ninja.exeinside thetar.zst. - Download a source package from either SuperTuxKart on GitHub or SuperTuxKart.net - Source Control
NOTE: the
stk-codeandstk-assetsdirectories must be in the same directory,stk-assetsis 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-codedirectory. Downloadi686if you compile for Intel / AMD 32-bit,x86_64for Intel / AMD 64-bit,armv7for ARM 32-bit andaarch64for 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-codedirectory in the 'Where is the source code' field, and point 'Where to build the binaries' to a new directory calledbuildinside the stk-code directory. - Press the
Add Entrybutton and add the values below:
- Name:
LLVM_ARCHType:STRINGValue:i686,x86_64,armv7oraarch64 - Name:
LLVM_PREFIXType:STRINGValue:C:/llvm-mingw - Name:
CMAKE_MAKE_PROGRAMType:STRINGValue:C:/llvm-mingw/ninja.exe - Name:
USE_WIIUSEType:BOOLValue:Empty (unchecked)
- Press 'Configure'; CMake will ask you if it is OK to create the aforementioned directory, press
Yes. ChooseNinjafromSpecify the generator for this project, chooseSpecify toolchain file for cross-compilingthen pressNext. Specify the toolchain file which is located instk-code\cmake\Toolchain-llvm-mingw.cmakeand pressFinish. If no error appears then press 'Generate' - Once inside the build directory using command line
cmd.exeor PowerShell:C:\llvm-mingw\ninja.exe
SuperTuxKart can now be run as bin\supertuxkart.exe.
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
makeAdd -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 for 10.9 compatibility.
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/libAdd -ns to disable ad-hoc codesigning
Afterwards, copy the contents of stk-assets into /SuperTuxKart.app/Contents/Resources/data.