From 22a75c01806151d5267472147c79303759768390 Mon Sep 17 00:00:00 2001 From: Shaun Inman Date: Sat, 4 Feb 2023 15:33:43 -0500 Subject: [PATCH] worked out core build process --- .gitignore | 6 ++- makefile | 14 ++++++- src/minarch/cores/makefile | 77 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 src/minarch/cores/makefile diff --git a/.gitignore b/.gitignore index 96f6fa7..8929852 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,8 @@ releases/ *.o *.so *.elf -*.dtb \ No newline at end of file +*.dtb + +# thanks I hate it +src/minarch/cores/* +!src/minarch/cores/makefile diff --git a/makefile b/makefile index ccd9444..75c96fb 100644 --- a/makefile +++ b/makefile @@ -32,7 +32,7 @@ sys: cd ./src/minui && make cores: - echo "TODO: cores" + cd ./src/minarch/cores && make tools: cd ./src/clock && make @@ -59,6 +59,18 @@ bundle: cp ./src/minarch/minarch.elf ./build/SYSTEM/rg35xx/bin cp ./src/minui/minui.elf ./build/SYSTEM/rg35xx/paks/MinUI.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 -R ./third-party/DinguxCommander/res ./build/EXTRAS/Tools/rg35xx/Files.pak/ diff --git a/src/minarch/cores/makefile b/src/minarch/cores/makefile new file mode 100644 index 0000000..73ba8b7 --- /dev/null +++ b/src/minarch/cores/makefile @@ -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) \ No newline at end of file