cdriso: make sure to open correct file for cdda
[pcsx_rearmed.git] / Makefile.libretro
1 # Makefile for PCSX ReARMed (libretro)
2
3 ifeq ($(platform),)
4 platform = unix
5 ifeq ($(shell uname -a),)
6    platform = win
7 else ifneq ($(findstring MINGW,$(shell uname -a)),)
8    platform = win
9 else ifneq ($(findstring Darwin,$(shell uname -a)),)
10    platform = osx
11 else ifneq ($(findstring win,$(shell uname -a)),)
12    platform = win
13 endif
14 endif
15
16 CC ?= gcc
17 CXX ?= g++
18 AS ?= as
19 CC_AS ?= $(CC)
20 CFLAGS ?=
21
22 ifeq ($(platform), unix)
23    TARGET := pcsx_rearmed_libretro.so
24    fpic := -fPIC
25    SHARED := -shared -Wl,--version-script=libretro/link.T
26 else ifeq ($(platform), osx)
27    TARGET := pcsx_rearmed_libretro.dylib
28    fpic := -fPIC
29    SHARED := -dynamiclib
30 else ifeq ($(platform), ios)
31 ARCH := arm
32    TARGET := pcsx_rearmed_libretro.dylib
33    fpic := -fPIC
34    SHARED := -dynamiclib
35
36    CC = clang -arch armv7 -isysroot $(IOSSDK)
37    CXX = clang++ -arch armv7 -isysroot $(IOSSDK)
38    CC_AS = perl ./tools/gas-preprocessor.pl $(CC)
39    CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm
40    ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
41    HAVE_NEON = 1
42    BUILTIN_GPU = neon
43    USE_DYNAREC = 1
44    CFLAGS += -DIOS
45 else ifeq ($(platform), ps3)
46    TARGET := libretro_pcsx_rearmed_ps3.a
47    CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
48    AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe
49    CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
50 else ifeq ($(platform), sncps3)
51    TARGET := libretro_pcsx_rearmed_ps3.a
52    CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
53    AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe
54    CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
55 else ifeq ($(platform), psl1ght)
56    TARGET := libretro_pcsx_rearmed_psl1ght.a
57    CC = $(PS3DEV)/ppu/bin/ppu-gcc$(EXE_EXT)
58    AR = $(PS3DEV)/ppu/bin/ppu-ar$(EXE_EXT)
59    CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
60 else ifeq ($(platform), psp1)
61         TARGET := libretro_pcsx_rearmed_psp1.a
62         CC = psp-gcc$(EXE_EXT)
63         AR = psp-ar$(EXE_EXT)
64         CFLAGS += -DPSP -G0
65 else ifeq ($(platform), xenon)
66    TARGET := libretro_pcsx_rearmed_xenon360.a
67    CC = xenon-gcc$(EXE_EXT)
68    AR = xenon-ar$(EXE_EXT)
69    CFLAGS += -D__LIBXENON__ -m32 -D__ppc__
70 else ifeq ($(platform), ngc)
71    TARGET := libretro_pcsx_rearmed_ngc.a
72    CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
73    AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
74    CFLAGS += -DGEKKO -DHW_DOL -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__
75 else ifeq ($(platform), wii)
76    TARGET := libretro_pcsx_rearmed_wii.a
77    CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
78    AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
79    CFLAGS += -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__
80 else ifeq ($(platform), qnx)
81    TARGET := libretro_pcsx_rearmed_qnx.so
82    CC ?= qcc -Vgcc_ntoarmv7le
83    CC_AS = $(CC)
84    HAVE_NEON = 1
85    USE_DYNAREC = 1
86    DRC_CACHE_BASE = 0
87    BUILTIN_GPU = neon
88    ARCH = arm
89    CFLAGS += -DBASE_ADDR_FIXED=0 -D__BLACKBERRY_QNX__ -marm -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
90    ASFLAGS +=  -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp
91 else ifeq ($(platform), arm)
92    TARGET := pcsx_rearmed_libretro.so
93    HAVE_NEON = 1
94    USE_DYNAREC = 1
95    DRC_CACHE_BASE = 0
96    BUILTIN_GPU = neon
97    ARCH = arm
98    CFLAGS += -marm -mcpu=cortex-a8 -mfpu=neon
99    ASFLAGS += -mcpu=cortex-a8 -mfpu=neon
100 else
101    TARGET := pcsx_rearmed_retro.dll
102    CC = gcc
103    fpic := -fPIC
104    LD_FLAGS := -fPIC
105    SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=libretro/link.T
106    CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__
107 endif
108
109 CFLAGS += -fPIC
110 ifneq ($(platform),qnx)
111    LDLIBS += -lpthread
112    MAIN_LDLIBS += -ldl
113 endif
114 MAIN_LDFLAGS += -shared
115 MAIN_LDLIBS += -lm -lz
116 EXTRA_LDFLAGS =
117
118 TARGET ?= libretro.so
119 PLATFORM = libretro
120 BUILTIN_GPU ?= peops
121 SOUND_DRIVERS = libretro
122 PLUGINS =
123 NO_CONFIG_MAK = yes
124
125 include Makefile
126
127 # workaround segfault for this file seen on:
128 # Apple LLVM version 4.2 (clang-425.0.27) (based on LLVM 3.2svn)
129 libpcsxcore/new_dynarec/pcsxmem.o: libpcsxcore/new_dynarec/pcsxmem.c
130         $(CC) -c -o $@ $< $(CPPFLAGS) $(CFLAGS) -Os
131
132 # no special AS needed for gpu_neon
133 plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.o: plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.S
134         $(CC) $(CFLAGS) -c $^ -o $@