xrick-libretro/Makefile.libretro
2017-07-04 10:45:52 +02:00

146 lines
3.8 KiB
Makefile

STATIC_LINKING=0
STATIC_LINKING_LINK=0
CORE_DIR := .
WANT_ZLIB=1
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
TARGET_NAME := xrick
ifeq ($(STATIC_LINKING),1)
EXT=a
ifeq ($(platform), unix)
PLAT=_unix
STATIC_LINKING=1
STATIC_LINKING_LINK=1
endif
endif
ifeq ($(platform), android)
CC = arm-linux-androideabi-gcc
AR = @arm-linux-androideabi-ar
LD = @arm-linux-androideabi-g++
TARGET := $(TARGET_NAME)_libretro.so
fpic := -fPIC
SHARED := -Wl,--fix-cortex-a8 -llog --shared -Wl,--version-script=$(CORE_DIR)/libretro/core/link.T -Wl,--no-undefined
PLATFLAGS := -DAND -DALIGN_DWORD -D__LIBRETRO__
else ifeq ($(platform), unix)
CC = gcc
TARGET := $(TARGET_NAME)_libretro.so
fpic := -fPIC
SHARED := -shared -Wl,--version-script=$(CORE_DIR)/libretro/core/link.T -Wl,--no-undefined
PLATFLAGS := -DALIGN_DWORD -D__LIBRETRO__
# OS X
else ifneq (,$(findstring osx,$(platform)))
TARGET := $(TARGET_NAME)_libretro.dylib
fpic := -fPIC
SHARED := -dynamiclib
PLATFLAGS := -DALIGN_DWORD -D__LIBRETRO__
# iOS
else ifneq (,$(findstring ios,$(platform)))
TARGET := $(TARGET_NAME)_libretro_ios.dylib
fpic := -fPIC
SHARED := -dynamiclib
PLATFLAGS := -DALIGN_DWORD -D__LIBRETRO__
# Nintendo Wii
else ifeq ($(platform), wii)
TARGET := $(TARGET_NAME)_libretro_wii.a
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
BAKE_IN_ZLIB=1
CFLAGS += -DSDL_BYTEORDER=SDL_BIG_ENDIAN -DMSB_FIRST -DBYTE_ORDER=BIG_ENDIAN -DBYTE_ORDER=BIG_ENDIAN \
-DHAVE_ASPRINTF -I$(DEVKITPRO)/libogc/include \
-D__powerpc__ -D__POWERPC__ -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float -D__ppc__ -DMSB_FIRST
SHARED := -lm -lc
PLATFLAGS := -D__LIBRETRO__ -DALIGN_DWORD
WANT_ZLIB=1
STATIC_LINKING=1
STATIC_LINKING_LINK=1
else ifeq ($(platform), ps3)
TARGET := $(TARGET_NAME)_libretro_ps3.a
CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
CXX = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-g++.exe
AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe
BAKE_IN_ZLIB=1
SHARED := -lm -lc
CFLAGS += -DSDL_BYTEORDER=SDL_BIG_ENDIAN -DMSB_FIRST -DBYTE_ORDER=BIG_ENDIAN -DBYTE_ORDER=BIG_ENDIAN \
-D__CELLOS_LV2 -DHAVE_ASPRINTF -DMSB_FIRST
PLATFLAGS := -D__LIBRETRO__ -DALIGN_DWORD
WANT_ZLIB=1
STATIC_LINKING=1
STATIC_LINKING_LINK=1
else
CC = gcc
PLATFLAGS := -D__LIBRETRO__ -DALIGN_DWORD -DWIN32PORT -DWIN32
TARGET := $(TARGET_NAME)_libretro.dll
SHARED := -shared -static-libgcc -s -Wl,--version-script=$(CORE_DIR)/libretro/core/link.T -Wl,--no-undefined
endif
ifeq ($(STATIC_LINKING),1)
SHARED=
fpic=
endif
ifeq ($(DEBUG), 1)
CFLAGS += -O0 -g
else
CFLAGS += -O2 -DNDEBUG
endif
ifeq ($(WANT_ZLIB), 1)
CFLAGS += -DWANT_ZLIB
endif
CFLAGS += -fsigned-char -Wno-strict-prototypes -ffast-math -fomit-frame-pointer -fno-builtin
include $(CORE_DIR)/Makefile.common
ifeq ($(STATIC_LINKING),1)
CFLAGS += -DSTATIC_LINKING
endif
CFLAGS += $(INCFLAGS)
CXXFLAGS += $(CFLAGS) $(INCFLAGS)
CPPFLAGS += $(CFLAGS) $(INCFLAGS)
LIBS := -lm
OBJECTS := $(SOURCES_C:.c=.o)
all: $(TARGET)
$(TARGET): $(OBJECTS)
ifeq ($(STATIC_LINKING_LINK),1)
$(AR) rcs $@ $(OBJECTS)
else
$(CC) $(fpic) $(SHARED) $(INCLUDES) -o $@ $(OBJECTS) $(LIBS)
endif
%.o: %.c
$(CC) $(fpic) $(CFLAGS) $(PLATFLAGS) $(HINCLUDES) -c -o $@ $<
clean:
rm -f $(OBJECTS) $(TARGET)
.PHONY: clean