WANT_ZLIB ?= 1
HAVE_CHD ?= 1
+# Dynarec options: lightrec, ari64
+DYNAREC ?= lightrec
+
ifeq ($(platform),)
platform = unix
ifeq ($(shell uname -a),)
# OS X
else ifeq ($(platform), osx)
- USE_DYNAREC ?= 1
+ DYNAREC ?= lightrec
TARGET := $(TARGET_NAME)_libretro.dylib
fpic := -fPIC
fpic += -mmacosx-version-min=10.1
-ifeq ($(USE_DYNAREC),0)
- # Override
- TARGET := $(TARGET_NAME)_interpreter_libretro.dylib
-endif
# iOS
else ifeq ($(platform),$(filter $(platform),ios-arm64))
ARCH := arm64
- USE_DYNAREC = 0
HAVE_NEON = 0
BUILTIN_GPU = peops
+ DYNAREC = 0
TARGET := $(TARGET_NAME)_interpreter_libretro_ios.dylib
CC = clang -arch arm64 -isysroot $(IOSSDK) -miphoneos-version-min=8.0
else ifneq (,$(findstring ios,$(platform)))
ARCH := arm
- USE_DYNAREC ?= 1
+ DYNAREC ?= ari64
HAVE_NEON = 1
BUILTIN_GPU = neon
TARGET := $(TARGET_NAME)_libretro_ios.dylib
-ifeq ($(USE_DYNAREC),0)
+ifeq ($(DYNAREC),lightrec)
# Override
+ DYNAREC = 0
TARGET := $(TARGET_NAME)_interpreter_libretro_ios.dylib
endif
fpic := -fPIC
CFLAGS += -ftree-vectorize
CFLAGS += -Ifrontend/switch -ftree-vectorize
LIBPTHREAD :=
- USE_DYNAREC = 0
STATIC_LINKING=1
# Lakka Switch (arm64)
fpic := -fPIC
CFLAGS := $(filter-out -O2, $(CFLAGS))
CFLAGS += -O3 -ftree-vectorize
- USE_DYNAREC = 0
# PS3
else ifeq ($(platform), ps3)
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
+ CFLAGS += -fno-optimize-sibling-calls -fcommon
CFLAGS += -I$(VITASDK)/include -Ifrontend/vita
CFLAGS += -DNO_SOCKET -DNO_OS -DNO_DYLIB
ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
HAVE_NEON = 1
BUILTIN_GPU = neon
- USE_DYNAREC = 1
+ DYNAREC = ari64
DRC_CACHE_BASE = 0
ARCH = arm
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
+ 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
- CFLAGS += -Ifrontend/3ds
+ CFLAGS += -Wall -mword-relocations -fcommon
+ CFLAGS += -fomit-frame-pointer -ffast-math -funroll-loops
+ CFLAGS += -Ifrontend/3ds -I$(CTRULIB)/include
CFLAGS += -Werror=implicit-function-declaration
+ OBJS += frontend/3ds/utils.o
+
# CFLAGS += -DPCSX
BUILTIN_GPU = unai
- USE_DYNAREC = 1
+ THREAD_RENDERING = 1
+ DYNAREC = ari64
DRC_CACHE_BASE = 0
ARCH = arm
HAVE_NEON = 0
CC = qcc -Vgcc_ntoarmv7le
CC_AS = $(CC)
HAVE_NEON = 1
- USE_DYNAREC = 1
+ DYNAREC = ari64
DRC_CACHE_BASE = 0
BUILTIN_GPU = neon
ARCH = arm
HAVE_NEON = 1
ARCH = arm
BUILTIN_GPU = neon
- USE_DYNAREC = 1
+ DYNAREC = ari64
#Raspberry Pi 3
else ifeq ($(platform), rpi3)
HAVE_NEON = 1
ARCH = arm
BUILTIN_GPU = neon
- USE_DYNAREC = 1
+ DYNAREC = ari64
#Raspberry Pi 4
else ifeq ($(platform), rpi4)
HAVE_NEON = 1
ARCH = arm
BUILTIN_GPU = neon
- USE_DYNAREC = 1
+ DYNAREC = ari64
# Classic Platforms ####################
# Platform affix = classic_<ISA>_<µARCH>
HAVE_NEON = 1
ARCH = arm
BUILTIN_GPU = neon
- USE_DYNAREC = 1
+ DYNAREC = ari64
ifeq ($(shell echo `$(CC) -dumpversion` "< 4.9" | bc -l), 1)
CFLAGS += -march=armv7-a
else
HAVE_NEON = 1
ARCH = arm
BUILTIN_GPU = neon
- USE_DYNAREC = 1
+ DYNAREC = ari64
LDFLAGS += -static-libgcc -static-libstdc++ -fPIC
#######################################
ASFLAGS += -mfloat-abi=hard
endif
ARCH = arm
- USE_DYNAREC = 1
+ 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
# what does this do
#libretro_all: all
#ifeq ($(platform),ios)
-#ifeq ($(USE_DYNAREC),1)
-# make -f Makefile.libretro USE_DYNAREC=0 platform=$(platform) clean
-# make -f Makefile.libretro USE_DYNAREC=0 platform=$(platform)
+#ifeq ($(DYNAREC),1)
+# make -f Makefile.libretro DYNAREC=0 platform=$(platform) clean
+# make -f Makefile.libretro DYNAREC=0 platform=$(platform)
#endif
#endif