libretro: rework makefile
[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
21 ifeq ($(platform), unix)
22    TARGET := snes9x_next_libretro.so
23    fpic := -fPIC
24    SHARED := -shared -Wl,--version-script=libretro/link.T
25 else ifeq ($(platform), osx)
26    TARGET := snes9x_next_libretro.dylib
27    fpic := -fPIC
28    SHARED := -dynamiclib
29 else ifeq ($(platform), ios)
30 ARCH := arm
31    TARGET := snes9x_next_libretro.dylib
32    fpic := -fPIC
33    SHARED := -dynamiclib
34
35    CC = clang -arch armv7 -isysroot $(IOSSDK)
36    CXX = clang++ -arch armv7 -isysroot $(IOSSDK)
37    CC_AS = perl ./tools/gas-preprocessor.pl $(CC)
38    CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
39    ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
40    HAVE_NEON = 1
41 #TODO
42 #   BUILTIN_GPU = neon
43 #   USE_DYNAREC = 1
44    CFLAGS += -DIOS
45 else ifeq ($(platform), ps3)
46    TARGET := snes9x_next_libretro_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 := snes9x_next_libretro_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 := snes9x_next_libretro_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 := snes9x_next_libretro_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 := snes9x_next_libretro_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 := snes9x_next_libretro_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 := snes9x_next_libretro_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    HAVE_NEON = 1
83    USE_DYNAREC = 1
84    DRC_CACHE_BASE = 0
85    BUILTIN_GPU = neon
86    ARCH = arm
87    CFLAGS += -DBASE_ADDR_FIXED=0 -D__BLACKBERRY_QNX__ -marm -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
88    ASFLAGS +=  -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp
89 else
90    TARGET := snes9x_next_retro.dll
91    CC = gcc
92    fpic := -fPIC
93    LD_FLAGS := -fPIC
94    SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=libretro/link.T
95    CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__
96 endif
97
98 CFLAGS += -fPIC
99 ifneq ($(platform),qnx)
100    LDLIBS += -lpthread
101    MAIN_LDLIBS += -ldl
102 endif
103 MAIN_LDFLAGS += -shared
104 MAIN_LDLIBS += -lm -lz
105 EXTRA_LDFLAGS =
106
107 TARGET ?= libretro.so
108 PLATFORM = libretro
109 BUILTIN_GPU ?= peops
110 SOUND_DRIVERS = libretro
111 PLUGINS =
112 NO_CONFIG_MAK = yes
113
114 include Makefile