Created
November 10, 2015 22:11
-
-
Save jasarien/c4dd470660b1b0146b63 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Makefile for PCSX ReARMed (libretro) | |
ifeq ($(platform),) | |
platform = unix | |
ifeq ($(shell uname -a),) | |
platform = win | |
else ifneq ($(findstring MINGW,$(shell uname -a)),) | |
platform = win | |
else ifneq ($(findstring Darwin,$(shell uname -a)),) | |
platform = osx | |
else ifneq ($(findstring win,$(shell uname -a)),) | |
platform = win | |
endif | |
endif | |
CC ?= gcc | |
CXX ?= g++ | |
AS ?= as | |
CC_AS ?= $(CC) | |
CFLAGS ?= | |
TARGET_NAME := pcsx_rearmed | |
LIBM := -lm | |
LIBZ := -lz | |
LIBPTHREAD := -lpthread | |
LIBDL := -ldl | |
MMAP_WIN32=0 | |
EXTRA_LDFLAGS = | |
# Unix | |
ifeq ($(platform), unix) | |
TARGET := $(TARGET_NAME)_libretro.so | |
fpic := -fPIC | |
SHARED := -shared -Wl,--version-script=libretro/link.T | |
else ifeq ($(platform), linux-portable) | |
TARGET := $(TARGET_NAME)_libretro.so | |
fpic := -fPIC -nostdlib | |
EXTRA_LDFLAGS += -fPIC -nostdlib | |
LIBM := | |
LIBZ := | |
LIBPTHREAD := | |
LIBDL := | |
SHARED := -shared -Wl,--version-script=libretro/link.T | |
# OS X | |
else ifeq ($(platform), osx) | |
TARGET := $(TARGET_NAME)_libretro.dylib | |
fpic := -fPIC | |
SHARED := -dynamiclib | |
OSXVER = `sw_vers -productVersion | cut -d. -f 2` | |
OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"` | |
fpic += -mmacosx-version-min=10.1 | |
# iOS | |
else ifneq (,$(findstring ios,$(platform))) | |
ARCH := arm | |
USE_DYNAREC ?= 1 | |
TARGET := $(TARGET_NAME)_libretro_ios.dylib | |
ifeq ($(USE_DYNAREC),0) | |
# Override | |
TARGET := $(TARGET_NAME)_interpreter_libretro_ios.dylib | |
endif | |
fpic := -fPIC | |
SHARED := -dynamiclib | |
ifeq ($(IOSSDK),) | |
IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path) | |
endif | |
CC = clang -arch $(arch) -isysroot $(IOSSDK) | |
CXX = clang++ -arch $(arch) -isysroot $(IOSSDK) | |
CC_AS = perl ./tools/gas-preprocessor.pl $(CC) | |
CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm | |
ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon | |
HAVE_NEON = 1 | |
BUILTIN_GPU = neon | |
CFLAGS += -DIOS | |
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 | |
# 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 | |
CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__ | |
# 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 | |
CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__ | |
# 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) | |
CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__ | |
# PSP | |
else ifeq ($(platform), psp1) | |
TARGET := $(TARGET_NAME)_libretro_psp1.a | |
CC = psp-gcc$(EXE_EXT) | |
AR = psp-ar$(EXE_EXT) | |
CFLAGS += -DPSP -G0 | |
# 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 | |
CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm | |
CFLAGS += -I$(VITASDK)/include -Ifrontend/vita | |
CFLAGS += -DNO_SOCKET -DNO_OS -DNO_DYLIB | |
ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon | |
# CFLAGS += -U__ARM_NEON__ | |
HAVE_NEON = 1 | |
BUILTIN_GPU = neon | |
# USE_DYNAREC = 1 | |
# DRC_CACHE_BASE = 0 | |
ARCH = arm | |
STATIC_LINKING = 1 | |
# 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 -DNO_OS -DNO_DYLIB | |
CFLAGS += -march=armv6k -mtune=mpcore -mfloat-abi=hard -marm -mfpu=vfp | |
CFLAGS += -Wall -mword-relocations | |
CFLAGS += -fomit-frame-pointer -ffast-math | |
CFLAGS += -I$(CTRULIB)/include -I$(DEVKITPRO)/portlibs/armv6k/include -Ifrontend/3ds | |
CFLAGS += -Werror=implicit-function-declaration | |
OBJS += frontend/3ds/3ds_utils.o | |
# CFLAGS += -DPCSX | |
# BUILTIN_GPU = unai | |
USE_DYNAREC = 1 | |
DRC_CACHE_BASE = 0 | |
ARCH = arm | |
STATIC_LINKING = 1 | |
# 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__ | |
# 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) | |
CFLAGS += -DGEKKO -DHW_DOL -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__ | |
# Nintendo Wii | |
else ifeq ($(platform), wii) | |
TARGET := libretro_$(TARGET_NAME)_wii.a | |
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT) | |
AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT) | |
CFLAGS += -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__ | |
# QNX | |
else ifeq ($(platform), qnx) | |
TARGET := $(TARGET_NAME)_libretro_qnx.so | |
fpic := -fPIC | |
CC = qcc -Vgcc_ntoarmv7le | |
CC_AS = $(CC) | |
HAVE_NEON = 1 | |
USE_DYNAREC = 1 | |
DRC_CACHE_BASE = 0 | |
BUILTIN_GPU = neon | |
ARCH = arm | |
CFLAGS += -DBASE_ADDR_FIXED=0 -D__BLACKBERRY_QNX__ -marm -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp | |
ASFLAGS += -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp | |
# ARM | |
else ifneq (,$(findstring armv,$(platform))) | |
TARGET := $(TARGET_NAME)_libretro.so | |
SHARED := -shared -Wl,--no-undefined | |
fpic := -fPIC | |
DRC_CACHE_BASE = 0 | |
ifneq (,$(findstring cortexa8,$(platform))) | |
CFLAGS += -marm -mcpu=cortex-a8 | |
ASFLAGS += -mcpu=cortex-a8 | |
else ifneq (,$(findstring cortexa9,$(platform))) | |
CFLAGS += -marm -mcpu=cortex-a9 | |
ASFLAGS += -mcpu=cortex-a9 | |
endif | |
CFLAGS += -marm | |
ifneq (,$(findstring neon,$(platform))) | |
CFLAGS += -mfpu=neon | |
ASFLAGS += -mfpu=neon | |
HAVE_NEON = 1 | |
BUILTIN_GPU = neon | |
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 | |
ARCH = arm | |
USE_DYNAREC = 1 | |
# Windows | |
else | |
TARGET := $(TARGET_NAME)_libretro.dll | |
CC = gcc | |
fpic := -fPIC | |
LD_FLAGS := -fPIC | |
SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=libretro/link.T | |
CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__ | |
MMAP_WIN32=1 | |
endif | |
CFLAGS += $(fpic) | |
ifeq ($(platform),win) | |
MAIN_LDLIBS += -lws2_32 | |
else ifneq ($(platform),qnx) | |
LDLIBS += $(LIBPHTREAD) | |
MAIN_LDLIBS += $(LIBDL) | |
endif | |
MAIN_LDFLAGS += -shared | |
MAIN_LDLIBS += $(LIBM) $(LIBZ) | |
TARGET ?= libretro.so | |
PLATFORM = libretro | |
BUILTIN_GPU ?= peops | |
SOUND_DRIVERS = libretro | |
PLUGINS = | |
NO_CONFIG_MAK = yes | |
libretro_all: all | |
ifeq ($(platform),ios) | |
ifeq ($(USE_DYNAREC),1) | |
make -f Makefile.libretro USE_DYNAREC=0 platform=$(platform) clean | |
make -f Makefile.libretro USE_DYNAREC=0 platform=$(platform) | |
endif | |
endif | |
include Makefile | |
# no special AS needed for gpu_neon | |
plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.o: plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.S | |
$(CC) $(CFLAGS) -c $^ -o $@ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment