git: 5f4caf1945f7 - main - emulators/libretro-mame: New port: MAME-current for libretro

From: Neel Chauhan <nc_at_FreeBSD.org>
Date: Thu, 19 May 2022 17:49:24 UTC
The branch main has been updated by nc:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5f4caf1945f77bcffb540d69cd309d539a760c41

commit 5f4caf1945f77bcffb540d69cd309d539a760c41
Author:     Timothy Beyer <beyert_freebsd@fastmail.net>
AuthorDate: 2022-05-17 03:53:46 +0000
Commit:     Neel Chauhan <nc@FreeBSD.org>
CommitDate: 2022-05-19 17:49:21 +0000

    emulators/libretro-mame: New port: MAME-current for libretro
    
    PR:     257172
---
 emulators/Makefile                           |  1 +
 emulators/libretro-mame/Makefile             | 73 ++++++++++++++++++++++++++++
 emulators/libretro-mame/distinfo             |  3 ++
 emulators/libretro-mame/files/patch-makefile | 20 ++++++++
 emulators/libretro-mame/pkg-descr            |  3 ++
 5 files changed, 100 insertions(+)

diff --git a/emulators/Makefile b/emulators/Makefile
index 7f52809d2c5b..b44c4738624a 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -57,6 +57,7 @@
     SUBDIR += lib765
     SUBDIR += libc6-shim
     SUBDIR += libdsk
+    SUBDIR += libretro-mame
     SUBDIR += libretro-ppsspp
     SUBDIR += libretro-reicast
     SUBDIR += libretro-vice
