worked out core build process

This commit is contained in:
Shaun Inman 2023-02-04 15:33:43 -05:00
parent 1818daff4a
commit 22a75c0180
3 changed files with 95 additions and 2 deletions

4
.gitignore vendored
View file

@ -8,3 +8,7 @@ releases/
*.so *.so
*.elf *.elf
*.dtb *.dtb
# thanks I hate it
src/minarch/cores/*
!src/minarch/cores/makefile

View file

@ -32,7 +32,7 @@ sys:
cd ./src/minui && make cd ./src/minui && make
cores: cores:
echo "TODO: cores" cd ./src/minarch/cores && make
tools: tools:
cd ./src/clock && make cd ./src/clock && make
@ -59,6 +59,18 @@ bundle:
cp ./src/minarch/minarch.elf ./build/SYSTEM/rg35xx/bin cp ./src/minarch/minarch.elf ./build/SYSTEM/rg35xx/bin
cp ./src/minui/minui.elf ./build/SYSTEM/rg35xx/paks/MinUI.pak cp ./src/minui/minui.elf ./build/SYSTEM/rg35xx/paks/MinUI.pak
cp ./src/clock/clock.elf ./build/EXTRAS/Tools/rg35xx/Clock.pak cp ./src/clock/clock.elf ./build/EXTRAS/Tools/rg35xx/Clock.pak
# stock cores
cp ./src/minarch/cores/fceumm_libretro.so ./build/SYSTEM/rg35xx/cores
cp ./src/minarch/cores/gambatte_libretro.so ./build/SYSTEM/rg35xx/cores
cp ./src/minarch/cores/gpsp_libretro.so ./build/SYSTEM/rg35xx/cores
cp ./src/minarch/cores/pcsx_rearmed_libretro.so ./build/SYSTEM/rg35xx/cores
cp ./src/minarch/cores/picodrive_libretro.so ./build/EXTRAS/Emus/rg35xx/PKM.pak
cp ./src/minarch/cores/snes9x2005_plus_libretro.so ./build/SYSTEM/rg35xx/cores
# extras
cp ./src/minarch/cores/beetle-vb_libretro.so ./build/EXTRAS/Emus/rg35xx/VB.pak
cp ./src/minarch/cores/pokemini_libretro.so ./build/SYSTEM/rg35xx/cores
cp ./third-party/DinguxCommander/output/DinguxCommander ./build/EXTRAS/Tools/rg35xx/Files.pak cp ./third-party/DinguxCommander/output/DinguxCommander ./build/EXTRAS/Tools/rg35xx/Files.pak
cp -R ./third-party/DinguxCommander/res ./build/EXTRAS/Tools/rg35xx/Files.pak/ cp -R ./third-party/DinguxCommander/res ./build/EXTRAS/Tools/rg35xx/Files.pak/

View file

@ -0,0 +1,77 @@
# this logic was broken out from picoarch's all-in-one makefile
CORES = fceumm gambatte gpsp pcsx_rearmed picodrive pokemini snes9x2005_plus
CORES+= beetle-vb
###############################
# optional core vars
# *_REPO=
# *_HASH=
# *_CORE=
# *_FLAGS=
# *_MAKEFILE=
# *_BUILD_PATH=
beetle-vb_REPO = https://github.com/libretro/beetle-vb-libretro
beetle-vb_CORE = mednafen_vb_libretro.so
fceumm_REPO = https://github.com/libretro/libretro-fceumm
gambatte_REPO = https://github.com/libretro/gambatte-libretro
pcsx_rearmed_MAKEFILE = Makefile.libretro
picodrive_REPO = https://github.com/irixxxx/picodrive
picodrive_MAKEFILE = Makefile.libretro
pokemini_REPO = https://github.com/libretro/PokeMini
pokemini_MAKEFILE = Makefile.libretro
snes9x2005_plus_REPO = https://github.com/libretro/snes9x2005
snes9x2005_plus_FLAGS = USE_BLARGG_APU=1
###############################
PATCH = git apply
PROCS = -j4
###############################
define TEMPLATE=
$1_REPO ?= https://github.com/libretro/$(1)
$1_MAKE ?= make $(and $($1_MAKEFILE),-f $($1_MAKEFILE)) platform=$(UNION_PLATFORM) $($(1)_FLAGS)
$1_BUILD_PATH ?= $(1)
$(1):
mkdir -p cores
cd cores && git clone $(if $($1_HASH),,--depth 1) --recursive $$($(1)_REPO) $(1)
$(if $($1_HASH),cd $$($1_BUILD_PATH) && git checkout $($1_HASH) && echo $($1_HASH),)
$(1)/.patched: $(1)
(test ! -f patches/$(1).patch) || (test -f $(1)/.patched) || (cd $(1) && $(PATCH) -p1 < ../../patches/$(1).patch && touch .patched && true)
$(1)_libretro.so: $(1)/.patched
cd $$($1_BUILD_PATH) && $$($1_MAKE) $(PROCS)
mv $$($1_BUILD_PATH)/$(if $($(1)_CORE),$($(1)_CORE),$(1)_libretro.so) $(1)_libretro.so
clone-$(1): $(1)
patch-$(1): $(1)/.patched
clean-$(1):
test ! -d $(1) || cd $$($1_BUILD_PATH) && $$($1_MAKE) clean
rm -rf $(1)_libretro.so
$(1): $(1)_libretro.so
endef
###############################
all: cores
$(foreach CORE,$(CORES),$(eval $(call TEMPLATE,$(CORE))))
cores: $(foreach CORE,$(CORES),$(CORE)_libretro.so)