Setup¶
You need three things:
- hcc, the HolyC compiler from Jamesbarford/holyc-lang. It uses the system C compiler to assemble and link, so you need gcc or clang too.
- SDL2, the shared library.
- An OpenGL 3.3 core driver. Any GPU from the last decade, Mesa included.
The configuration the project is developed and tested on:
| Component | Version |
|---|---|
| OS | Arch Linux x86_64, KDE Plasma (Wayland) |
| hcc | v0.0.15-beta, commit 06ca611 (2026-09-06) |
| SDL2 | 2.32 (sdl2-compat) |
| GPU / driver | Intel RPL-S, Mesa 26.2, GL 4.6 core |
| C toolchain | gcc 16.2 |
The macOS and Windows steps below follow the hcc and SDL2 documentation but have not been run for this project yet. Reports are welcome.
1. Install build tools¶
2. Build and install hcc¶
Installing without root¶
The install prefix is compiled into hcc, so it has to be passed at build time as well as install time:
~/.local/lib must exist before make install, or copying libtos fails. Make sure ~/.local/bin is on your PATH.
If cmake isn't available from your package manager, uv tool install cmake or pipx install cmake installs a working copy to ~/.local/bin.
Check it works¶
hcc --version
printf 'U0 Main()\n{\n "hello from hcc\\n";\n}\n' > hello.HC
hcc hello.HC -o hello && ./hello
3. Install SDL2¶
The game reads no C headers. Its SDL2 and OpenGL declarations are written in HolyC. The -dev packages are still the easiest way to get the unversioned libSDL2.so that the linker looks for.
OpenGL comes with the system: libGL from Mesa or your GPU vendor on Linux, OpenGL.framework on macOS.
4. Check OpenGL (WSL2 and Linux)¶
sudo apt install mesa-utils # or your distro's equivalent
glxinfo -B | grep "OpenGL core profile version"
You need 3.3 or higher. On WSL2 this goes through Mesa's D3D12 driver; current Windows builds report 4.x.
Next: Build and test.