libretro-genode/cores
Emery Hemingway 7f84b6adc8 Add a Nix flake file
Build the frontend and cores with Nix. The trick is to prefetch the Git
submodules, write a Nix description listing each submodule, and transform
that into a set of packages.
2019-11-24 16:56:33 +01:00
..
4do Update Tupfiles for Nix 2019-11-19 16:11:12 +01:00
2048 Add Tup rules for generating Nix description of submodules 2019-11-19 16:46:51 +01:00
bluemsx Add Tup rules for generating Nix description of submodules 2019-11-19 16:46:51 +01:00
dosbox-libretro Update Tupfiles for Nix 2019-11-19 16:11:12 +01:00
fceumm Add Tup rules for generating Nix description of submodules 2019-11-19 16:46:51 +01:00
gambatte Add Tup rules for generating Nix description of submodules 2019-11-19 16:46:51 +01:00
lutro Found changes 2019-11-19 16:11:11 +01:00
mgba Found changes 2019-11-19 16:11:11 +01:00
mrboom Update Tupfiles for Nix 2019-11-19 16:11:12 +01:00
mu Add Tup rules for generating Nix description of submodules 2019-11-19 16:46:51 +01:00
nxengine Add Tup rules for generating Nix description of submodules 2019-11-19 16:46:51 +01:00
oberon Add Tup rules for generating Nix description of submodules 2019-11-19 16:46:51 +01:00
REminiscense Update Tupfiles for Nix 2019-11-19 16:11:12 +01:00
samples Add a Nix flake file 2019-11-24 16:56:33 +01:00
snes9x Remove broken Snes9x submodule 2019-11-19 16:11:13 +01:00
tyrquake Add Tup rules for generating Nix description of submodules 2019-11-19 16:46:51 +01:00
yabause Update Tupfiles for Nix 2019-11-19 16:11:12 +01:00
link.T Found changes 2019-11-19 16:11:11 +01:00
README.md Found changes 2019-11-19 16:11:11 +01:00
Tuprules.tup Disable stack protection 2019-11-19 16:46:51 +01:00

This directory contains core submodules and Genode-specific build rules. To port a core to Genode, add a minimal Tupfile to the upsteam repository, add a new directory containing the upstream Git repository here as submodule, then add a Tuprules.tup file in the local directory containg Genode build rules.

The upstream Tupfile should be as simple as possible. It must mirror the core TARGET_NAME defined in the Libretro makefile, the CORE_DIR if defined by Make as well, and the include_rules directive.

TARGET_NAME=2048
CORE_DIR=$(TUP_CWD)
include_rules

The local Tuprules.tup file contains the actual build rules. Typically a core repository contains Makefile and Makefile.common files, the later containing a list of sources files relative to a CORE_DIR variable, which can usually be included and parsed by Tup. Note that Tup cannot include files relative to a variable, Tuprules.tup must include Makefile.common relative to itself. Please refer to a Tuprules.tup in any of the core directories here as an example.

Unfortunately not all cores are trivally compatible with Tup, in particular those with makefiles that wrap a pre-Libretro Make build system.