Mahyar Koshkouei
7 years ago
3 changed files with 357 additions and 2 deletions
-
139Makefile
-
4link.T
-
216mpv-libretro.c
@ -0,0 +1,139 @@ |
|||
STATIC_LINKING := 0 |
|||
AR := ar |
|||
|
|||
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 |
|||
|
|||
# system platform
|
|||
system_platform = unix |
|||
ifeq ($(shell uname -a),) |
|||
EXE_EXT = .exe |
|||
system_platform = win |
|||
else ifneq ($(findstring Darwin,$(shell uname -a)),) |
|||
system_platform = osx |
|||
arch = intel |
|||
ifeq ($(shell uname -p),powerpc) |
|||
arch = ppc |
|||
endif |
|||
else ifneq ($(findstring MINGW,$(shell uname -a)),) |
|||
system_platform = win |
|||
endif |
|||
|
|||
TARGET_NAME := mpv |
|||
LIBM = -lm |
|||
|
|||
ifeq ($(ARCHFLAGS),) |
|||
ifeq ($(archs),ppc) |
|||
ARCHFLAGS = -arch ppc -arch ppc64 |
|||
else |
|||
ARCHFLAGS = -arch i386 -arch x86_64 |
|||
endif |
|||
endif |
|||
|
|||
ifeq ($(platform), osx) |
|||
ifndef ($(NOUNIVERSAL)) |
|||
CFLAGS += $(ARCHFLAGS) |
|||
LFLAGS += $(ARCHFLAGS) |
|||
endif |
|||
endif |
|||
|
|||
ifeq ($(STATIC_LINKING), 1) |
|||
EXT := a |
|||
endif |
|||
|
|||
ifeq ($(platform), unix) |
|||
EXT ?= so |
|||
TARGET := $(TARGET_NAME)_libretro.$(EXT) |
|||
fpic := -fPIC |
|||
SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined |
|||
else ifeq ($(platform), linux-portable) |
|||
TARGET := $(TARGET_NAME)_libretro.$(EXT) |
|||
fpic := -fPIC -nostdlib |
|||
SHARED := -shared -Wl,--version-script=link.T |
|||
LIBM := |
|||
else ifneq (,$(findstring osx,$(platform))) |
|||
TARGET := $(TARGET_NAME)_libretro.dylib |
|||
fpic := -fPIC |
|||
SHARED := -dynamiclib |
|||
else ifneq (,$(findstring ios,$(platform))) |
|||
TARGET := $(TARGET_NAME)_libretro_ios.dylib |
|||
fpic := -fPIC |
|||
SHARED := -dynamiclib |
|||
|
|||
ifeq ($(IOSSDK),) |
|||
IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path) |
|||
endif |
|||
|
|||
DEFINES := -DIOS |
|||
CC = cc -arch armv7 -isysroot $(IOSSDK) |
|||
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 |
|||
else ifneq (,$(findstring qnx,$(platform))) |
|||
TARGET := $(TARGET_NAME)_libretro_qnx.so |
|||
fpic := -fPIC |
|||
SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined |
|||
else ifeq ($(platform), emscripten) |
|||
TARGET := $(TARGET_NAME)_libretro_emscripten.bc |
|||
fpic := -fPIC |
|||
SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined |
|||
else ifeq ($(platform), vita) |
|||
TARGET := $(TARGET_NAME)_vita.a |
|||
CC = arm-vita-eabi-gcc |
|||
AR = arm-vita-eabi-ar |
|||
CFLAGS += -Wl,-q -Wall -O3 |
|||
STATIC_LINKING = 1 |
|||
else |
|||
CC = gcc |
|||
TARGET := $(TARGET_NAME)_libretro.dll |
|||
SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=link.T -Wl,--no-undefined |
|||
endif |
|||
|
|||
LDFLAGS += $(LIBM) -lmpv |
|||
|
|||
ifeq ($(DEBUG), 1) |
|||
CFLAGS += -O0 -g |
|||
else |
|||
CFLAGS += -O3 |
|||
endif |
|||
|
|||
OBJECTS := mpv-libretro.o |
|||
CFLAGS += -Wall -pedantic $(fpic) |
|||
|
|||
ifneq (,$(findstring qnx,$(platform))) |
|||
CFLAGS += -Wc,-std=c99 |
|||
else |
|||
CFLAGS += -std=gnu99 |
|||
endif |
|||
|
|||
all: $(TARGET) |
|||
|
|||
$(TARGET): $(OBJECTS) |
|||
ifeq ($(STATIC_LINKING), 1) |
|||
$(AR) rcs $@ $(OBJECTS) |
|||
else |
|||
$(CC) $(fpic) $(SHARED) $(INCLUDES) -o $@ $(OBJECTS) $(LDFLAGS) |
|||
endif |
|||
|
|||
%.o: %.c |
|||
$(CC) $(CFLAGS) $(fpic) -c -o $@ $< |
|||
|
|||
clean: |
|||
rm -f $(OBJECTS) $(TARGET) |
|||
|
|||
.PHONY: clean |
|||
|
@ -0,0 +1,4 @@ |
|||
{ |
|||
global: retro_*; |
|||
local: *; |
|||
}; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue