| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | DEBUG=0 | 
					
						
							|  |  |  | HAVE_GRIFFIN=0 | 
					
						
							|  |  |  | FRONTEND_SUPPORTS_RGB565=1 | 
					
						
							| 
									
										
										
										
											2014-12-12 03:03:55 +01:00
										 |  |  | FORCE_32BIT_ARCH=0 | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | HAVE_MMAP=0 | 
					
						
							|  |  |  | HAVE_MMAP_WIN32=0 | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | UNAME=$(shell uname -a) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | ifneq ($(EMSCRIPTEN),) | 
					
						
							|  |  |  | 	platform = emscripten | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(platform),) | 
					
						
							|  |  |  | 	platform = unix | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | 	ifeq ($(UNAME),) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 		platform = win | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | 	else ifneq ($(findstring MINGW,$(UNAME)),) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 		platform = win | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | 	else ifneq ($(findstring Darwin,$(UNAME)),) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 		platform = osx | 
					
						
							|  |  |  | 		arch = intel | 
					
						
							|  |  |  | 	ifeq ($(shell uname -p),powerpc) | 
					
						
							|  |  |  | 		arch = ppc | 
					
						
							| 
									
										
										
										
											2014-12-13 06:17:59 +01:00
										 |  |  | 		FORCE_32BIT_ARCH = 1 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	endif | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | 	else ifneq ($(findstring win,$(UNAME)),) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 		platform = win | 
					
						
							|  |  |  | 	endif | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-12 03:03:55 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(firstword $(filter x86_64,$(UNAME))),x86_64) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | else ifeq ($(firstword $(filter amd64,$(UNAME))),amd64) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | else ifeq ($(firstword $(filter x86,$(UNAME))),x86) | 
					
						
							| 
									
										
										
										
											2014-12-13 06:17:59 +01:00
										 |  |  | 	FORCE_32BIT_ARCH = 1 | 
					
						
							| 
									
										
										
										
											2014-12-12 03:03:55 +01:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | FORCE_32BIT := | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(FORCE_32BIT_ARCH),1) | 
					
						
							|  |  |  | 	HAVE_DYNAREC := 1 | 
					
						
							|  |  |  | 	FORCE_32BIT := -m32 | 
					
						
							|  |  |  | 	CPU_ARCH := x86_32 | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | # system platform
 | 
					
						
							|  |  |  | system_platform = unix | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | ifeq ($(UNAME),) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	EXE_EXT = .exe | 
					
						
							|  |  |  | 	system_platform = win | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | else ifneq ($(findstring Darwin,$(UNAME)),) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	system_platform = osx | 
					
						
							|  |  |  | 	arch = intel | 
					
						
							|  |  |  | 	ifeq ($(shell uname -p),powerpc) | 
					
						
							|  |  |  | 		arch = ppc | 
					
						
							|  |  |  | 	endif | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | 	else ifneq ($(findstring MINGW,$(UNAME)),) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	system_platform = win | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | TARGET_NAME	:= gpsp | 
					
						
							| 
									
										
										
										
											2014-12-10 18:32:08 +01:00
										 |  |  | LIBM		   := -lm | 
					
						
							|  |  |  | CORE_DIR    := . | 
					
						
							|  |  |  | LDFLAGS     := | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Unix
 | 
					
						
							|  |  |  | ifeq ($(platform), unix) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro.so | 
					
						
							|  |  |  | 	fpic := -fPIC | 
					
						
							|  |  |  | 	SHARED := -shared $(FORCE_32BIT) -Wl,--version-script=link.T | 
					
						
							|  |  |  | 	ifneq ($(findstring Haiku,$(shell uname -a)),) | 
					
						
							|  |  |  | 		LIBM := | 
					
						
							|  |  |  | 	endif | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | 	CFLAGS += $(FORCE_32BIT) | 
					
						
							| 
									
										
										
										
											2014-12-10 18:32:08 +01:00
										 |  |  | 	LDFLAGS := -Wl,--no-undefined | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | 	ifeq ($(HAVE_DYNAREC),1) | 
					
						
							|  |  |  | 		HAVE_MMAP = 1 | 
					
						
							|  |  |  | 	endif | 
					
						
							| 
									
										
										
										
											2015-03-14 00:59:39 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Linux portable
 | 
					
						
							| 
									
										
										
										
											2015-03-06 11:28:53 +01:00
										 |  |  | else ifeq ($(platform), linux-portable) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro.so | 
					
						
							|  |  |  | 	fpic := -fPIC -nostdlib | 
					
						
							|  |  |  | 	SHARED := -shared $(FORCE_32BIT) -Wl,--version-script=link.T | 
					
						
							|  |  |  | 	LIBM := | 
					
						
							|  |  |  | 	CFLAGS += $(FORCE_32BIT) | 
					
						
							|  |  |  | 	ifeq ($(HAVE_DYNAREC),1) | 
					
						
							|  |  |  | 		HAVE_MMAP = 1 | 
					
						
							|  |  |  | 	endif | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | # OS X
 | 
					
						
							|  |  |  | else ifeq ($(platform), osx) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro.dylib | 
					
						
							|  |  |  | 	fpic := -fPIC | 
					
						
							|  |  |  | 	ifeq ($(arch),ppc) | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | 		CFLAGS += -DMSB_FIRST -D__ppc__ | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	endif | 
					
						
							|  |  |  | 	OSXVER = `sw_vers -productVersion | cut -d. -f 2` | 
					
						
							|  |  |  | 	OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"` | 
					
						
							| 
									
										
										
										
											2015-08-01 23:19:59 +02:00
										 |  |  | 	fpic += -mmacosx-version-min=10.1 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	SHARED := -dynamiclib | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | 	ifeq ($(HAVE_DYNAREC),1) | 
					
						
							|  |  |  | 		HAVE_MMAP = 1 | 
					
						
							|  |  |  | 	endif | 
					
						
							| 
									
										
										
										
											2015-02-01 19:05:48 -02:00
										 |  |  | 	ifndef ($(NOUNIVERSAL)) | 
					
						
							|  |  |  | 		CFLAGS += $(ARCHFLAGS) | 
					
						
							|  |  |  | 		LDFLAGS += $(ARCHFLAGS) | 
					
						
							|  |  |  | 	endif | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-01 19:05:48 -02:00
										 |  |  | # iOS
 | 
					
						
							| 
									
										
										
										
											2015-10-16 03:04:06 +02:00
										 |  |  | else ifneq (,$(findstring ios,$(platform))) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	TARGET := $(TARGET_NAME)_libretro_ios.dylib | 
					
						
							|  |  |  | 	fpic := -fPIC | 
					
						
							|  |  |  | 	SHARED := -dynamiclib | 
					
						
							| 
									
										
										
										
											2014-12-09 22:48:03 +01:00
										 |  |  | 	CPU_ARCH := arm | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ifeq ($(IOSSDK),) | 
					
						
							| 
									
										
										
										
											2015-02-28 03:31:42 +01:00
										 |  |  | 		IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-16 03:04:06 +02:00
										 |  |  | 	CC = cc -arch armv7 -isysroot $(IOSSDK) | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | 	CFLAGS += -DIOS -DHAVE_POSIX_MEMALIGN -marm | 
					
						
							| 
									
										
										
										
											2015-10-16 03:04:06 +02:00
										 |  |  | ifeq ($(platform),ios9) | 
					
						
							|  |  |  | 	CC += -miphoneos-version-min=8.0 | 
					
						
							|  |  |  | 	CFLAGS += -miphoneos-version-min=8.0 | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 	CC += -miphoneos-version-min=5.0 | 
					
						
							|  |  |  | 	CFLAGS += -miphoneos-version-min=5.0 | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2015-02-01 19:05:48 -02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # iOS Theos
 | 
					
						
							| 
									
										
										
										
											2014-12-23 08:58:58 +01:00
										 |  |  | else ifeq ($(platform), theos_ios) | 
					
						
							|  |  |  | 	DEPLOYMENT_IOSVERSION = 5.0 | 
					
						
							|  |  |  | 	TARGET = iphone:latest:$(DEPLOYMENT_IOSVERSION) | 
					
						
							|  |  |  | 	ARCHS = armv7 armv7s | 
					
						
							|  |  |  | 	TARGET_IPHONEOS_DEPLOYMENT_VERSION=$(DEPLOYMENT_IOSVERSION) | 
					
						
							|  |  |  | 	THEOS_BUILD_DIR := objs | 
					
						
							|  |  |  | 	include $(THEOS)/makefiles/common.mk | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-23 08:58:58 +01:00
										 |  |  | 	CFLAGS += -DIOS -DHAVE_POSIX_MEMALIGN -marm | 
					
						
							|  |  |  | 	CPU_ARCH := arm | 
					
						
							| 
									
										
										
										
											2015-02-01 19:05:48 -02:00
										 |  |  | 	LIBRARY_NAME = $(TARGET_NAME)_libretro_ios | 
					
						
							| 
									
										
										
										
											2014-12-23 08:58:58 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-01 19:05:48 -02:00
										 |  |  | # QNX
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | else ifeq ($(platform), qnx) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro_qnx.so | 
					
						
							|  |  |  | 	fpic := -fPIC | 
					
						
							|  |  |  | 	SHARED := -shared -Wl,--version-script=link.T | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | 	HAVE_MMAP = 1 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	CC = qcc -Vgcc_ntoarmv7le | 
					
						
							|  |  |  | 	AR = qcc -Vgcc_ntoarmv7le | 
					
						
							| 
									
										
										
										
											2014-12-22 06:52:09 +01:00
										 |  |  | 	CFLAGS += -D__BLACKBERRY_QNX_ | 
					
						
							|  |  |  | 	HAVE_DYNAREC := 1 | 
					
						
							|  |  |  | 	CFLAGS += -DARM -DARM_ARCH -DARM_MEMORY_DYNAREC | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # PS3
 | 
					
						
							|  |  |  | else ifeq ($(platform), ps3) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro_ps3.a | 
					
						
							|  |  |  | 	CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe | 
					
						
							|  |  |  | 	AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | 	CFLAGS += -DMSB_FIRST -D__ppc__ | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	STATIC_LINKING = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # sncps3
 | 
					
						
							|  |  |  | else ifeq ($(platform), sncps3) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro_ps3.a | 
					
						
							|  |  |  | 	CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe | 
					
						
							|  |  |  | 	AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | 	CFLAGS += -DMSB_FIRST -D__ppc__ | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	STATIC_LINKING = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Lightweight PS3 Homebrew SDK
 | 
					
						
							|  |  |  | else ifeq ($(platform), psl1ght) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro_psl1ght.a | 
					
						
							|  |  |  | 	CC = $(PS3DEV)/ppu/bin/ppu-gcc$(EXE_EXT) | 
					
						
							|  |  |  | 	AR = $(PS3DEV)/ppu/bin/ppu-ar$(EXE_EXT) | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | 	CFLAGS += -DMSB_FIRST -D__ppc__ | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	STATIC_LINKING = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # PSP
 | 
					
						
							|  |  |  | else ifeq ($(platform), psp1) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro_psp1.a | 
					
						
							|  |  |  | 	CC = psp-gcc$(EXE_EXT) | 
					
						
							|  |  |  | 	AR = psp-ar$(EXE_EXT) | 
					
						
							|  |  |  | 	CFLAGS += -DPSP -G0 | 
					
						
							|  |  |  | 	STATIC_LINKING = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-31 21:50:44 +02:00
										 |  |  | # Vita
 | 
					
						
							|  |  |  | else ifeq ($(platform), vita) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro_vita.a | 
					
						
							|  |  |  | 	CC = arm-vita-eabi-gcc$(EXE_EXT) | 
					
						
							|  |  |  | 	AR = arm-vita-eabi-ar$(EXE_EXT) | 
					
						
							|  |  |  | 	CFLAGS += -DVITA | 
					
						
							|  |  |  | 	STATIC_LINKING = 1 | 
					
						
							| 
									
										
										
										
											2015-10-24 19:48:54 +01:00
										 |  |  | 	CPU_ARCH := arm | 
					
						
							| 
									
										
										
										
											2015-08-31 21:50:44 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-06 11:27:02 +01:00
										 |  |  | # CTR(3DS)
 | 
					
						
							|  |  |  | else ifeq ($(platform), ctr) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro_ctr.a | 
					
						
							|  |  |  | 	CC = $(DEVKITARM)/bin/arm-none-eabi-gcc$(EXE_EXT) | 
					
						
							|  |  |  | 	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 += -Wall -mword-relocations | 
					
						
							|  |  |  | 	CFLAGS += -fomit-frame-pointer -ffast-math | 
					
						
							| 
									
										
										
										
											2015-09-14 04:04:25 +01:00
										 |  |  | 	CXXFLAGS = $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 | 
					
						
							| 
									
										
										
										
											2015-04-06 11:27:02 +01:00
										 |  |  | 	CPU_ARCH := arm | 
					
						
							| 
									
										
										
										
											2015-11-04 15:46:27 +01:00
										 |  |  | 	# dynarec unavailable with the HBL on FW > 9.2 | 
					
						
							| 
									
										
										
										
											2015-04-08 10:20:32 +01:00
										 |  |  | 	HAVE_DYNAREC = 1 | 
					
						
							| 
									
										
										
										
											2015-04-06 11:27:02 +01:00
										 |  |  | 	STATIC_LINKING = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | # Xbox 360
 | 
					
						
							|  |  |  | else ifeq ($(platform), xenon) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro_xenon360.a | 
					
						
							|  |  |  | 	CC = xenon-gcc$(EXE_EXT) | 
					
						
							|  |  |  | 	AR = xenon-ar$(EXE_EXT) | 
					
						
							|  |  |  | 	CFLAGS += -D__LIBXENON__ -m32 -D__ppc__ | 
					
						
							|  |  |  | 	STATIC_LINKING = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Nintendo Game Cube
 | 
					
						
							|  |  |  | else ifeq ($(platform), ngc) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro_ngc.a | 
					
						
							|  |  |  | 	CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT) | 
					
						
							|  |  |  | 	AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT) | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | 	CFLAGS += -DGEKKO -DHW_DOL -mrvl -mcpu=750 -meabi -mhard-float -DMSB_FIRST -D__ppc__ | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	STATIC_LINKING = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Nintendo Wii
 | 
					
						
							|  |  |  | else ifeq ($(platform), wii) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro_wii.a | 
					
						
							|  |  |  | 	CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT) | 
					
						
							|  |  |  | 	AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT) | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | 	CFLAGS += -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float -DMSB_FIRST -D__ppc__ | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	STATIC_LINKING = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # ARM
 | 
					
						
							|  |  |  | else ifneq (,$(findstring armv,$(platform))) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro.so | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | 	SHARED := -shared -Wl,--version-script=link.T | 
					
						
							|  |  |  | 	CPU_ARCH := arm | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	fpic := -fPIC | 
					
						
							| 
									
										
										
										
											2015-02-01 19:05:48 -02:00
										 |  |  | 	ifneq (,$(findstring cortexa5,$(platform))) | 
					
						
							|  |  |  | 		CFLAGS += -marm -mcpu=cortex-a5 | 
					
						
							|  |  |  | 		ASFLAGS += -mcpu=cortex-a5 | 
					
						
							|  |  |  | 	else ifneq (,$(findstring cortexa8,$(platform))) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 		CFLAGS += -marm -mcpu=cortex-a8 | 
					
						
							|  |  |  | 		ASFLAGS += -mcpu=cortex-a8 | 
					
						
							|  |  |  | 	else ifneq (,$(findstring cortexa9,$(platform))) | 
					
						
							|  |  |  | 		CFLAGS += -marm -mcpu=cortex-a9 | 
					
						
							|  |  |  | 		ASFLAGS += -mcpu=cortex-a9 | 
					
						
							| 
									
										
										
										
											2015-02-01 19:05:48 -02:00
										 |  |  | 	else ifneq (,$(findstring cortexa15a7,$(platform))) | 
					
						
							|  |  |  | 		CFLAGS += -marm -mcpu=cortex-a15.cortex-a7 | 
					
						
							|  |  |  | 		ASFLAGS += -mcpu=cortex-a15.cortex-a7 | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 		CFLAGS += -marm | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	endif | 
					
						
							|  |  |  | 	ifneq (,$(findstring softfloat,$(platform))) | 
					
						
							|  |  |  | 		CFLAGS += -mfloat-abi=softfp | 
					
						
							|  |  |  | 		ASFLAGS += -mfloat-abi=softfp | 
					
						
							|  |  |  | 	else ifneq (,$(findstring hardfloat,$(platform))) | 
					
						
							|  |  |  | 		CFLAGS += -mfloat-abi=hard | 
					
						
							|  |  |  | 		ASFLAGS += -mfloat-abi=hard | 
					
						
							|  |  |  | 	endif | 
					
						
							| 
									
										
										
										
											2015-02-01 19:05:48 -02:00
										 |  |  | 	CFLAGS += -DARM -DARM_ARCH | 
					
						
							| 
									
										
										
										
											2015-03-14 00:59:39 -03:00
										 |  |  | 	# Dynarec works at least in rpi, take a look at issue #11 | 
					
						
							|  |  |  | 	ifeq (,$(findstring no-dynarec,$(platform))) | 
					
						
							|  |  |  | 		HAVE_DYNAREC := 1 | 
					
						
							|  |  |  | 		CFLAGS += -DARM_MEMORY_DYNAREC | 
					
						
							|  |  |  | 	endif | 
					
						
							| 
									
										
										
										
											2015-02-01 19:05:48 -02:00
										 |  |  | 	LDFLAGS := -Wl,--no-undefined	 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # emscripten
 | 
					
						
							|  |  |  | else ifeq ($(platform), emscripten) | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro_emscripten.bc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Windows
 | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 	TARGET := $(TARGET_NAME)_libretro.dll | 
					
						
							|  |  |  | 	CC = gcc | 
					
						
							|  |  |  | 	SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=link.T | 
					
						
							|  |  |  | 	CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__ | 
					
						
							| 
									
										
										
										
											2014-12-13 20:58:09 -02:00
										 |  |  | 	ifeq ($(HAVE_DYNAREC),1) | 
					
						
							|  |  |  | 		HAVE_MMAP = 1 | 
					
						
							|  |  |  | 		HAVE_MMAP_WIN32 = 1 | 
					
						
							|  |  |  | 	endif | 
					
						
							| 
									
										
										
										
											2014-12-13 05:50:15 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(HAVE_MMAP), 1) | 
					
						
							|  |  |  | CFLAGS += -DHAVE_MMAP | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | endif | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-13 06:17:59 +01:00
										 |  |  | ifeq ($(FORCE_32BIT_ARCH), 1) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | # Forcibly disable PIC
 | 
					
						
							|  |  |  | fpic := | 
					
						
							| 
									
										
										
										
											2014-12-11 03:21:40 +01:00
										 |  |  | endif | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(DEBUG), 1) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	OPTIMIZE_SAFE := -O0 -g | 
					
						
							|  |  |  | 	OPTIMIZE      := -O0 -g | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	OPTIMIZE_SAFE := -O2 -DNDEBUG | 
					
						
							|  |  |  | 	OPTIMIZE      := -O3 -DNDEBUG | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | include Makefile.common | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | OBJECTS := $(SOURCES_C:.c=.o) $(SOURCES_ASM:.S=.o) | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-20 14:16:01 +02:00
										 |  |  | DEFINES := -DHAVE_STRINGS_H -DHAVE_STDINT_H -DHAVE_INTTYPES_H -D__LIBRETRO__ -DINLINE=inline -Wall | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-10 17:06:09 +01:00
										 |  |  | ifeq ($(HAVE_DYNAREC), 1) | 
					
						
							|  |  |  | DEFINES += -DHAVE_DYNAREC | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:48:03 +01:00
										 |  |  | ifeq ($(CPU_ARCH), arm) | 
					
						
							|  |  |  | DEFINES += -DARM_ARCH | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-11 22:02:04 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | WARNINGS_DEFINES = | 
					
						
							|  |  |  | CODE_DEFINES = | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | COMMON_DEFINES += $(CODE_DEFINES) $(WARNINGS_DEFINES) -DNDEBUG=1 $(fpic) | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-04 15:46:27 +01:00
										 |  |  | CFLAGS += $(DEFINES) $(COMMON_DEFINES) -Werror=implicit-function-declaration | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(FRONTEND_SUPPORTS_RGB565), 1) | 
					
						
							|  |  |  | 	CFLAGS += -DFRONTEND_SUPPORTS_RGB565 | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-10 17:12:22 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-11 22:02:04 +01:00
										 |  |  | ifeq ($(platform), ctr) | 
					
						
							|  |  |  | ifeq ($(HAVE_DYNAREC), 1) | 
					
						
							|  |  |  | OBJECTS += 3ds/3ds_utils.o 3ds/libkhax/khaxinit.o | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(strip $(CTRULIB)),) | 
					
						
							|  |  |  | $(error "Please set CTRULIB in your environment. export CTRULIB=<path to>ctrulib") | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CFLAGS  += -I$(CTRULIB)/include | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-23 08:58:58 +01:00
										 |  |  | ifeq ($(platform), theos_ios) | 
					
						
							|  |  |  | COMMON_FLAGS := -DIOS $(COMMON_DEFINES) $(INCFLAGS) -I$(THEOS_INCLUDE_PATH) -Wno-error | 
					
						
							|  |  |  | $(LIBRARY_NAME)_CFLAGS += $(COMMON_FLAGS) $(CFLAGS) | 
					
						
							|  |  |  | ${LIBRARY_NAME}_FILES = $(SOURCES_C) $(SOURCES_ASM) | 
					
						
							|  |  |  | include $(THEOS_MAKE_PATH)/library.mk | 
					
						
							|  |  |  | else | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | all: $(TARGET) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | $(TARGET): $(OBJECTS) | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | ifeq ($(STATIC_LINKING), 1) | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	$(AR) rcs $@ $(OBJECTS) | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2014-12-10 17:12:22 +01:00
										 |  |  | 	$(CC) $(fpic) $(SHARED) $(INCFLAGS) $(OPTIMIZE) -o $@ $(OBJECTS) $(LIBM) $(LDFLAGS) | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 02:11:22 +01:00
										 |  |  | cpu_threaded.o: cpu_threaded.c | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	$(CC) $(CFLAGS) -Wno-unused-variable -Wno-unused-label $(OPTIMIZE_SAFE) $(INCDIRS) -c -o $@ $< | 
					
						
							| 
									
										
										
										
											2014-12-09 02:11:22 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-06 11:29:08 +01:00
										 |  |  | libco/libco.o: libco/libco.c | 
					
						
							|  |  |  | 	$(CC) $(INCFLAGS) $(CFLAGS) -O3 -DNDEBUG -c  -o $@ $< | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | %.o: %.S | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	$(CC) $(ASFLAGS) $(CFLAGS) $(OPTIMIZE) -c -o $@ $< | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | %.o: %.c | 
					
						
							|  |  |  | 	$(CC) $(INCFLAGS) $(CFLAGS) $(OPTIMIZE) -c  -o $@ $< | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-14 04:04:25 +01:00
										 |  |  | %.o: %.cpp | 
					
						
							|  |  |  | 	$(CXX) $(INCFLAGS) $(CXXFLAGS) $(OPTIMIZE) -c  -o $@ $< | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | clean-objs: | 
					
						
							|  |  |  | 	rm -rf $(OBJECTS) | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | clean: | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | 	rm -f $(OBJECTS) $(TARGET) | 
					
						
							| 
									
										
										
										
											2014-12-08 22:56:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-09 22:25:29 +01:00
										 |  |  | .PHONY: clean | 
					
						
							| 
									
										
										
										
											2014-12-23 08:58:58 +01:00
										 |  |  | endif |