ifeq ($(platform), unix)
TARGET := $(TARGET_NAME)_libretro.so
fpic := -fPIC
+ THREAD_RENDERING = 1
ifneq ($(findstring SunOS,$(shell uname -s)),)
CC = gcc
endif
else ifneq (,$(findstring ios,$(platform)))
ARCH := arm
- DYNAREC ?= ari64
+# DYNAREC ?= ari64
HAVE_NEON = 1
BUILTIN_GPU = neon
TARGET := $(TARGET_NAME)_libretro_ios.dylib
ifeq ($(DYNAREC),lightrec)
# Override
- DYNAREC = 0
+ DYNAREC := 0
+endif
+ifeq ($(DYNAREC),0)
TARGET := $(TARGET_NAME)_interpreter_libretro_ios.dylib
endif
fpic := -fPIC
CFLAGS := $(filter-out -O2, $(CFLAGS))
CFLAGS += -O3 -ftree-vectorize
-# PS3
-else ifeq ($(platform), ps3)
- TARGET := $(TARGET_NAME)_libretro_ps3.a
- CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
- AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe
- CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
-
-# sncps3
-else ifeq ($(platform), sncps3)
- TARGET := $(TARGET_NAME)_libretro_ps3.a
- CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
- AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe
- CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
-
# Lightweight PS3 Homebrew SDK
else ifeq ($(platform), psl1ght)
TARGET := $(TARGET_NAME)_libretro_psl1ght.a
CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm
CFLAGS += -fsingle-precision-constant -mword-relocations -fno-unwind-tables
CFLAGS += -fno-asynchronous-unwind-tables -ftree-vectorize -funroll-loops
- CFLAGS += -fno-optimize-sibling-calls -fcommon
+ CFLAGS += -fno-optimize-sibling-calls
CFLAGS += -I$(VITASDK)/include -Ifrontend/vita
CFLAGS += -DNO_SOCKET -DNO_OS -DNO_DYLIB
ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
CC = $(DEVKITARM)/bin/arm-none-eabi-gcc$(EXE_EXT)
CXX = $(DEVKITARM)/bin/arm-none-eabi-g++$(EXE_EXT)
AR = $(DEVKITARM)/bin/arm-none-eabi-ar$(EXE_EXT)
- CFLAGS += -DARM11 -D_3DS -DNO_OS -DNO_DYLIB -DNO_SOCKET -DGPU_UNAI_USE_FLOATMATH -DGPU_UNAI_USE_FLOAT_DIV_MULTINV
+ CFLAGS += -DARM11 -D_3DS -DNO_OS -DNO_DYLIB -DNO_SOCKET -DTHREAD_ENABLED -DGPU_UNAI_USE_FLOATMATH -DGPU_UNAI_USE_FLOAT_DIV_MULTINV
CFLAGS += -march=armv6k -mtune=mpcore -mfloat-abi=hard -marm -mfpu=vfp -mtp=soft
CFLAGS += -Wall -mword-relocations
CFLAGS += -fomit-frame-pointer -ffast-math -funroll-loops
- CFLAGS += -Ifrontend/3ds
+ CFLAGS += -Ifrontend/3ds -I$(CTRULIB)/include
CFLAGS += -Werror=implicit-function-declaration
OBJS += frontend/3ds/utils.o
# CFLAGS += -DPCSX
BUILTIN_GPU = unai
+ THREAD_RENDERING = 1
DYNAREC = ari64
DRC_CACHE_BASE = 0
ARCH = arm
BUILTIN_GPU = neon
DYNAREC = ari64
-#Raspberry Pi 4
+#Raspberry Pi 4 with a 32bit GNU/Linux OS
else ifeq ($(platform), rpi4)
TARGET := $(TARGET_NAME)_libretro.so
fpic := -fPIC
BUILTIN_GPU = neon
DYNAREC = ari64
+#Raspberry Pi 4 with a 64bit GNU/Linux OS
+else ifeq ($(platform), rpi4_64)
+ TARGET := $(TARGET_NAME)_libretro.so
+ ARCH := arm64
+ BUILTIN_GPU = unai
+ DYNAREC = lightrec
+ fpic := -fPIC
+ CFLAGS += -march=armv8-a+crc+simd -mtune=cortex-a72 -ftree-vectorize
+
# Classic Platforms ####################
# Platform affix = classic_<ISA>_<µARCH>
# Help at https://modmyclassic.com/comp
ARCH = arm
DYNAREC = ari64
+# Emscripten
+else ifeq ($(platform), emscripten)
+ TARGET := $(TARGET_NAME)_libretro_$(platform).bc
+ fpic := -fPIC
+ SHARED := -shared -Wl,--no-undefined -Wl,--version-script=link.T
+ CFLAGS += -DNO_DYLIB -DNO_SOCKET
+ STATIC_LINKING = 1
+
# Windows
else
TARGET := $(TARGET_NAME)_libretro.dll