X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Makefile.libretro;h=f58f28449219948d4daca3b01f1c8d1be1acf6c6;hb=b0ec2e6d0719603212373bcdaaedd5b7b5e43121;hp=2c22b8a1a3ab3344e66f8f39970968837790a86f;hpb=56e7c6944b2edd22e6dbcc5f199a21cca7bf488a;p=pcsx_rearmed.git diff --git a/Makefile.libretro b/Makefile.libretro index 2c22b8a1..f58f2844 100644 --- a/Makefile.libretro +++ b/Makefile.libretro @@ -1,7 +1,8 @@ # Makefile for PCSX ReARMed (libretro) -DEBUG=0 -WANT_ZLIB=1 +DEBUG ?= 0 +WANT_ZLIB ?= 1 +HAVE_CHD ?= 1 ifeq ($(platform),) platform = unix @@ -37,7 +38,7 @@ else LIBDL := -ldl endif LIBM := -lm -MMAP_WIN32=0 +MMAP_WIN32 = 0 EXTRA_LDFLAGS = # Unix @@ -47,6 +48,12 @@ ifeq ($(platform), unix) ifneq ($(findstring SunOS,$(shell uname -s)),) CC = gcc endif +ifeq ($(ARCH), arm) +ifneq ($(findstring __thumb__,$(shell $(CC) -E -dD $(CFLAGS) include/arm_features.h)),) + # must disable thumb as recompiler can't handle it + CFLAGS += -marm +endif +endif else ifeq ($(platform), linux-portable) TARGET := $(TARGET_NAME)_libretro.so @@ -60,25 +67,30 @@ else ifeq ($(platform), linux-portable) # OS X else ifeq ($(platform), osx) + USE_DYNAREC ?= 1 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 - TARGET := $(TARGET_NAME)_libretro_ios.dylib + ARCH := arm64 + USE_DYNAREC = 0 + HAVE_NEON = 0 + BUILTIN_GPU = peops + TARGET := $(TARGET_NAME)_libretro_ios.dylib else ifneq (,$(findstring ios,$(platform))) ARCH := arm USE_DYNAREC ?= 1 - HAVE_NEON = 1 - BUILTIN_GPU = neon + HAVE_NEON = 1 + BUILTIN_GPU = neon TARGET := $(TARGET_NAME)_libretro_ios.dylib -ifeq ($(USE_DYNAREC),1) +ifeq ($(USE_DYNAREC),0) # Override TARGET := $(TARGET_NAME)_interpreter_libretro_ios.dylib endif @@ -143,7 +155,7 @@ else ifeq ($(platform), vita) 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 CFLAGS += -I$(VITASDK)/include -Ifrontend/vita CFLAGS += -DNO_SOCKET -DNO_OS -DNO_DYLIB ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon @@ -177,7 +189,7 @@ else ifeq ($(platform), ctr) DRC_CACHE_BASE = 0 ARCH = arm HAVE_NEON = 0 - + HAVE_CHD = 0 STATIC_LINKING = 1 # Xbox 360 @@ -213,7 +225,7 @@ else ifeq ($(platform), qnx) BUILTIN_GPU = neon ARCH = arm CFLAGS += -D__BLACKBERRY_QNX__ -marm -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp - ASFLAGS += -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp + ASFLAGS += -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp MAIN_LDLIBS += -lsocket LIBPTHREAD := LIBDL := @@ -266,21 +278,38 @@ else ifeq ($(platform), classic_armv7_a7) BUILTIN_GPU = neon USE_DYNAREC = 1 ifeq ($(shell echo `$(CC) -dumpversion` "< 4.9" | bc -l), 1) - CFLAGS += -march=armv7-a + CFLAGS += -march=armv7-a else - CFLAGS += -march=armv7ve - # If gcc is 5.0 or later - ifeq ($(shell echo `$(CC) -dumpversion` ">= 5" | bc -l), 1) - LDFLAGS += -static-libgcc -static-libstdc++ - endif + CFLAGS += -march=armv7ve + # If gcc is 5.0 or later + ifeq ($(shell echo `$(CC) -dumpversion` ">= 5" | bc -l), 1) + LDFLAGS += -static-libgcc -static-libstdc++ + endif endif + +# (armv8 a35, hard point, neon based) ### +# PlayStation Classic +else ifeq ($(platform), classic_armv8_a35) + TARGET := $(TARGET_NAME)_libretro.so + fpic := -fPIC + CFLAGS += -Ofast \ + -fmerge-all-constants -fno-math-errno -march=armv8-a \ + -marm -mcpu=cortex-a35 -mtune=cortex-a35 -mfpu=neon-fp-armv8 -mfloat-abi=hard + HAVE_NEON = 1 + ARCH = arm + BUILTIN_GPU = neon + USE_DYNAREC = 1 + LDFLAGS += -static-libgcc -static-libstdc++ -fPIC + ####################################### # ARM else ifneq (,$(findstring armv,$(platform))) TARGET := $(TARGET_NAME)_libretro.so fpic := -fPIC + HAVE_NEON = 0 DRC_CACHE_BASE = 0 + BUILTIN_GPU = peops ifneq (,$(findstring cortexa8,$(platform))) CFLAGS += -marm -mcpu=cortex-a8 ASFLAGS += -mcpu=cortex-a8 @@ -312,8 +341,8 @@ else ifneq (,$(findstring armv,$(platform))) # Windows else TARGET := $(TARGET_NAME)_libretro.dll - BUILTIN_GPU = peops - PLATFORM = libretro + BUILTIN_GPU = peops + PLATFORM = libretro MAIN_LDFLAGS += -static-libgcc -static-libstdc++ -s CFLAGS += -D__WIN32__ -DNO_DYLIB MMAP_WIN32=1 @@ -327,15 +356,9 @@ CFLAGS += $(fpic) MAIN_LDFLAGS += -shared MAIN_LDLIBS += $(LIBPTHREAD) $(LIBM) $(LIBDL) $(LIBZ) -# try to autodetect stuff for the lazy -ifndef ARCH -ARCH = $(shell $(CC) -dumpmachine | awk -F- '{print $$1}') -endif -ifndef HAVE_NEON -HAVE_NEON = $(shell $(CC) -E -dD - < /dev/null 2> /dev/null | grep -q __ARM_NEON__ && echo 1 || echo 0) -endif -ifeq ($(NO_UNDEF_CHECK)$(shell ld -v 2> /dev/null | awk '{print $$1}'),GNU) -MAIN_LDFLAGS += -Wl,--no-undefined +# enable large file support if available +ifeq ($(shell $(CC) -E -dD $(CFLAGS) include/arm_features.h | grep __SIZEOF_LONG__ | awk '{print $$3}'),4) +CFLAGS += -D_FILE_OFFSET_BITS=64 endif # try to autodetect stuff for the lazy @@ -345,7 +368,7 @@ endif ifndef HAVE_NEON HAVE_NEON = $(shell $(CC) -E -dD - < /dev/null 2> /dev/null | grep -q __ARM_NEON__ && echo 1 || echo 0) endif -ifeq ($(shell ld -v 2> /dev/null | awk '{print $$1}'),GNU) +ifeq ($(NO_UNDEF_CHECK)$(shell ld -v 2> /dev/null | awk '{print $$1}'),GNU) MAIN_LDFLAGS += -Wl,--no-undefined endif @@ -356,13 +379,14 @@ SOUND_DRIVERS = libretro PLUGINS = NO_CONFIG_MAK = yes -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) -endif -endif +# 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) +#endif +#endif include Makefile