Auto set flags for different gcc versions.
[pcsx_rearmed.git] / Makefile.libretro
index c1e4051..d29676d 100644 (file)
@@ -28,7 +28,11 @@ ifneq ($(GIT_VERSION)," unknown")
 endif
 LIBZ := -lz
 LIBPTHREAD := -lpthread
+ifneq ($(findstring Haiku,$(shell uname -s)),)
+LIBDL := -lroot -lnetwork
+else
 LIBDL := -ldl
+endif
 MMAP_WIN32=0
 EXTRA_LDFLAGS =
 
@@ -36,6 +40,9 @@ EXTRA_LDFLAGS =
 ifeq ($(platform), unix)
        TARGET := $(TARGET_NAME)_libretro.so
        fpic := -fPIC
+ifneq ($(findstring SunOS,$(shell uname -s)),)
+       CC = gcc
+endif
 
 else ifeq ($(platform), linux-portable)
        TARGET := $(TARGET_NAME)_libretro.so
@@ -53,7 +60,7 @@ else ifeq ($(platform), osx)
        fpic += -mmacosx-version-min=10.1
 
 # iOS
-else ifeq ($(platform),$(filter $(platform),ios9 ios-arm64))
+else ifeq ($(platform),$(filter $(platform),ios-arm64))
     ARCH := arm64
     USE_DYNAREC = 0
     HAVE_NEON = 0
@@ -66,7 +73,7 @@ else ifneq (,$(findstring ios,$(platform)))
     HAVE_NEON = 1
     BUILTIN_GPU = neon
        TARGET := $(TARGET_NAME)_libretro_ios.dylib
-ifeq ($(USE_DYNAREC),0)
+ifeq ($(USE_DYNAREC),1)
        # Override
        TARGET := $(TARGET_NAME)_interpreter_libretro_ios.dylib
 endif
@@ -160,7 +167,7 @@ else ifeq ($(platform), ctr)
        CFLAGS += -Werror=implicit-function-declaration
 
 #      CFLAGS += -DPCSX
-#      BUILTIN_GPU = unai
+       BUILTIN_GPU = unai
        USE_DYNAREC = 1
        DRC_CACHE_BASE = 0
        ARCH = arm
@@ -228,6 +235,40 @@ else ifeq ($(platform), rpi3)
        BUILTIN_GPU = neon
        USE_DYNAREC = 1
 
+# Classic Platforms ####################
+# Platform affix = classic_<ISA>_<µARCH>
+
+# (armv7 a7, hard point, neon based) ### 
+# NESC, SNESC, C64 mini 
+else ifeq ($(platform), classic_armv7_a7)
+       TARGET := $(TARGET_NAME)_libretro.so
+       fpic := -fPIC
+       CFLAGS += -Ofast \
+       -flto=4 -fwhole-program -fuse-linker-plugin \
+       -fdata-sections -ffunction-sections -Wl,--gc-sections \
+       -fno-stack-protector -fno-ident -fomit-frame-pointer \
+       -falign-functions=1 -falign-jumps=1 -falign-loops=1 \
+       -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-unroll-loops \
+       -fmerge-all-constants -fno-math-errno \
+       -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard
+       ASFLAGS += $(CFLAGS)
+       HAVE_NEON = 1
+       ARCH = arm
+       BUILTIN_GPU = neon
+       USE_DYNAREC = 1
+       ifeq ($(shell echo `$(CC) -dumpversion` "< 4.9" | bc -l), 1)
+         CFLAGS += -march=armv7-a
+       else
+         CFLAGS += -march=armv7ve
+         # If gcc is 5.0 or later
+         ifeq ($(shell echo `$(CC) -dumpversion` ">= 5" | bc -l), 1)
+           MAIN_LDFLAGS += -static-libgcc -static-libstdc++
+         endif
+       endif
+
+
+#######################################
+
 # ARM
 else ifneq (,$(findstring armv,$(platform)))
        TARGET := $(TARGET_NAME)_libretro.so
@@ -236,6 +277,10 @@ else ifneq (,$(findstring armv,$(platform)))
        ifneq (,$(findstring cortexa8,$(platform)))
                CFLAGS += -marm -mcpu=cortex-a8
                ASFLAGS += -mcpu=cortex-a8
+       else ifneq (,$(findstring cortexa7,$(platform)))
+               CFLAGS += -marm -mcpu=cortex-a7
+               ASFLAGS += -mcpu=cortex-a7
+               LIBZ :=
        else ifneq (,$(findstring cortexa9,$(platform)))
                CFLAGS += -marm -mcpu=cortex-a9
                ASFLAGS += -mcpu=cortex-a9