asm_cdmemory = 0
asm_mix = 0
+fpic :=
# Unix
ifeq ($(platform), unix)
TARGET := $(TARGET_NAME)_libretro.so
+ fpic := -fPIC
SHARED := -shared
DONT_COMPILE_IN_ZLIB = 1
CFLAGS += -DFAMEC_NO_GOTOS
else ifeq ($(platform), linux-portable)
TARGET := $(TARGET_NAME)_libretro.so
SHARED := -shared -nostdlib
+ fpic := -fPIC
LIBM :=
DONT_COMPILE_IN_ZLIB = 1
CFLAGS += -DFAMEC_NO_GOTOS
else ifeq ($(platform), osx)
TARGET := $(TARGET_NAME)_libretro.dylib
SHARED := -dynamiclib
+ fpic := -fPIC
APPLE := 1
arch = intel
ifeq ($(shell uname -p),powerpc)
SHARED += -mmacosx-version-min=10.1
# iOS
-else ifeq ($(platform), ios)
+else ifneq (,$(findstring ios,$(platform)))
TARGET := $(TARGET_NAME)_libretro_ios.dylib
SHARED := -dynamiclib
+ fpic := -fPIC
APPLE := 1
ifeq ($(IOSSDK),)
IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path)
CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm
ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
CFLAGS += -DIOS
- OSXVER = `sw_vers -productVersion | cut -d. -f 2`
- OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"`
- ifeq ($(OSX_LT_MAVERICKS),"YES")
- CC += -miphoneos-version-min=5.0
- CXX += -miphoneos-version-min=5.0
- CC_AS += -miphoneos-version-min=5.0
- CFLAGS += -miphoneos-version-min=5.0
- endif
+
+ifeq ($(platform),ios9)
+ CC += -miphoneos-version-min=8.0
+ CXX += -miphoneos-version-min=8.0
+ CC_AS += -miphoneos-version-min=8.0
+ CFLAGS += -miphoneos-version-min=8.0
+else
+ CC += -miphoneos-version-min=5.0
+ CXX += -miphoneos-version-min=5.0
+ CC_AS += -miphoneos-version-min=5.0
+ CFLAGS += -miphoneos-version-min=5.0
+endif
ARCH := arm
use_cyclone = 0
# PSP
else ifeq ($(platform), psp1)
- TARGET := $(TARGET_NAME)_libretro_psp1.a
- CC = psp-gcc$(EXE_EXT)
- AR = psp-ar$(EXE_EXT)
- CFLAGS += -G0
- STATIC_LINKING = 1
- NO_MMAP = 1
- DONT_COMPILE_IN_ZLIB = 1
-
- asm_memory = 0
- asm_render = 0
- asm_ym2612 = 0
- asm_misc = 0
- asm_cdpico = 0
- asm_cdmemory = 0
- asm_mix = 0
- use_cyclone = 0
- use_fame = 1
- use_drz80 = 0
- use_cz80 = 1
-
-
+ TARGET := $(TARGET_NAME)_libretro_psp1.a
+ CC = psp-gcc$(EXE_EXT)
+ AR = psp-ar$(EXE_EXT)
+ CFLAGS += -G0 -ftracer
+ CFLAGS += -DPSP -D_ASM_DRAW_C_AMIPS
+ STATIC_LINKING = 1
+ NO_MMAP = 1
+ DONT_COMPILE_IN_ZLIB = 1
+
+ asm_memory = 0
+ asm_render = 1
+ asm_ym2612 = 0
+ asm_misc = 0
+ asm_cdpico = 0
+ asm_cdmemory = 0
+ asm_mix = 0
+ use_cyclone = 0
+ use_fame = 1
+ use_drz80 = 0
+ use_cz80 = 1
+
+ OBJS +=platform/libretro/psp/draw_amips.o
# CTR (3DS)
else ifeq ($(platform), ctr)
CXX = $(DEVKITARM)/bin/arm-none-eabi-g++$(EXE_EXT)
AR = $(DEVKITARM)/bin/arm-none-eabi-ar$(EXE_EXT)
CFLAGS += -DARM11 -D_3DS
- CFLAGS += -march=armv6k -mtune=mpcore -mfloat-abi=hard
+ CFLAGS += -march=armv6k -mtune=mpcore -mfloat-abi=hard -marm -mfpu=vfp
CFLAGS += -Wall -mword-relocations
CFLAGS += -fomit-frame-pointer -ffast-math
- CFLAGS += -D_3DS
- PLATFORM_DEFINES := -D_3DS
STATIC_LINKING = 1
NO_MMAP = 1
DONT_COMPILE_IN_ZLIB = 1
+ ARCH = arm
+ ARM_ASM = 1
+
+ asm_memory = 1
+ asm_render = 1
+ asm_ym2612 = 1
+ asm_misc = 1
+ asm_cdpico = 1
+ asm_cdmemory = 1
+ asm_mix = 1
+
+ use_cyclone = 1
+ use_fame = 0
+ use_drz80 = 1
+ use_cz80 = 0
+ use_sh2drc = 1
+ use_svpdrc = 1
+
+ OBJS +=platform/libretro/3ds/3ds_utils.o
+
+# Raspberry Pi (original model) Raspbian
+else ifeq ($(platform), raspberrypi)
+ CFLAGS += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6j
+ CFLAGS += -Wall -mword-relocations
+ CFLAGS += -fomit-frame-pointer -ffast-math
+ ARCH = arm
+ ARM_ASM = 1
- asm_memory = 0
- asm_render = 0
- asm_ym2612 = 0
- asm_misc = 0
- asm_cdpico = 0
- asm_cdmemory = 0
- asm_mix = 0
- use_cyclone = 0
- use_fame = 1
- use_drz80 = 0
- use_cz80 = 1
+ TARGET := $(TARGET_NAME)_libretro.so
+ SHARED := -shared -nostdlib
+ fpic := -fPIC
+ DONT_COMPILE_IN_ZLIB = 1
+ asm_memory = 1
+ asm_render = 1
+ asm_ym2612 = 1
+ asm_misc = 1
+ asm_cdpico = 1
+ asm_cdmemory = 1
+ asm_mix = 1
+
+ use_cyclone = 1
+ use_fame = 0
+ use_drz80 = 1
+ use_cz80 = 0
+ use_sh2drc = 1
+ use_svpdrc = 1
# Vita
else ifeq ($(platform), vita)
# QNX
else ifeq ($(platform), qnx)
TARGET := $(TARGET_NAME)_libretro_qnx.so
+ fpic := -fPIC
CC = qcc -Vgcc_ntoarmv7le
CC_AS = $(CC)
CFLAGS += -DBASE_ADDR_FIXED=0 -D__BLACKBERRY_QNX__ -marm -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp
else ifneq (,$(findstring armv,$(platform)))
TARGET := $(TARGET_NAME)_libretro.so
SHARED := -shared -Wl,--no-undefined
+ fpic := -fPIC
ifneq (,$(findstring cortexa5,$(platform)))
CFLAGS += -marm -mcpu=cortex-a5
ASFLAGS += -mcpu=cortex-a5
endif
ARCH = arm
+# GCW0
+else ifeq ($(platform), gcw0)
+ TARGET := $(TARGET_NAME)_libretro.so
+ CC = /opt/gcw0-toolchain/usr/bin/mipsel-linux-gcc
+ AR = /opt/gcw0-toolchain/usr/bin/mipsel-linux-ar
+ SHARED := -shared -nostdlib
+ fpic := -fPIC
+ LIBM :=
+ DONT_COMPILE_IN_ZLIB = 1
+ CFLAGS += -ffast-math -march=mips32 -mtune=mips32r2 -mhard-float
+
+ asm_memory = 0
+ asm_render = 0
+ asm_ym2612 = 0
+ asm_misc = 0
+ asm_cdpico = 0
+ asm_cdmemory = 0
+ asm_mix = 0
+ use_cyclone = 0
+ use_fame = 1
+ use_drz80 = 0
+ use_cz80 = 1
+
# Windows
else
TARGET := $(TARGET_NAME)_libretro.dll
CC = gcc
- LD_FLAGS := -fPIC
+ fpic := -fPIC
SHARED := -shared -static-libgcc -static-libstdc++
CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__
asm_mix = 1
endif
-CFLAGS += -fPIC
+CFLAGS += $(fpic)
ifeq ($(findstring Haiku,$(shell uname -a)),)
LDLIBS += $(LIBM)
endif
SHARED ?= -shared
-LDFLAGS += $(SHARED)
+LDFLAGS += $(SHARED) $(fpic)
PLATFORM = libretro
NO_CONFIG_MAK = yes