Menu

Tree [990235] master /
 History

HTTPS access


File Date Author Commit
 .github 2025-08-23 Paul Cercueil Paul Cercueil [a270ec] CI: Automatically sync to SourceForge
 SDL 2025-09-20 darc darc [f86e84] Use upstream SDL 1.2 repo directly instead of o...
 SDL_ttf 2024-05-18 Donald Haase Donald Haase [e8d28a] Remove extraneous lm (#68)
 cglm 2025-12-14 Bruce Leet Bruce Leet [282e50] add patch file for cglm and supress warnings (#...
 curl 2026-02-22 SpecialK6466 SpecialK6466 [1dfb7e] Update curl 7.64.1 -> 8.18.0 with mbedTLS
 expat 2024-08-08 MastaG MastaG [a0750a] expat: fix build with flto
 freetype 2025-04-22 kapodamy kapodamy [3a3055] Update to version 2.13.3
 libADX 2025-08-24 Mickaël Cardoso Mickaël Cardoso [3a5a50] `libADX`: Bump to v1.0.1
 libAL 2023-12-29 Lawrence Sebald Lawrence Sebald [424a7d] Fix spacing in most of the Makefiles in the var...
 libGL 2025-12-10 darc darc [ed2f60] Allow for GLdc to build without samples or tests
 libKGL 2024-03-15 darc darc [203c65] Fix libGL/libKGL repo URLs. Maybe even correctl...
 libbearssl 2025-12-25 QuzarDC QuzarDC [d8b490] bearssl: Override CC using MAKE_TARGET
 libbz2 2023-12-29 Lawrence Sebald Lawrence Sebald [424a7d] Fix spacing in most of the Makefiles in the var...
 libchipmunk 2025-01-19 darc darc [24b22f] Fix comments, formatting issues, and prebuild/p...
 libcmark 2025-01-19 darc darc [24b22f] Fix comments, formatting issues, and prebuild/p...
 libconio 2024-01-05 darc darc [aff501] Rename GIT_REPOSITORY to GIT_REPOSITORIES for p...
 libdcplib 2024-01-05 darc darc [aff501] Rename GIT_REPOSITORY to GIT_REPOSITORIES for p...
 libfastmem 2023-05-18 SiZiOUS SiZiOUS [415f84] Adding `libfastmem` to kos-ports. (#23)
 libimageload 2024-01-05 darc darc [aff501] Rename GIT_REPOSITORY to GIT_REPOSITORIES for p...
 libjimtcl 2023-12-29 Lawrence Sebald Lawrence Sebald [424a7d] Fix spacing in most of the Makefiles in the var...
 libjpeg 2024-08-16 Damián Parrino Damián Parrino [3de438] Update Makefile
 libkmg 2024-01-05 darc darc [aff501] Rename GIT_REPOSITORY to GIT_REPOSITORIES for p...
 libkosh 2024-01-05 darc darc [aff501] Rename GIT_REPOSITORY to GIT_REPOSITORIES for p...
 libmodplug 2024-01-05 darc darc [aff501] Rename GIT_REPOSITORY to GIT_REPOSITORIES for p...
 libmp3 2025-10-03 QuzarDC QuzarDC [57fb1f] libmp3: Force building against `c17`
 libmpeg 2023-12-29 Lawrence Sebald Lawrence Sebald [b01cba] libmpeg: Add distinfo.
 libogg 2025-03-01 QuzarDC QuzarDC [b73ba7] Update libogg to 1.3.5 as well as to use autoto...
 liboggvorbisplay 2024-01-05 darc darc [aff501] Rename GIT_REPOSITORY to GIT_REPOSITORIES for p...
 libopusplay 2024-01-05 darc darc [aff501] Rename GIT_REPOSITORY to GIT_REPOSITORIES for p...
 libparallax 2024-01-05 darc darc [aff501] Rename GIT_REPOSITORY to GIT_REPOSITORIES for p...
 libpcx 2024-01-05 darc darc [aff501] Rename GIT_REPOSITORY to GIT_REPOSITORIES for p...
 libpng 2026-04-23 Paul Cercueil Paul Cercueil [990235] libpng: Avoid ICE with some GCC versions
 libsmb2 2026-04-15 Paul Cercueil Paul Cercueil [fd0592] libsmb2: Switch to using master branch
 libtga 2024-01-05 darc darc [aff501] Rename GIT_REPOSITORY to GIT_REPOSITORIES for p...
 libtremor 2024-04-24 Andress Barajas Andress Barajas [815626] Fix warnings
 libtsunami 2024-06-05 Colton Pawielski Colton Pawielski [6bc2d4] Fix libtsunami build on GCC9&10 (#71)
 libvldmail 2026-04-01 MastaG MastaG [a3efd0] libvldmail: Fix In-source builds are not allowed
 libvorbis 2025-03-01 QuzarDC QuzarDC [3bd26a] Update libvorbis to 1.3.7
 libwav 2023-12-29 Lawrence Sebald Lawrence Sebald [424a7d] Fix spacing in most of the Makefiles in the var...
 libyaml 2024-08-08 MastaG MastaG [67386b] libyaml: fix build with flto
 libzip 2025-08-29 Fancy2209 Fancy2209 [858818] Fix building with CMake 4
 lua 2026-01-17 Falco Girgis Falco Girgis [96be13] Installed source/llimits.h include with Lua.5.5.
 mbedtls 2025-12-30 QuzarDC QuzarDC [dc1264] New port of mbedtls.
 micropython 2025-08-23 Mickaël Cardoso Mickaël Cardoso [3be9c0] `micropython`: bump to v1.26.0
 mruby 2025-08-26 Mickaël Cardoso Mickaël Cardoso [c8d55f] `mruby`: improvement on `rake` detection
 opus 2025-01-19 darc darc [24b22f] Fix comments, formatting issues, and prebuild/p...
 opusfile 2025-01-19 darc darc [24b22f] Fix comments, formatting issues, and prebuild/p...
 polarssl 2025-08-29 Fancy2209 Fancy2209 [858818] Fix building with CMake 4
 raylib4dc 2026-04-03 tractorbeam tractorbeam [33405e] raylib4dc - add patch file to fix ICE with GCC 15
 scripts 2025-09-28 QuzarDC QuzarDC [572a35] Update validation script to show more info on f...
 sh4zam 2025-12-13 Falco Girgis Falco Girgis [452e20] Added libSH4ZAM to kos-ports. (#130)
 stb_image 2024-01-31 Jason Rost Jason Rost [7e1971] 1-31-24 Fixed Makefile. Apparently added commen...
 utils 2024-06-30 Colton Pawielski Colton Pawielski [c10c4f] Fix unsupported bash for MacOS
 zlib 2026-02-18 Siana Gearz Siana Gearz [5e2b2e] Update zlib to 1.3.2
 .gitignore 2024-10-25 darc darc [b8c3a3] Adjust .gitignore to ignore build and dist dirs
 COPYING 2023-12-30 Lawrence Sebald Lawrence Sebald [088ecc] Update copyright
 README.md 2024-10-25 darc darc [d4af38] Add floating-point precision setting check func...
 config.mk 2024-10-25 darc darc [d4af38] Add floating-point precision setting check func...

Read Me

kos-ports: KallistiOS Package Manager

Introduction

kos-ports is a package manager and repository of various useful libraries that
have been ported to the Dreamcast operating system
KallistiOS. These libraries include
common audiovisual formats (jpg, png, mp3, ogg, mpeg), compression formats (libbz2,
zlib), scripting languages (Lua, Tcl, MicroPython), gaming APIs (OpenGL, OpenAL,
SDL), and more. Each port is meant to be as self-contained as possible and should
build on the current version of KallistiOS. Dependency libraries will be fetched and
built automatically, if necessary.

Prerequisites

KallistiOS

Users must have a KallistiOS environment
set up already. This means you must have an SH4 toolchain built and have already
compiled KallistiOS itself. Before attempting to build a port, make sure you have
sourced your KallistiOS environ.sh file in your current terminal.

Environment

  1. curl or wget are required to download packages. curl is used by default,
    but wget may be set as an alternative in config.mk.
  2. GNU make and Bash. Other make tools and shells have not been tested and
    may not work properly.
  3. Git and CMake may be required for some packages in the collection.
  4. Python is required to validate packages. If you don't have Python and wish to
    skip validation, you can set this in config.mk.

Building a port

kos-ports was modelled after the FreeBSD ports collection, so some users may
be familiar with the usage.

To build a port, simply enter its directory and type make install clean.

The package management scripts should fetch, unpack, patch, and build the package
as well as any dependencies, then clean up files after itself. Once built, the
package's headers will be available in kos-ports/include and the built library
in kos-ports/lib. These paths are automatically included in your build flags if
you are using the KOS Makefile system.

Using the ports tree

There are a few available make targets that can be used in each port directory:

  • install: Perform all steps to download, patch, build, and install the port in
    question.
  • clean: Clean up any dist files and intermediate build results.
  • uninstall: Uninstall the port. This does not make sure dependencies are still
    fulfilled, so keep that in mind!
  • portinfo: Print to the terminal a description and various metadata about the
    port in question.

Managing all ports

The following helper scripts are provided in the utils directory to perform
the above operations on all ports in the tree:

  • build-all.sh will install all ports.
  • uninstall-all.sh will uninstall all ports.
  • clean-all.sh will clean all ports.

Lesser used targets (mainly for internal use):

  • version-check: Check the version of the port that is currently installed.
  • depends-check: Check if all dependencies of the port are installed.
  • abi-check: Check if the current KOS floating-point ABI is compatible.
  • fetch: Download dist files from upstream.
  • validate-dist: Check downloaded distfiles for validity, if enabled.
  • unpack: Unpack any fetched packages for the port.
  • build-stamp: Build the port, but do not install it.
  • clean-dist: Clean up any dist files. Does not clean build files.
  • clean-build: Cleans up build files, leaving dist files in place.

Porting a new library

Porting a new library is meant to be a relatively simple task. Take a look at
an existing port, such as libpng, to get an idea how the package manager works.
If you need assistance, feel free to reach out using the usual support channels.

MongoDB Logo MongoDB