From fdd675a87b438aa986904ef804e0eb240aa9276a Mon Sep 17 00:00:00 2001 From: nia Date: Tue, 25 Dec 2018 15:34:07 +0000 Subject: [PATCH] Add libretro-mame2010. --- Makefile | 1 + libretro-mame2010/DESCR | 8 +++ libretro-mame2010/Makefile | 67 +++++++++++++++++++ libretro-mame2010/PLIST | 2 + libretro-mame2010/distinfo | 8 +++ libretro-mame2010/patches/patch-Makefile | 55 +++++++++++++++ .../patches/patch-src_emu_emucore.h | 22 ++++++ 7 files changed, 163 insertions(+) create mode 100644 libretro-mame2010/DESCR create mode 100644 libretro-mame2010/Makefile create mode 100644 libretro-mame2010/PLIST create mode 100644 libretro-mame2010/distinfo create mode 100644 libretro-mame2010/patches/patch-Makefile create mode 100644 libretro-mame2010/patches/patch-src_emu_emucore.h diff --git a/Makefile b/Makefile index e3a0f88dff..966d8ea176 100644 --- a/Makefile +++ b/Makefile @@ -1897,6 +1897,7 @@ SUBDIR+= libretro-fmsx SUBDIR+= libretro-gearboy SUBDIR+= libretro-gearsystem SUBDIR+= libretro-mame2003 +SUBDIR+= libretro-mame2010 SUBDIR+= libretro-mame2014 SUBDIR+= libretro-melonds SUBDIR+= libretro-parallel-n64 diff --git a/libretro-mame2010/DESCR b/libretro-mame2010/DESCR new file mode 100644 index 0000000000..185fbf0f18 --- /dev/null +++ b/libretro-mame2010/DESCR @@ -0,0 +1,8 @@ +Libretro is a simple but powerful development interface that allows for +the easy creation of emulators, games and multimedia applications that +can plug straight into any libretro-compatible frontend. This development +interface is open to others so that they can run these pluggable emulator +and game cores also in their own programs or devices. + +MAME is the Multiple Arcade Machine Emulator. This is based on MAME +0.139 with backported improvements. diff --git a/libretro-mame2010/Makefile b/libretro-mame2010/Makefile new file mode 100644 index 0000000000..cf4b1eb53e --- /dev/null +++ b/libretro-mame2010/Makefile @@ -0,0 +1,67 @@ +# $NetBSD$ + +DISTNAME= libretro-mame2010-20180417 +CATEGORIES= emulators +MASTER_SITES= ${MASTER_SITE_GITHUB:=libretro/} +GITHUB_PROJECT= mame2010-libretro +GITHUB_TAG= 70732f9137f6bb2bde4014746ea8bc613173dd1e + +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= https://docs.libretro.com/library/mame_2010/ +COMMENT= Libretro core based on the MAME 0.139 arcade game emulator +LICENSE= mame-license + +EXTRACT_USING= bsdtar +USE_TOOLS+= gmake +USE_LANGUAGES= c c++ + +MAKE_FLAGS+= platform=unix +MAKE_FLAGS+= GIT_VERSION="-pkgsrc" +MAKE_FLAGS+= BUILD_ZLIB=0 + +.include "../../mk/endian.mk" + +.if ${MACHINE_ENDIAN} == "big" +CFLAGS+= -DMSB_FIRST +.endif + +.include "../../mk/bsd.prefs.mk" + +.if !empty(OPSYS:M*BSD) || ${OPSYS} == "DragonFly" || ${OPSYS} == "Bitrig" +CFLAGS+= -DSDLMAME_BSD +.endif + +.if ${OPSYS} != "Linux" +CFLAGS+= -DNO_AFFINITY_NP +.endif + +.if ${MACHINE_ARCH} != "x86_64" && ${MACHINE_ARCH} != "i386" +MAKE_FLAGS+= FORCE_DRC_C_BACKEND=1 +.endif + +.if !empty(USE_CROSS_COMPILE:M[yY][eE][sS]) +MAKE_FLAGS+= NATIVECC=${NATIVE_CXX:Q} +MAKE_FLAGS+= NATIVELD=${NATIVE_CXX:Q} +.else +MAKE_FLAGS+= NATIVECC=${CXX:Q} +MAKE_FLAGS+= NATIVELD=${CXX:Q} +.endif + +.for platform in ${LP64PLATFORMS} +. if ${MACHINE_PLATFORM:M${platform}} +MAKE_FLAGS+= PTR64=1 +. endif +.endfor + +MAKE_FLAGS+= CC=${CXX:Q} +MAKE_FLAGS+= LD=${CXX:Q} + +INSTALLATION_DIRS+= ${PREFIX}/lib/libretro + +do-install: + ${INSTALL_LIB} ${WRKSRC}/mame2010_libretro.so \ + ${DESTDIR}${PREFIX}/lib/libretro/mame2010_libretro.so + +.include "../../devel/zlib/buildlink3.mk" +.include "../../mk/pthread.buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/libretro-mame2010/PLIST b/libretro-mame2010/PLIST new file mode 100644 index 0000000000..b1db738025 --- /dev/null +++ b/libretro-mame2010/PLIST @@ -0,0 +1,2 @@ +@comment $NetBSD$ +lib/libretro/mame2010_libretro.so diff --git a/libretro-mame2010/distinfo b/libretro-mame2010/distinfo new file mode 100644 index 0000000000..dfe1df6df9 --- /dev/null +++ b/libretro-mame2010/distinfo @@ -0,0 +1,8 @@ +$NetBSD$ + +SHA1 (libretro-mame2010-20180417-70732f9137f6bb2bde4014746ea8bc613173dd1e.tar.gz) = c755106da94893012afb9d31bf488e0bd71f983d +RMD160 (libretro-mame2010-20180417-70732f9137f6bb2bde4014746ea8bc613173dd1e.tar.gz) = a39a85b9d96ca17edb25b941963f8217069bc22e +SHA512 (libretro-mame2010-20180417-70732f9137f6bb2bde4014746ea8bc613173dd1e.tar.gz) = 6b8bc3111eebe19387f6927ee24ba4edef6505c7540c87b872d2930c4b786010ebc63f97b14be427c00182838cffb5e8d707ab38d295ac1144eb4787ada4cfd0 +Size (libretro-mame2010-20180417-70732f9137f6bb2bde4014746ea8bc613173dd1e.tar.gz) = 23952671 bytes +SHA1 (patch-Makefile) = 5831dcc18098b9f654736822b7783fcca2433f3e +SHA1 (patch-src_emu_emucore.h) = ecb9617e260559aeb685e9625195f2ad6c99244d diff --git a/libretro-mame2010/patches/patch-Makefile b/libretro-mame2010/patches/patch-Makefile new file mode 100644 index 0000000000..75e7a485aa --- /dev/null +++ b/libretro-mame2010/patches/patch-Makefile @@ -0,0 +1,55 @@ +$NetBSD$ + +Avoid overriding build settings. + +--- Makefile.orig 2018-04-17 17:16:44.000000000 +0000 ++++ Makefile +@@ -55,14 +55,9 @@ LIBS = + #------------------------------------------------- + + # start with empties for everything +-CCOMFLAGS = -DDISABLE_MIDI +-CONLYFLAGS = +-COBJFLAGS = +-CPPONLYFLAGS = ++CCOMFLAGS += -DDISABLE_MIDI + # LDFLAGS are used generally; LDFLAGSEMULATOR are additional + # flags only used when linking the core emulator +-LDFLAGS = +-LDFLAGSEMULATOR = + + GIT_VERSION ?= " $(shell git rev-parse --short HEAD || echo unknown)" + ifneq ($(GIT_VERSION)," unknown") +@@ -143,15 +138,6 @@ ifeq ($(VRENDER),opengl) + LIBS += -lGL + endif + LDFLAGS += $(SHARED) +- NATIVELD = g++ +- NATIVELDFLAGS = -Wl,--warn-common -lstdc++ +- NATIVECC = g++ +- NATIVECFLAGS = -std=gnu99 +- CC_AS = gcc +- CC = g++ +- AR = @ar +- LD = g++ +- CCOMFLAGS += $(PLATCFLAGS) -ffast-math + LIBS += -lstdc++ -lpthread + + # Android +@@ -568,7 +554,7 @@ DEFS += -DFLAC__NO_DLL + + # CFLAGS is defined based on C or C++ targets + # (remember, expansion only happens when used, so doing it here is ok) +-CFLAGS = $(CCOMFLAGS) $(CPPONLYFLAGS) ++CFLAGS += $(CCOMFLAGS) $(CPPONLYFLAGS) + + # we compile C-only to C89 standard with GNU extensions + # we compile C++ code to C++98 standard with GNU extensions +@@ -588,7 +574,6 @@ ifeq ($(MDEBUG),1) + CCOMFLAGS += -O0 -g + else + # add the optimization flag +-CCOMFLAGS += -O$(OPTIMIZE) + endif + + # add the error warning flag diff --git a/libretro-mame2010/patches/patch-src_emu_emucore.h b/libretro-mame2010/patches/patch-src_emu_emucore.h new file mode 100644 index 0000000000..e704b31463 --- /dev/null +++ b/libretro-mame2010/patches/patch-src_emu_emucore.h @@ -0,0 +1,22 @@ +$NetBSD$ + +Avoid colliding with libc symbols on NetBSD. + +--- src/emu/emucore.h.orig 2018-04-17 17:16:44.000000000 +0000 ++++ src/emu/emucore.h +@@ -502,6 +502,7 @@ inline void fatalerror_exitcode(running_ + //************************************************************************** + + // population count ++#ifndef __NetBSD__ + inline int popcount(UINT32 val) + { + int count; +@@ -510,6 +511,7 @@ inline int popcount(UINT32 val) + val &= val - 1; + return count; + } ++#endif + + + // convert a series of 32 bits into a float