Update libretro's Makefile to support more targets

This commit is contained in:
Lior Halphon
2024-03-08 23:52:30 +02:00
parent df59294c38
commit 17f0ff2cf7

View File

@@ -41,6 +41,9 @@ else ifneq ($(findstring Darwin,$(shell uname -a)),)
ifeq ($(shell uname -p),powerpc) ifeq ($(shell uname -p),powerpc)
arch = ppc arch = ppc
endif endif
ifeq ($(shell uname -p),arm)
arch = arm
endif
else ifneq ($(findstring MINGW,$(shell uname -a)),) else ifneq ($(findstring MINGW,$(shell uname -a)),)
system_platform = win system_platform = win
endif endif
@@ -52,15 +55,8 @@ endif
CORE_DIR = .. CORE_DIR = ..
TARGET_NAME = sameboy TARGET_NAME = sameboy
LIBM = -lm LIBM = -lm
ifeq ($(ARCHFLAGS),)
ifeq ($(archs),ppc)
ARCHFLAGS = -arch ppc -arch ppc64
else
ARCHFLAGS = -arch i386 -arch x86_64
endif
endif
ifneq ($(SANITIZER),) ifneq ($(SANITIZER),)
CFLAGS := -fsanitize=$(SANITIZER) $(CFLAGS) CFLAGS := -fsanitize=$(SANITIZER) $(CFLAGS)
@@ -68,13 +64,6 @@ ifneq ($(SANITIZER),)
LDFLAGS := -fsanitize=$(SANITIZER) $(LDFLAGS) -lasan LDFLAGS := -fsanitize=$(SANITIZER) $(LDFLAGS) -lasan
endif endif
ifeq ($(platform), osx)
ifndef ($(NOUNIVERSAL))
CFLAGS += $(ARCHFLAGS)
LFLAGS += $(ARCHFLAGS)
endif
endif
ifeq ($(STATIC_LINKING), 1) ifeq ($(STATIC_LINKING), 1)
EXT := a EXT := a
endif endif
@@ -91,7 +80,7 @@ else ifeq ($(platform), linux-portable)
LIBM := LIBM :=
# (armv7 a7, hard point, neon based) ### # (armv7 a7, hard point, neon based) ###
# NESC, SNESC, C64 mini # NESC, SNESC, C64 mini
else ifeq ($(platform), classic_armv7_a7) else ifeq ($(platform),$(filter $(platform),classic_armv7_a7 unix-armv7-hardfloat-neon))
TARGET := $(TARGET_NAME)_libretro.so TARGET := $(TARGET_NAME)_libretro.so
fpic := -fPIC fpic := -fPIC
SHARED := -shared -Wl,--version-script=$(CORE_DIR)/libretro/link.T -Wl,--no-undefined SHARED := -shared -Wl,--version-script=$(CORE_DIR)/libretro/link.T -Wl,--no-undefined
@@ -149,8 +138,8 @@ else ifeq ($(platform), libnx)
# Nintendo WiiU # Nintendo WiiU
else ifeq ($(platform), wiiu) else ifeq ($(platform), wiiu)
TARGET := $(TARGET_NAME)_libretro_$(platform).a TARGET := $(TARGET_NAME)_libretro_$(platform).a
CC ?= $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT) CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
AR ?= $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT) AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
CFLAGS += -DGEKKO -DHW_RVL -DWIIU -mwup -mcpu=750 -meabi -mhard-float -D__ppc__ -DMSB_FIRST -I$(DEVKITPRO)/libogc/include CFLAGS += -DGEKKO -DHW_RVL -DWIIU -mwup -mcpu=750 -meabi -mhard-float -D__ppc__ -DMSB_FIRST -I$(DEVKITPRO)/libogc/include
CFLAGS += -U__INT32_TYPE__ -U __UINT32_TYPE__ -D__INT32_TYPE__=int CFLAGS += -U__INT32_TYPE__ -U __UINT32_TYPE__ -D__INT32_TYPE__=int
STATIC_LINKING = 1 STATIC_LINKING = 1
@@ -158,10 +147,40 @@ else ifneq (,$(findstring osx,$(platform)))
TARGET := $(TARGET_NAME)_libretro.dylib TARGET := $(TARGET_NAME)_libretro.dylib
fpic := -fPIC fpic := -fPIC
SHARED := -dynamiclib SHARED := -dynamiclib
MACSOSVER = `sw_vers -productVersion | cut -d. -f 1`
OSXVER = `sw_vers -productVersion | cut -d. -f 2`
OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"`
MINVERSION :=
ifeq ($(UNIVERSAL),1)
ifeq ($(archs),ppc)
ARCHFLAGS = -arch ppc -arch ppc64
else ifeq ($(archs),arm64)
ARCHFLAGS = -arch x86_64 -arch arm64
else
ARCHFLAGS = -arch i386 -arch x86_64
endif
CFLAGS += $(ARCHFLAGS)
LFLAGS += $(ARCHFLAGS)
endif
ifeq ($(CROSS_COMPILE),1)
TARGET_RULE = -target $(LIBRETRO_APPLE_PLATFORM) -isysroot $(LIBRETRO_APPLE_ISYSROOT)
CFLAGS += $(TARGET_RULE)
CPPFLAGS += $(TARGET_RULE)
CXXFLAGS += $(TARGET_RULE)
LDFLAGS += $(TARGET_RULE)
endif
CFLAGS += $(ARCHFLAGS)
CXXFLAGS += $(ARCHFLAGS)
LDFLAGS += $(ARCHFLAGS)
else ifneq (,$(findstring ios,$(platform))) else ifneq (,$(findstring ios,$(platform)))
TARGET := $(TARGET_NAME)_libretro_ios.dylib TARGET := $(TARGET_NAME)_libretro_ios.dylib
fpic := -fPIC fpic := -fPIC
SHARED := -dynamiclib SHARED := -dynamiclib
MINVERSION :=
ifeq ($(IOSSDK),) ifeq ($(IOSSDK),)
IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path) IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path)
@@ -169,17 +188,28 @@ endif
DEFINES := -DIOS DEFINES := -DIOS
ifeq ($(platform),ios-arm64) ifeq ($(platform),ios-arm64)
CC = cc -arch armv64 -isysroot $(IOSSDK) CC = cc -arch armv64 -isysroot $(IOSSDK)
else else
CC = cc -arch armv7 -isysroot $(IOSSDK) CC = cc -arch armv7 -isysroot $(IOSSDK)
endif endif
ifeq ($(platform),$(filter $(platform),ios9 ios-arm64)) ifeq ($(platform),$(filter $(platform),ios9 ios-arm64))
CC += -miphoneos-version-min=8.0 MINVERSION = -miphoneos-version-min=8.0
CFLAGS += -miphoneos-version-min=8.0
else else
CC += -miphoneos-version-min=5.0 MINVERSION = -miphoneos-version-min=5.0
CFLAGS += -miphoneos-version-min=5.0
endif endif
CFLAGS += $(MINVERSION)
else ifeq ($(platform), tvos-arm64)
EXT?=dylib
TARGET := $(TARGET_NAME)_libretro_tvos.$(EXT)
fpic := -fPIC
SHARED := -dynamiclib
DEFINES := -DIOS
ifeq ($(IOSSDK),)
IOSSDK := $(shell xcodebuild -version -sdk appletvos Path)
endif
CC = cc -arch arm64 -isysroot $(IOSSDK)
else ifneq (,$(findstring qnx,$(platform))) else ifneq (,$(findstring qnx,$(platform)))
TARGET := $(TARGET_NAME)_libretro_qnx.so TARGET := $(TARGET_NAME)_libretro_qnx.so
fpic := -fPIC fpic := -fPIC