diff --git a/packages/emulators/libretro/mupen64plus-nx-lr/package.mk b/packages/emulators/libretro/mupen64plus-nx-lr/package.mk index dca9fdc8d..642017e46 100755 --- a/packages/emulators/libretro/mupen64plus-nx-lr/package.mk +++ b/packages/emulators/libretro/mupen64plus-nx-lr/package.mk @@ -26,7 +26,7 @@ fi pre_configure_target() { sed -e "s|^GIT_VERSION ?.*$|GIT_VERSION := \" ${PKG_VERSION:0:7}\"|" -i Makefile case ${DEVICE} in - RK35*) + RK3*|S922X*) PKG_MAKE_OPTS_TARGET=" platform=${DEVICE}" ;; esac diff --git a/packages/emulators/libretro/mupen64plus-nx-lr/patches/000-platform.patch b/packages/emulators/libretro/mupen64plus-nx-lr/patches/000-platform.patch new file mode 100644 index 000000000..bf0f97248 --- /dev/null +++ b/packages/emulators/libretro/mupen64plus-nx-lr/patches/000-platform.patch @@ -0,0 +1,58 @@ +diff --git a/Makefile b/Makefile +index c7c20ed..13017e5 100644 +--- a/Makefile ++++ b/Makefile +@@ -356,34 +356,29 @@ else ifneq (,$(findstring arm64_cortex_a53_gles3,$(platform))) + COREFLAGS += -DOS_LINUX + ASFLAGS = -f elf64 -d ELF_TYPE + +-# Rockchip RK3288 e.g. Asus Tinker Board / RK3328 e.g. PINE64 Rock64 / RK3399 e.g. PINE64 RockPro64 - 32-bit userspace +-else ifneq (,$(findstring RK,$(platform))) ++# Amlogic S922X ++else ifneq (,$(findstring S922X,$(platform))) + TARGET := $(TARGET_NAME)_libretro.so + LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl ++ CPUFLAGS += -march=armv8-a -mtune=@TARGET_CPU@ ++ GL_LIB := -lGLESv2 ++ WITH_DYNAREC := aarch64 ++ GLES3 = 1 ++ HAVE_PARALLEL_RSP = 1 ++ HAVE_PARALLEL_RDP = 1 ++ COREFLAGS += -DOS_LINUX ++ ASFLAGS = -f elf64 -d ELF_TYPE + +- ifneq (,$(findstring RK33,$(platform))) +- CPUFLAGS += -march=armv8-a+crc -mfloat-abi=hard -mfpu=neon-fp-armv8 +- ifneq (,$(findstring RK3399,$(platform))) +- CPUFLAGS += -mtune=cortex-a72.cortex-a53 +- GLES3 = 1 +- else ifneq (,$(findstring RK3328,$(platform))) +- CPUFLAGS += -mtune=cortex-a53 +- GLES = 1 +- endif +- else ifneq (,$(findstring RK3288,$(platform))) +- CPUFLAGS += -march=armv7ve -mtune=cortex-a17 -mfloat-abi=hard -mfpu=neon-vfpv4 +- GLES3 = 1 +- endif +- +- ifneq (,$(findstring mesa,$(platform))) +- COREFLAGS += -DEGL_NO_X11 +- endif +- ++# Rockchip RK3326, RK3566, RK3588 ++else ifneq (,$(findstring RK3,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl ++ CPUFLAGS += -march=armv8-a -mtune=@TARGET_CPU@ + GL_LIB := -lGLESv2 +- HAVE_NEON = 1 +- WITH_DYNAREC=arm +- COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX +- ASFLAGS = -f elf -d ELF_TYPE ++ WITH_DYNAREC := aarch64 ++ GLES3 = 1 ++ COREFLAGS += -DOS_LINUX ++ ASFLAGS = -f elf64 -d ELF_TYPE + + # OS X + else ifneq (,$(findstring osx,$(platform))) diff --git a/packages/emulators/libretro/mupen64plus-nx-lr/patches/aarch64/001-optimizations.patch b/packages/emulators/libretro/mupen64plus-nx-lr/patches/aarch64/001-optimizations.patch deleted file mode 100644 index fcba2fd6e..000000000 --- a/packages/emulators/libretro/mupen64plus-nx-lr/patches/aarch64/001-optimizations.patch +++ /dev/null @@ -1,689 +0,0 @@ -diff -rupN mupen64plus.orig/Makefile mupen64plus/Makefile ---- mupen64plus.orig/Makefile 2022-09-23 07:01:22.758058025 -0400 -+++ mupen64plus/Makefile 2022-09-23 07:05:08.886138368 -0400 -@@ -319,7 +319,7 @@ else ifneq (,$(findstring AMLG,$(platfor - - HAVE_NEON = 1 - WITH_DYNAREC=arm -- COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX -+ #COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX - ASFLAGS = -f elf -d ELF_TYPE - - # Amlogic S905/S912 -@@ -362,13 +362,10 @@ else ifneq (,$(findstring RK,$(platform) - LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl - - ifneq (,$(findstring RK33,$(platform))) -- CPUFLAGS += -march=armv8-a+crc -mfloat-abi=hard -mfpu=neon-fp-armv8 - ifneq (,$(findstring RK3399,$(platform))) -- CPUFLAGS += -mtune=cortex-a72.cortex-a53 -- GLES3 = 1 -- else ifneq (,$(findstring RK3328,$(platform))) -- CPUFLAGS += -mtune=cortex-a53 -- GLES = 1 -+ CPUFLAGS += -march=armv8-a -mtune=cortex-a72.cortex-a53 -+ else ifneq (,$(findstring @DEVICE@,$(platform))) -+ CPUFLAGS += -march=armv8-a -mtune=@TARGET_CPU@ - endif - else ifneq (,$(findstring RK3288,$(platform))) - CPUFLAGS += -march=armv7ve -mtune=cortex-a17 -mfloat-abi=hard -mfpu=neon-vfpv4 -@@ -380,10 +377,10 @@ else ifneq (,$(findstring RK,$(platform) - endif - - GL_LIB := -lGLESv2 -- HAVE_NEON = 1 -- WITH_DYNAREC=arm -- COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX -- ASFLAGS = -f elf -d ELF_TYPE -+ WITH_DYNAREC := aarch64 -+ GLES3 = 1 -+ COREFLAGS += -DOS_LINUX -+ ASFLAGS = -f elf64 -d ELF_TYPE - - # OS X - else ifneq (,$(findstring osx,$(platform))) -diff -rupN mupen64plus.orig/Makefile.orig mupen64plus/Makefile.orig ---- mupen64plus.orig/Makefile.orig 1969-12-31 19:00:00.000000000 -0500 -+++ mupen64plus/Makefile.orig 2022-09-23 07:01:25.158078690 -0400 -@@ -0,0 +1,641 @@ -+DEBUG = 0 -+FORCE_GLES ?= 0 -+FORCE_GLES3 ?= 0 -+LLE ?= 0 -+HAVE_PARALLEL_RSP ?= 0 -+HAVE_PARALLEL_RDP ?= 0 -+ -+SYSTEM_MINIZIP ?= 0 -+SYSTEM_LIBPNG ?= 0 -+SYSTEM_XXHASH ?= 0 -+SYSTEM_ZLIB ?= 0 -+ -+HAVE_LTCG ?= 0 -+DYNAFLAGS := -+INCFLAGS := -+COREFLAGS := -+CPUFLAGS := -+GLFLAGS := -+AWK ?= awk -+STRINGS ?= strings -+TR ?= tr -+ -+UNAME=$(shell uname -a) -+ -+# Dirs -+ROOT_DIR := . -+LIBRETRO_DIR := $(ROOT_DIR)/libretro -+DEPSDIR := $(CURDIR)/ -+ -+ifeq ($(platform),) -+ platform = unix -+ ifeq ($(UNAME),) -+ platform = win -+ else ifneq ($(findstring MINGW,$(UNAME)),) -+ platform = win -+ else ifneq ($(findstring Darwin,$(UNAME)),) -+ platform = osx -+ else ifneq ($(findstring win,$(UNAME)),) -+ platform = win -+ endif -+else ifneq (,$(findstring armv,$(platform))) -+ override platform += unix -+endif -+ -+# system platform -+system_platform = unix -+ifeq ($(shell uname -a),) -+ EXE_EXT = .exe -+ system_platform = win -+else ifneq ($(findstring Darwin,$(shell uname -a)),) -+ system_platform = osx -+ arch = intel -+ifeq ($(shell uname -p),powerpc) -+ arch = ppc -+endif -+else ifneq ($(findstring MINGW,$(shell uname -a)),) -+ system_platform = win -+endif -+ -+# Cross compile ? -+ -+ifeq (,$(ARCH)) -+ ARCH = $(shell uname -m) -+endif -+ -+# Target Dynarec -+WITH_DYNAREC ?= $(ARCH) -+ -+PIC = 1 -+# on 32bit Haiku the output of "uname -m" is "BePC" -+ifeq ($(ARCH), $(filter $(ARCH), i386 i686 BePC)) -+ WITH_DYNAREC = x86 -+ PIC = 0 -+else ifeq ($(ARCH), $(filter $(ARCH), arm)) -+ WITH_DYNAREC = arm -+endif -+ -+TARGET_NAME := mupen64plus_next -+CC_AS ?= $(CC) -+NASM ?= nasm -+ -+GIT_VERSION ?= " $(shell git rev-parse --short HEAD || echo unknown)" -+ifneq ($(GIT_VERSION)," unknown") -+ COREFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" -+endif -+ -+ifneq ($(CORE_NAME),) -+ COREFLAGS += -DCORE_NAME=\""$(CORE_NAME)"\" -+endif -+ -+# Linux -+ifneq (,$(findstring unix,$(platform))) -+ TARGET := $(TARGET_NAME)_libretro.so -+ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -+ -+ ifeq ($(FORCE_GLES),1) -+ GLES = 1 -+ GL_LIB := -lGLESv2 -+ else ifeq ($(FORCE_GLES3),1) -+ GLES3 = 1 -+ GL_LIB := -lGLESv2 -+ else -+ GL_LIB := -lGL -+ endif -+ -+ COREFLAGS += -DOS_LINUX -+ ifeq ($(ARCH), x86_64) -+ ASFLAGS = -f elf64 -d ELF_TYPE -+ else -+ ASFLAGS = -f elf -d ELF_TYPE -+ endif -+ -+ ifneq (,$(findstring armv,$(platform))) -+ ARCH = arm -+ WITH_DYNAREC = arm -+ CPUFLAGS += -DARM -marm -+ ifneq (,$(findstring cortexa8,$(platform))) -+ CPUFLAGS += -mcpu=cortex-a8 -+ else ifneq (,$(findstring cortexa9,$(platform))) -+ CPUFLAGS += -mcpu=cortex-a9 -+ else -+ CPUFLAGS += -mcpu=cortex-a7 -+ endif -+ ifneq (,$(findstring neon,$(platform))) -+ CPUFLAGS += -mfpu=neon -+ HAVE_NEON = 1 -+ endif -+ ifneq (,$(findstring softfloat,$(platform))) -+ CPUFLAGS += -mfloat-abi=softfp -+ else ifneq (,$(findstring hardfloat,$(platform))) -+ CPUFLAGS += -mfloat-abi=hard -+ endif -+ endif -+ -+# Raspberry Pi -+else ifneq (,$(findstring rpi,$(platform))) -+ TARGET := $(TARGET_NAME)_libretro.so -+ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl -+ ifeq ($(FORCE_GLES3),1) -+ GLES3 = 1 -+ else -+ GLES = 1 -+ endif -+ ifneq (,$(findstring mesa,$(platform))) -+ MESA = 1 -+ endif -+ ifneq (,$(findstring rpi4,$(platform))) -+ GLES3 = 1 -+ MESA = 1 -+ endif -+ ifeq ($(MESA), 1) -+ GL_LIB := -lGLESv2 -+ else -+ LLE = 0 -+ COREFLAGS += -DVC -DGL_USE_DLSYM -+ GL_LIB := -L/opt/vc/lib -lbrcmGLESv2 -+ EGL_LIB := -lbrcmEGL -+ INCFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vcos -I/opt/vc/include/interface/vcos/pthreads -+ endif -+ HAVE_NEON = 1 -+ ifneq (,$(findstring rpi2,$(platform))) -+ CPUFLAGS += -mcpu=cortex-a7 -+ ARM_CPUFLAGS = -mfpu=neon-vfpv4 -+ else ifneq (,$(findstring rpi3,$(platform))) -+ ifneq (,$(findstring rpi3_64,$(platform))) -+ CPUFLAGS += -mcpu=cortex-a53 -mtune=cortex-a53 -+ else -+ CPUFLAGS += -march=armv8-a+crc -mtune=cortex-a53 -+ ARM_CPUFLAGS = -mfpu=neon-fp-armv8 -+ endif -+ else ifneq (,$(findstring rpi4,$(platform))) -+ ifneq (,$(findstring rpi4_64,$(platform))) -+ CPUFLAGS += -mcpu=cortex-a72 -mtune=cortex-a72 -+ else -+ CPUFLAGS += -march=armv8-a+crc -mtune=cortex-a72 -+ ARM_CPUFLAGS = -mfpu=neon-fp-armv8 -+ endif -+ else ifneq (,$(findstring rpi,$(platform))) -+ CPUFLAGS += -mcpu=arm1176jzf-s -+ ARM_CPUFLAGS = -mfpu=vfp -+ HAVE_NEON = 0 -+ endif -+ ifeq ($(ARCH), aarch64) -+ WITH_DYNAREC=aarch64 -+ HAVE_NEON = 0 -+ else -+ WITH_DYNAREC=arm -+ CPUFLAGS += $(ARM_CPUFLAGS) -mfloat-abi=hard -+ endif -+ COREFLAGS += -DOS_LINUX -+ ASFLAGS = -f elf -d ELF_TYPE -+ -+# Nintendo Switch -+else ifeq ($(platform), libnx) -+ include $(DEVKITPRO)/devkitA64/base_tools -+ PORTLIBS := $(PORTLIBS_PATH)/switch -+ PATH := $(PORTLIBS)/bin:$(PATH) -+ LIBNX ?= $(DEVKITPRO)/libnx -+ STRINGS := $(PREFIX)$(STRINGS) -+ EGL := 1 -+ PIC = 1 -+ TARGET := $(TARGET_NAME)_libretro_$(platform).a -+ CPUOPTS := -g -march=armv8-a+crc -mtune=cortex-a57 -mtp=soft -mcpu=cortex-a57+crc+fp+simd -+ PLATCFLAGS = -O3 -ffast-math -funsafe-math-optimizations -fPIE -I$(PORTLIBS)/include/ -I$(LIBNX)/include/ -ffunction-sections -fdata-sections -ftls-model=local-exec -specs=$(LIBNX)/switch.specs -+ PLATCFLAGS += $(INCLUDE) -D__SWITCH__=1 -DSWITCH -DHAVE_LIBNX -D_GLIBCXX_USE_C99_MATH_TR1 -D_LDBL_EQ_DBL -funroll-loops #-DM64P_NETPLAY -+ CXXFLAGS += -fno-rtti -std=gnu++11 -+ COREFLAGS += -DOS_LINUX -DEGL -+ GLES = 0 -+ WITH_DYNAREC = aarch64 -+ STATIC_LINKING = 1 -+ -+# Jetson Xavier NX -+else ifeq ($(platform), jetson-xavier) -+ TARGET := $(TARGET_NAME)_libretro.so -+ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -+ GL_LIB := -lGL -+ CPUOPTS := -march=armv8.2-a+crc -mtune=cortex-a75 -mcpu=cortex-a75+crc+fp+simd -+ PLATCFLAGS = -O3 -ffast-math -funsafe-math-optimizations -+ CXXFLAGS += -std=gnu++11 -+ COREFLAGS += -DOS_LINUX -+ WITH_DYNAREC = aarch64 -+ HAVE_PARALLEL_RSP = 1 -+ HAVE_PARALLEL_RDP = 1 -+ HAVE_THR_AL = 1 -+ LLE = 1 -+ COREFLAGS += -ftree-vectorize -ftree-vectorizer-verbose=2 -funsafe-math-optimizations -fno-finite-math-only -+ -+# 64 bit ODROIDs -+else ifneq (,$(findstring odroid64,$(platform))) -+ TARGET := $(TARGET_NAME)_libretro.so -+ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -+ BOARD ?= $(shell cat /proc/cpuinfo | grep -i odroid | awk '{print $$3}') -+ GLES = 1 -+ GL_LIB := -lGLESv2 -+ WITH_DYNAREC := aarch64 -+ ifneq (,$(findstring C2,$(BOARD))) -+ # ODROID-C2 -+ CPUFLAGS += -mcpu=cortex-a53 -+ else ifneq (,$(findstring C4,$(BOARD))) -+ # ODROID-C4 -+ CPUFLAGS += -mcpu=cortex-a55 -+ GLES3 = 1 -+ else ifneq (,$(findstring N1,$(BOARD))) -+ # ODROID-N1 -+ CPUFLAGS += -mcpu=cortex-a72.cortex-a53 -+ else ifneq (,$(findstring N2,$(BOARD))) -+ # ODROID-N2 -+ CPUFLAGS += -mcpu=cortex-a73.cortex-a53 -+ GLES = 0 -+ GLES3= 1 -+ GL_LIB := -lGLESv3 -+ endif -+ -+ COREFLAGS += -DOS_LINUX -+ ASFLAGS = -f elf -d ELF_TYPE -+ -+# ODROIDs -+else ifneq (,$(findstring odroid,$(platform))) -+ TARGET := $(TARGET_NAME)_libretro.so -+ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -+ BOARD ?= $(shell cat /proc/cpuinfo | grep -i odroid | awk '{print $$3}') -+ GLES = 1 -+ GL_LIB := -lGLESv2 -+ CPUFLAGS += -marm -mfloat-abi=hard -+ HAVE_NEON = 1 -+ WITH_DYNAREC=arm -+ ifneq (,$(findstring ODROIDC,$(BOARD))) -+ # ODROID-C1 -+ CPUFLAGS += -mcpu=cortex-a5 -mfpu=neon -+ else ifneq (,$(findstring ODROID-XU,$(BOARD))) -+ # ODROID-XU3 & -XU3 Lite and -XU4 -+ ifeq "$(shell expr `gcc -dumpversion` \>= 4.9)" "1" -+ CPUFLAGS += -mcpu=cortex-a15 -mtune=cortex-a15.cortex-a7 -mfpu=neon-vfpv4 -mvectorize-with-neon-quad -+ else -+ CPUFLAGS += -mcpu=cortex-a9 -mfpu=neon -+ endif -+ # ODROIDGOA -+ else ifneq (,$(findstring ODROIDGOA,$(BOARD))) -+ CPUFLAGS += -march=armv8-a+crc -mfpu=neon-fp-armv8 -mcpu=cortex-a35 -mtune=cortex-a35 -+ else -+ # ODROID-U2, -U3, -X & -X2 -+ CPUFLAGS += -mcpu=cortex-a9 -mfpu=neon -+ endif -+ -+ COREFLAGS += -DOS_LINUX -+ ASFLAGS = -f elf -d ELF_TYPE -+ -+# Amlogic S905/S905X/S912 (AMLGXBB/AMLGXL/AMLGXM) e.g. Khadas VIM1/2 / S905X2 (AMLG12A) & S922X/A311D (AMLG12B) e.g. Khadas VIM3 - 32-bit userspace -+else ifneq (,$(findstring AMLG,$(platform))) -+ TARGET := $(TARGET_NAME)_libretro.so -+ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl -+ CPUFLAGS += -march=armv8-a+crc -mfloat-abi=hard -mfpu=neon-fp-armv8 -+ -+ ifneq (,$(findstring AMLG12,$(platform))) -+ ifneq (,$(findstring AMLG12B,$(platform))) -+ CPUFLAGS += -mtune=cortex-a73.cortex-a53 -+ else -+ CPUFLAGS += -mtune=cortex-a53 -+ endif -+ GLES3 = 1 -+ else ifneq (,$(findstring AMLGX,$(platform))) -+ CPUFLAGS += -mtune=cortex-a53 -+ ifneq (,$(findstring AMLGXM,$(platform))) -+ GLES3 = 1 -+ else -+ GLES = 1 -+ endif -+ endif -+ -+ ifneq (,$(findstring mesa,$(platform))) -+ COREFLAGS += -DEGL_NO_X11 -+ endif -+ -+ ifneq (,$(findstring mali,$(platform))) -+ GL_LIB := -lGLESv3 -+ else -+ GL_LIB := -lGLESv2 -+ endif -+ -+ HAVE_NEON = 1 -+ WITH_DYNAREC=arm -+ COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX -+ ASFLAGS = -f elf -d ELF_TYPE -+ -+# Amlogic S905/S912 -+else ifneq (,$(findstring amlogic,$(platform))) -+ TARGET := $(TARGET_NAME)_libretro.so -+ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl -+ GLES = 1 -+ GL_LIB := -lGLESv2 -+ CPUFLAGS += -marm -mfloat-abi=hard -mfpu=neon -+ HAVE_NEON = 1 -+ WITH_DYNAREC=arm -+ COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX -+ CPUFLAGS += -march=armv8-a -mcpu=cortex-a53 -mtune=cortex-a53 -+ -+# Generic AArch64 Cortex-A53 GLES 2.0 target -+else ifneq (,$(findstring arm64_cortex_a53_gles2,$(platform))) -+ TARGET := $(TARGET_NAME)_libretro.so -+ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl -+ GL_LIB := -lGLESv2 -+ WITH_DYNAREC := aarch64 -+ CPUFLAGS += -mcpu=cortex-a53 -mtune=cortex-a53 -+ GLES = 1 -+ COREFLAGS += -DOS_LINUX -+ ASFLAGS = -f elf64 -d ELF_TYPE -+ -+# Generic AArch64 Cortex-A53 GLES 3.0 target -+else ifneq (,$(findstring arm64_cortex_a53_gles3,$(platform))) -+ TARGET := $(TARGET_NAME)_libretro.so -+ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl -+ GL_LIB := -lGLESv2 -+ WITH_DYNAREC := aarch64 -+ CPUFLAGS += -mcpu=cortex-a53 -mtune=cortex-a53 -+ GLES3 = 1 -+ COREFLAGS += -DOS_LINUX -+ ASFLAGS = -f elf64 -d ELF_TYPE -+ -+# Rockchip RK3288 e.g. Asus Tinker Board / RK3328 e.g. PINE64 Rock64 / RK3399 e.g. PINE64 RockPro64 - 32-bit userspace -+else ifneq (,$(findstring RK,$(platform))) -+ TARGET := $(TARGET_NAME)_libretro.so -+ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl -+ -+ ifneq (,$(findstring RK33,$(platform))) -+ CPUFLAGS += -march=armv8-a+crc -mfloat-abi=hard -mfpu=neon-fp-armv8 -+ ifneq (,$(findstring RK3399,$(platform))) -+ CPUFLAGS += -mtune=cortex-a72.cortex-a53 -+ GLES3 = 1 -+ else ifneq (,$(findstring RK3328,$(platform))) -+ CPUFLAGS += -mtune=cortex-a53 -+ GLES = 1 -+ endif -+ else ifneq (,$(findstring RK3288,$(platform))) -+ CPUFLAGS += -march=armv7ve -mtune=cortex-a17 -mfloat-abi=hard -mfpu=neon-vfpv4 -+ GLES3 = 1 -+ endif -+ -+ ifneq (,$(findstring mesa,$(platform))) -+ COREFLAGS += -DEGL_NO_X11 -+ endif -+ -+ GL_LIB := -lGLESv2 -+ HAVE_NEON = 1 -+ WITH_DYNAREC=arm -+ COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX -+ ASFLAGS = -f elf -d ELF_TYPE -+ -+# OS X -+else ifneq (,$(findstring osx,$(platform))) -+ TARGET := $(TARGET_NAME)_libretro.dylib -+ LDFLAGS += -dynamiclib -+ OSXVER = `sw_vers -productVersion | cut -d. -f 2` -+ OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"` -+ LDFLAGS += -mmacosx-version-min=10.7 -+ LDFLAGS += -stdlib=libc++ -+ -+ PLATCFLAGS += -D__MACOSX__ -DOSX -DOS_MAC_OS_X -+ GL_LIB := -framework OpenGL -+ -+ # Target Dynarec -+ ifeq ($(ARCH), $(filter $(ARCH), ppc)) -+ WITH_DYNAREC = -+ endif -+ -+ COREFLAGS += -DOS_LINUX -+ ASFLAGS = -f elf -d ELF_TYPE -+# iOS -+else ifneq (,$(findstring ios,$(platform))) -+ ifeq ($(IOSSDK),) -+ IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path) -+ endif -+ -+ TARGET := $(TARGET_NAME)_libretro_ios.dylib -+ DEFINES += -DIOS -+ GLES = 1 -+ ifeq ($(platform),ios-arm64) -+ WITH_DYNAREC= -+ GLES=1 -+ GLES3=1 -+ FORCE_GLES3=1 -+ EGL := 0 -+ PLATCFLAGS += -DHAVE_POSIX_MEMALIGN -DNO_ASM -+ PLATCFLAGS += -DIOS -marm -DOS_IOS -DDONT_WANT_ARM_OPTIMIZATIONS -+ CPUFLAGS += -marm -mfpu=neon -mfloat-abi=softfp -+ HAVE_NEON=0 -+ CC += -miphoneos-version-min=8.0 -+ CC_AS += -miphoneos-version-min=8.0 -+ CXX += -miphoneos-version-min=8.0 -+ PLATCFLAGS += -miphoneos-version-min=8.0 -Wno-error=implicit-function-declaration -+ CC = clang -arch arm64 -isysroot $(IOSSDK) -+ CXX = clang++ -arch arm64 -isysroot $(IOSSDK) -+ else -+ PLATCFLAGS += -DOS_MAC_OS_X -+ PLATCFLAGS += -DHAVE_POSIX_MEMALIGN -DNO_ASM -+ PLATCFLAGS += -DIOS -marm -+ CPUFLAGS += -DNO_ASM -DARM -D__arm__ -DARM_ASM -D__NEON_OPT -+ CPUFLAGS += -marm -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -+ WITH_DYNAREC=arm -+ HAVE_NEON=1 -+ CC += -miphoneos-version-min=5.0 -+ CC_AS += -miphoneos-version-min=5.0 -+ CXX += -miphoneos-version-min=5.0 -+ PLATCFLAGS += -miphoneos-version-min=5.0 -+ CC = clang -arch armv7 -isysroot $(IOSSDK) -+ CC_AS = perl ./custom/tools/gas-preprocessor.pl $(CC) -+ CXX = clang++ -arch armv7 -isysroot $(IOSSDK) -+ endif -+ LDFLAGS += -dynamiclib -+ GL_LIB := -framework OpenGLES -+# Android -+else ifneq (,$(findstring android,$(platform))) -+ ANDROID = 1 -+ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -Wl,--warn-common -llog -+ INCFLAGS += -I$(ROOT_DIR)/GLideN64/src/GLideNHQ/inc -+ ifneq (,$(findstring x86,$(platform))) -+ CC = i686-linux-android-gcc -+ CXX = i686-linux-android-g++ -+ WITH_DYNAREC = x86 -+ LDFLAGS += -L$(ROOT_DIR)/custom/android/x86 -+ else -+ CC = arm-linux-androideabi-gcc -+ CXX = arm-linux-androideabi-g++ -+ WITH_DYNAREC = arm -+ HAVE_NEON = 1 -+ CPUFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=neon -+ LDFLAGS += -march=armv7-a -L$(ROOT_DIR)/custom/android/arm -+ endif -+ ifneq (,$(findstring gles3,$(platform))) -+ GL_LIB := -lGLESv3 -+ GLES3 = 1 -+ TARGET := $(TARGET_NAME)_gles3_libretro_android.so -+ else -+ GL_LIB := -lGLESv2 -+ GLES = 1 -+ TARGET := $(TARGET_NAME)_gles2_libretro_android.so -+ endif -+ CPUFLAGS += -DANDROID -DEGL_EGLEXT_PROTOTYPES -+ COREFLAGS += -DOS_LINUX -+ ASFLAGS = -f elf -d ELF_TYPE -+# emscripten -+else ifeq ($(platform), emscripten) -+ TARGET := $(TARGET_NAME)_libretro_emscripten.bc -+ GLES := 1 -+ WITH_DYNAREC := -+ CPUFLAGS += -DEMSCRIPTEN -DNO_ASM -s USE_ZLIB=1 -+ PLATCFLAGS += \ -+ -Dsinc_resampler=glupen_sinc_resampler \ -+ -DCC_resampler=glupen_CC_resampler \ -+ -Drglgen_symbol_map=glupen_rglgen_symbol_map \ -+ -Drglgen_resolve_symbols_custom=glupen_rglgen_resolve_symbols_custom \ -+ -Drglgen_resolve_symbols=glupen_rglgen_resolve_symbols \ -+ -Dmemalign_alloc=glupen_memalign_alloc \ -+ -Dmemalign_free=glupen_memalign_free \ -+ -Dmemalign_alloc_aligned=glupen_memalign_alloc_aligned \ -+ -Daudio_resampler_driver_find_handle=glupen_audio_resampler_driver_find_handle \ -+ -Daudio_resampler_driver_find_ident=glupen_audio_resampler_driver_find_ident \ -+ -Drarch_resampler_realloc=glupen_rarch_resampler_realloc \ -+ -Dconvert_float_to_s16_C=glupen_convert_float_to_s16_C \ -+ -Dconvert_float_to_s16_init_simd=glupen_convert_float_to_s16_init_simd \ -+ -Dconvert_s16_to_float_C=glupen_convert_s16_to_float_C \ -+ -Dconvert_s16_to_float_init_simd=glupen_convert_s16_to_float_init_simd \ -+ -Dcpu_features_get_perf_counter=glupen_cpu_features_get_perf_counter \ -+ -Dcpu_features_get_time_usec=glupen_cpu_features_get_time_usec \ -+ -Dcpu_features_get_core_amount=glupen_cpu_features_get_core_amount \ -+ -Dcpu_features_get=glupen_cpu_features_get \ -+ -Dffs=glupen_ffs \ -+ -Dstrlcpy_retro__=glupen_strlcpy_retro__ \ -+ -Dstrlcat_retro__=glupen_strlcat_retro__ -+ CC = emcc -+ CXX = em++ -+ HAVE_NEON = 0 -+ -+ COREFLAGS += -DOS_LINUX -+ ASFLAGS = -f elf -d ELF_TYPE -+# Windows -+else -+ TARGET := $(TARGET_NAME)_libretro.dll -+ LDFLAGS += -shared -static-libgcc -static-libstdc++ -Wl,--version-script=$(LIBRETRO_DIR)/link.T #-static -lmingw32 -lSDL2main -lSDL2 -mwindows -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lsdl2_net -lsdl2 -lws2_32 -lSetupapi -lIPHLPAPI -+ GL_LIB := -lopengl32 -+ -+ ifeq ($(MSYSTEM),MINGW64) -+ CC ?= x86_64-w64-mingw32-gcc -+ CXX ?= x86_64-w64-mingw32-g++ -+ WITH_DYNAREC = x86_64 -+ COREFLAGS += -DWIN64 #-DM64P_NETPLAY -+ ASFLAGS = -f win64 -d WIN64 -+ PIC = 1 -+ else ifeq ($(MSYSTEM),MINGW32) -+ CC ?= i686-w64-mingw32-gcc -+ CXX ?= i686-w64-mingw32-g++ -+ WITH_DYNAREC = x86 -+ COREFLAGS += -DWIN32 -+ PIC = 1 -+ ASFLAGS = -f win32 -d WIN32 -d LEADING_UNDERSCORE -+ endif -+ -+ HAVE_PARALLEL_RSP = 1 -+ HAVE_PARALLEL_RDP = 1 -+ HAVE_THR_AL = 1 -+ LLE = 1 -+ COREFLAGS += -DOS_WINDOWS -DMINGW -DUNICODE -+ CXXFLAGS += -fpermissive -+endif -+ -+ifeq ($(STATIC_LINKING), 1) -+ ifneq (,$(findstring win,$(platform))) -+ TARGET := $(TARGET:.dll=.lib) -+ else ifneq ($(platform), $(filter $(platform), osx ios)) -+ TARGET := $(TARGET:.dylib=.a) -+ else -+ TARGET := $(TARGET:.so=.a) -+ endif -+endif -+ -+include Makefile.common -+ -+ifeq ($(HAVE_NEON), 1) -+ COREFLAGS += -DHAVE_NEON -D__ARM_NEON__ -D__NEON_OPT -ftree-vectorize -mvectorize-with-neon-quad -ftree-vectorizer-verbose=2 -funsafe-math-optimizations -fno-finite-math-only -+endif -+ -+ifeq ($(LLE), 1) -+ COREFLAGS += -DHAVE_LLE -+endif -+ -+COREFLAGS += -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -D__LIBRETRO__ -DUSE_FILE32API -DM64P_PLUGIN_API -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -DSINC_LOWER_QUALITY -DTXFILTER_LIB -D__VEC4_OPT -DMUPENPLUSAPI -+ -+ifeq ($(DEBUG), 1) -+ CPUOPTS += -O0 -g -+ CPUOPTS += -DOPENGL_DEBUG -+else -+ CPUOPTS += -DNDEBUG -fsigned-char -ffast-math -fno-strict-aliasing -fomit-frame-pointer -fvisibility=hidden -+ifneq ($(platform), libnx) -+ CPUOPTS := -O3 $(CPUOPTS) -+endif -+ CXXFLAGS += -fvisibility-inlines-hidden -+endif -+ -+# Use -fcommon -+CPUOPTS += -fcommon -+ -+# set C/C++ standard to use -+CFLAGS += -std=gnu11 -D_CRT_SECURE_NO_WARNINGS -Wno-discarded-qualifiers -+CXXFLAGS += -std=gnu++11 -D_CRT_SECURE_NO_WARNINGS -+ -+ifeq ($(HAVE_LTCG),1) -+ CPUFLAGS += -flto -+endif -+ -+ifeq ($(PIC), 1) -+ fpic = -fPIC -+else -+ fpic = -fno-PIC -+endif -+ -+OBJECTS += $(SOURCES_CXX:.cpp=.o) $(SOURCES_C:.c=.o) $(SOURCES_ASM:.S=.o) $(SOURCES_NASM:.asm=.o) -+CXXFLAGS += $(CPUOPTS) $(COREFLAGS) $(INCFLAGS) $(PLATCFLAGS) $(fpic) $(CPUFLAGS) $(GLFLAGS) $(DYNAFLAGS) -+CFLAGS += $(CPUOPTS) $(COREFLAGS) $(INCFLAGS) $(PLATCFLAGS) $(fpic) $(CPUFLAGS) $(GLFLAGS) $(DYNAFLAGS) -+ -+ifeq (,$(findstring android,$(platform))) -+ LDFLAGS += -lpthread -+endif -+ -+ifeq ($(platform), ios-arm64) -+ LDFLAGS += $(fpic) -O3 $(CPUOPTS) $(PLATCFLAGS) $(CPUFLAGS) -+else -+ LDFLAGS += $(fpic) -O3 $(CPUOPTS) $(PLATCFLAGS) $(CPUFLAGS) -+endif -+ -+-include $(OBJECTS:.o=.d) -+all: $(TARGET) -+$(TARGET): $(OBJECTS) -+ -+ifeq ($(STATIC_LINKING), 1) -+ $(AR) rcs $@ $(OBJECTS) -+else -+ $(CXX) -o $@ $(OBJECTS) $(LDFLAGS) $(GL_LIB) -+endif -+ -+# Script hackery fll or generating ASM include files for the new dynarec assembly code -+$(AWK_DEST_DIR)/asm_defines_gas.h: $(AWK_DEST_DIR)/asm_defines_nasm.h -+$(AWK_DEST_DIR)/asm_defines_nasm.h: $(ASM_DEFINES_OBJ) -+ $(STRINGS) "$<" | $(TR) -d '\r' | $(AWK) -v dest_dir="$(AWK_DEST_DIR)" -f $(CORE_DIR)/tools/gen_asm_defines.awk -+ -+%.o: %.asm $(AWK_DEST_DIR)/asm_defines_gas.h -+ $(NASM) -i$(AWK_DEST_DIR)/ $(ASFLAGS) $< -o $@ -+ -+%.o: %.S $(AWK_DEST_DIR)/asm_defines_gas.h -+ $(CC_AS) $(CFLAGS) -c $< -o $@ -+ -+%.o: %.c -+ $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ -+ -+%.o: %.cpp -+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ -+ -+clean: -+ find -name "*.o" -type f -delete -+ find -name "*.d" -type f -delete -+ rm -f $(TARGET) -+ -+.PHONY: clean