git.y1.nz

SameBoy

Accurate GB/GBC emulator
download: https://git.y1.nz/archives/sameboy.tar.gz
README | Files | Log | Refs | LICENSE

commit 17c962e5001a5973c9a08745cad933d645d204de
parent 17f0ff2cf782cd0f93fb680d23809894d0c7a66b
Author: Lior Halphon <LIJI32@gmail.com>
Date:   Sat,  9 Mar 2024 13:19:31 +0200

Update libretro build

Diffstat:
MMakefile2+-
Mlibretro/Makefile16+++++++++++++---
Mlibretro/gitlab-ci.yml17++++++-----------
Mlibretro/jni/Android.mk4+++-
4 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/Makefile b/Makefile @@ -636,7 +636,7 @@ $(BIN)/BootROMs/%.bin: BootROMs/%.asm $(OBJ)/BootROMs/SameBoyLogo.pb12 # Libretro Core (uses its own build system) libretro: - CFLAGS="$(WARNINGS)" $(MAKE) -C libretro BOOTROMS_DIR=$(abspath $(BOOTROMS_DIR)) + CFLAGS="$(WARNINGS)" $(MAKE) -C libretro BOOTROMS_DIR=$(BOOTROMS_DIR) BIN=$(BIN) # install for Linux/FreeDesktop/etc. # Does not install mimetype icons because FreeDesktop is cursed abomination with no right to exist. diff --git a/libretro/Makefile b/libretro/Makefile @@ -188,7 +188,7 @@ endif DEFINES := -DIOS ifeq ($(platform),ios-arm64) - CC = cc -arch armv64 -isysroot $(IOSSDK) + CC = cc -arch arm64 -isysroot $(IOSSDK) else CC = cc -arch armv7 -isysroot $(IOSSDK) endif @@ -211,7 +211,7 @@ endif CC = cc -arch arm64 -isysroot $(IOSSDK) else ifneq (,$(findstring qnx,$(platform))) - TARGET := $(TARGET_NAME)_libretro_qnx.so + TARGET := $(TARGET_NAME)_libretro_qnx.so fpic := -fPIC SHARED := -shared -Wl,--version-script=$(CORE_DIR)/libretro/link.T -Wl,--no-undefined else ifeq ($(platform), emscripten) @@ -326,7 +326,15 @@ else SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=$(CORE_DIR)/libretro/link.T -Wl,--no-undefined endif -TARGET := $(CORE_DIR)/build/bin/$(TARGET) +ifeq ($(STATIC_LINKING), 1) +# For some reason libretro's buildbot expects the output to be at ./libretro/ for static targets +BIN ?= $(realpath -m $(CORE_DIR)/libretro) +else +BIN ?= $(realpath -m $(CORE_DIR)) +endif +override BIN := $(shell cd .. && realpath -m $(BIN)) +TARGET := $(BIN)/$(TARGET) + # To force use of the Unix version instead of the Windows version MKDIR := $(shell which mkdir) @@ -365,6 +373,8 @@ CFLAGS += -D__LIBRETRO__ $(fpic) $(INCFLAGS) -std=gnu11 -D_GNU_SOURCE -D_USE_M all: $(TARGET) +override BOOTROMS_DIR := $(shell cd .. && realpath -m $(BOOTROMS_DIR)) + $(CORE_DIR)/libretro/%_boot.c: $(BOOTROMS_DIR)/%_boot.bin echo "/* AUTO-GENERATED */" > $@ echo "const unsigned char $(notdir $(@:%.c=%))[] = {" >> $@ diff --git a/libretro/gitlab-ci.yml b/libretro/gitlab-ci.yml @@ -7,15 +7,10 @@ # Core definitions .core-defs: variables: + JNI_PATH: libretro MAKEFILE_PATH: libretro CORENAME: sameboy - BOOTROMS_DIR: ../BootROMs/prebuilt - -.core-defs-android: - extends: .core-defs - variables: - JNI_PATH: libretro - BOOTROMS_DIR: ../../BootROMs/prebuilt + BOOTROMS_DIR: BootROMs/prebuilt # Inclusion templates, required for the build to work include: @@ -128,25 +123,25 @@ libretro-build-osx-arm64: android-armeabi-v7a: extends: - .libretro-android-jni-armeabi-v7a - - .core-defs-android + - .core-defs # Android ARMv8a android-arm64-v8a: extends: - .libretro-android-jni-arm64-v8a - - .core-defs-android + - .core-defs # Android 64-bit x86 android-x86_64: extends: - .libretro-android-jni-x86_64 - - .core-defs-android + - .core-defs # Android 32-bit x86 android-x86: extends: - .libretro-android-jni-x86 - - .core-defs-android + - .core-defs # iOS libretro-build-ios-arm64: diff --git a/libretro/jni/Android.mk b/libretro/jni/Android.mk @@ -22,7 +22,9 @@ LOCAL_CFLAGS := -std=c99 $(COREFLAGS) $(CFLAGS) LOCAL_LDFLAGS := -Wl,-version-script=$(CORE_DIR)/libretro/link.T include $(BUILD_SHARED_LIBRARY) -$(CORE_DIR)/libretro/%_boot.c: $(CORE_DIR)/build/bin/BootROMs/%_boot.bin +override BOOTROMS_DIR := $(shell cd ../.. && realpath -m $(BOOTROMS_DIR)) + +$(CORE_DIR)/libretro/%_boot.c: $(BOOTROMS_DIR)/%_boot.bin echo "/* AUTO-GENERATED */" > $@ echo "const unsigned char $(notdir $(@:%.c=%))[] = {" >> $@ hexdump -v -e '/1 "0x%02x, "' $< >> $@

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.