diff --git a/emulators/libretro-mame/Makefile b/emulators/libretro-mame/Makefile
new file mode 100644
index 000000000000..5a94d1157be8
--- /dev/null
+++ b/emulators/libretro-mame/Makefile
@@ -0,0 +1,73 @@
+# Created by: Timothy Beyer <beyert@cs.ucr.edu>
+
+PORTNAME=	libretro-mame
+PORTVERSION=	20220124
+CATEGORIES=	emulators games
+
+MAINTAINER=	beyert@cs.ucr.edu
+COMMENT=	MAME-current for libretro
+
+LICENSE=	BSD2CLAUSE GPLv2
+LICENSE_COMB=	multi
+
+USES=		compiler:c++11-lib gl gmake pkgconfig python:3.7,build
+USE_LDCONFIG=	yes
+
+USE_GL=		gl
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	libretro
+GH_PROJECT=	mame
+GH_TAGNAME=	ec47e94
+
+MAKEFILE=	${WRKSRC}/Makefile.libretro
+
+MAKE_ENV=	CXX="${CXX}" \
+		LD="${CXX}" \
+		OPT_FLAGS="${CXXFLAGS}" \
+		PYTHON="${PYTHON_CMD}" \
+		PYTHON_EXECUTABLE="${PYTHON_CMD}"
+
+GENIE=		${WRKSRC}/3rdparty/genie
+
+MAKE_JOBS_UNSAFE=	yes
+
+PLIST_FILES=	lib/libretro/mame_libretro.so
+
+post-patch:
+	@${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/dirent.h
+	@${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/signal.h
+	@${ECHO_CMD} ${MV} ${GENIE}/build/gmake.freebsd ${GENIE}/build/gmake.bsd
+	@${REINPLACE_CMD} -e \
+		's|^\(CC \)|#\1| ; \
+		s|^\(CXX \)|#\1| ; \
+		s|^\(CXX:\)|#\1| ; \
+		s|^\(LD \)|#\1| ; \
+		s|^\(PYTHON \)|#\1| ; \
+		s| .(ARCH)|| ; \
+		s|FreeBSD|${OPSYS}|g' \
+		${WRKSRC}/makefile \
+		${GENIE}/build/gmake.freebsd/genie.make
+	@${REINPLACE_CMD} -e 's|gcc|${CC}|; s|g++|${CXX}|' \
+		${GENIE}/src/tools/gcc.lua \
+		${GENIE}/src/tools/snc.lua \
+		${GENIE}/tests/test_gmake_cpp.lua
+	@${REINPLACE_CMD} -e 's|= \"gcc|= \"${CC}|; s|= \"${CXX}|= \"c++|' \
+		-e "s|'CXX =|'#CXX =|; s|'CC  =|'#CC  =|; s| .(ARCH)| |g" \
+		${GENIE}/src/host/scripts.c
+# we can't fix two types of python shebangs, so do these manually
+	@${REINPLACE_CMD} -i "" -e "s|/usr/bin/env python|${PYTHON_CMD}|" \
+		${WRKSRC}/scripts/build/png*.py
+	@${REINPLACE_CMD} -e 's|"python"|"${PYTHON_CMD}"|' \
+		${WRKSRC}/scripts/genie.lua
+	@${GREP} -rl '"png.h"' ${WRKSRC}/src | ${XARGS} ${REINPLACE_CMD} \
+		-e 's|"png.h"|"localpng.h"|'
+	@${REINPLACE_CMD} -e 's|"util/png.h"|"util/localpng.h"|' \
+		${WRKSRC}/src/frontend/mame/ui/icorender.cpp
+	@${MV} ${WRKSRC}/src/lib/util/png.h ${WRKSRC}/src/lib/util/localpng.h
+
+do-install:
+	${MKDIR} ${STAGEDIR}/${PREFIX}/lib/libretro;
+	${INSTALL_LIB} ${WRKSRC}/mame_libretro.so ${STAGEDIR}/${PREFIX}/lib/libretro;
+
+.include <bsd.port.mk>
diff --git a/emulators/libretro-mame/distinfo b/emulators/libretro-mame/distinfo
new file mode 100644
index 000000000000..c936ab53eea9
--- /dev/null
+++ b/emulators/libretro-mame/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1644819807
+SHA256 (libretro-mame-20220124-ec47e94_GH0.tar.gz) = 36593def33266b9a6171338941743b6ef01865bc3b8f38e7ad0c6b84d971ed1b
+SIZE (libretro-mame-20220124-ec47e94_GH0.tar.gz) = 183780588
diff --git a/emulators/libretro-mame/files/patch-makefile b/emulators/libretro-mame/files/patch-makefile
new file mode 100644
index 000000000000..706100ba0799
--- /dev/null
+++ b/emulators/libretro-mame/files/patch-makefile
@@ -0,0 +1,20 @@
+--- makefile.orig	2021-04-12 15:53:19 UTC
++++ makefile
+@@ -199,7 +199,7 @@ GENIEOS := solaris
+ endif
+ ifeq ($(firstword $(filter FreeBSD,$(UNAME))),FreeBSD)
+ OS := freebsd
+-GENIEOS := bsd
++GENIEOS := freebsd
+ endif
+ ifeq ($(firstword $(filter GNU/kFreeBSD,$(UNAME))),GNU/kFreeBSD)
+ OS := freebsd
+@@ -1083,7 +1083,7 @@ ifeq ($(NEW_GIT_VERSION),)
+ NEW_GIT_VERSION := unknown
+ endif
+ 
+-GENIE := 3rdparty/genie/bin/$(GENIEOS)/genie$(EXE)
++GENIE := 3rdparty/genie/bin/bsd/genie$(EXE)
+ 
+ ifeq ($(TARGET),$(SUBTARGET_FULL))
+ FULLTARGET := $(TARGET)
diff --git a/emulators/libretro-mame/pkg-descr b/emulators/libretro-mame/pkg-descr
new file mode 100644
index 000000000000..7972e0144d37
--- /dev/null
+++ b/emulators/libretro-mame/pkg-descr
@@ -0,0 +1,3 @@
+MAME -current for libretro
+
+WWW: https://github.com/libretro/mame