Emery Hemingway
7f84b6adc8
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. |
||
---|---|---|
.. | ||
4do | ||
2048 | ||
bluemsx | ||
dosbox-libretro | ||
fceumm | ||
gambatte | ||
lutro | ||
mgba | ||
mrboom | ||
mu | ||
nxengine | ||
oberon | ||
REminiscense | ||
samples | ||
snes9x | ||
tyrquake | ||
yabause | ||
link.T | ||
README.md | ||
Tuprules.tup |
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.