aboutsummaryrefslogtreecommitdiff
path: root/emulators/mame/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/mame/Makefile')
-rw-r--r--emulators/mame/Makefile233
1 files changed, 123 insertions, 110 deletions
diff --git a/emulators/mame/Makefile b/emulators/mame/Makefile
index 26b2e16f7030..d026e3a5e0b5 100644
--- a/emulators/mame/Makefile
+++ b/emulators/mame/Makefile
@@ -1,6 +1,6 @@
PORTNAME= mame
-PORTVERSION= 0.254
-PORTREVISION= 1
+DISTVERSION= 0.254
+PORTREVISION= 2
CATEGORIES= emulators games
MAINTAINER= agh@riseup.net
@@ -21,161 +21,174 @@ LICENSE_FILE= ${WRKSRC}/docs/LICENSE
ONLY_FOR_ARCHS= aarch64 amd64 armv7 i386 powerpc powerpc64 powerpc64le
ONLY_FOR_ARCHS_REASON= not yet ported to any architecture other than armv7, arm64, x86, and powerpc*
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinxcontrib-svg2pdfconverter>0:textproc/py-sphinxcontrib-svg2pdfconverter@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinxcontrib-svg2pdfconverter>0:textproc/py-sphinxcontrib-svg2pdfconverter@${PY_FLAVOR} \
+ glm>0:math/glm \
+ rapidjson>0:devel/rapidjson
LIB_DEPENDS= libexpat.so:textproc/expat2 \
libFLAC.so:audio/flac \
libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2 \
- libpugixml.so:textproc/pugixml
+ libportmidi.so:audio/portmidi \
+ libpugixml.so:textproc/pugixml \
+ libutf8proc.so:textproc/utf8proc \
+ libuv.so:devel/libuv
RUN_DEPENDS= liberation-fonts-ttf>=0:x11-fonts/liberation-fonts-ttf
-USES= compiler:c++14-lang gl gmake jpeg localbase lua:54 pkgconfig \
- python:3.9,build qt:5 sdl shebangfix sqlite:3 xorg
+USES= compiler:c++17-lang gl gmake jpeg localbase lua:54 pkgconfig \
+ python:3.9,build sdl shebangfix sqlite:3 xorg
USE_GITHUB= yes
GH_ACCOUNT= mamedev
-GH_PROJECT= mame # explicit (master port)
-GH_TAGNAME= mame${PORTVERSION:S/.//}
+GH_TAGNAME= mame${DISTVERSION:S/.//}
USE_GL= gl
-USE_QT= buildtools core gui qmake widgets
USE_SDL= sdl2 ttf2
USE_XORG= x11 xext xi xinerama xrender
MAKEFILE= makefile
MAKE_ARGS= TARGETOS=freebsd \
- TOOLS=1 \
- USE_SYSTEM_LIB_PUGIXML=1 \
- USE_SYSTEM_LIB_SQLITE3=1 \
- VERBOSE=1
-MAKE_ENV= FULLNAME="mame" \
- GCC_LDFLAGS="${LDFLAGS}" \
- LD="${CXX}" \
+ VERBOSE="1"
+MAKE_ENV= LDOPTS="${LDFLAGS}" \
+ NO_USE_PORTAUDIO=1 \
+ NO_USE_PULSEAUDIO=1 \
NOWERROR=1 \
OPT_FLAGS="${CXXFLAGS}" \
- PYTHON="${PYTHON_CMD}" \
- SDL_NETWORK="pcap" \
- SUBTARGET="${MSUBTARGET}" \
- TARGET="${MTARGET}" \
- USE_NETWORK=1
-
-BINARY_ALIAS= python3=${PYTHON_CMD} python=${PYTHON_CMD}
-SUB_FILES= pkg-message target.ini
-SUB_LIST= MSUBTARGET=${MSUBTARGET} \
- MTARGET=${MTARGET}
-
-PORTDOCS= LICENSE html/* legal/*
-PORTEXAMPLES= ${MSUBTARGET}.ini
-
-OPTIONS_DEFINE= DEBUG DOCS EXAMPLES
-DEBUG_DESC= Build with debug profiling and symbols
-DOCS_DESC= Install additional MAME documentation
-EXAMPLES_DESC= Install example ${EMULATOR}.ini configuration
-
-DEBUG_MAKE_ENV= DEBUG=1
-
-GENIE= ${WRKSRC}/3rdparty/genie
-MSUBTARGET= mame
-MTARGET= mame
+ PRECOMPILE=0 \
+ PYTHON_EXECUTABLE="${PYTHON_CMD}" \
+ USE_PCAP=1 \
+ USE_SYSTEM_LIB_EXPAT=1 \
+ USE_SYSTEM_LIB_FLAC=1 \
+ USE_SYSTEM_LIB_GLM=1 \
+ USE_SYSTEM_LIB_JPEG=1 \
+ USE_SYSTEM_LIB_PORTMIDI=1 \
+ USE_SYSTEM_LIB_PUGIXML=1 \
+ USE_SYSTEM_LIB_RAPIDJSON=1 \
+ USE_SYSTEM_LIB_SQLITE3=1 \
+ USE_SYSTEM_LIB_UTF8PROC=1 \
+ USE_SYSTEM_LIB_UV=1 \
+ USE_SYSTEM_LIB_ZLIB=1 \
+ USE_TAPTUN=1
+
+SUB_FILES= pkg-message mame.ini plugin.ini ui.ini
+
+PORTDOCS= html/*
+
+OPTIONS_DEFINE= DEBUG DOCS QTDEBUGGER TOOLS
+OPTIONS_SUB= yes
+
+DEBUG_DESC= Build with debug profiling and symbols
+DOCS_DESC= Install extensive online MAME documentation
+QTDEBUGGER_DESC= Install Qt interactive low-level machine debugger
+TOOLS_DESC= Install tools for machine archiving and development
+
+DEBUG_MAKE_ENV= DEBUG=1 \
+ OPTIMIZE=0 \
+ PROFILER=1 \
+ SYMBOLS=1
+DEBUG_MAKE_ENV_OFF= OPTIMIZE=2 \
+ STRIP_SYMBOLS=1
+# Attempt to avoid address space exhaustion during linking, specifically
+# on armv7, and possibly other architectures:
+DEBUG_LDFLAGS_OFF= -s
+QTDEBUGGER_USES= qt:5
+QTDEBUGGER_USE= QT=core,gui,widgets,buildtools:build,qmake:build
+QTDEBUGGER_MAKE_ENV= USE_QTDEBUG=1
+QTDEBUGGER_MAKE_ENV_OFF= USE_QTDEBUG=0
+TOOLS_MAKE_ENV= TOOLS=1
+TOOLS_MAKE_ENV_OFF= TOOLS=0
+
+_GENIE= ${WRKSRC}/3rdparty/genie
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MDEBUG}
-WITH_DEBUG= "YES"
-MAKE_ENV+= DEBUG="1" \
- OPTIMIZE="0" \
- PROFILER="1" \
- SYMBOLS="1"
+WITH_DEBUG= yes
+.endif
+
+.if ${OPSYS} == FreeBSD && ${OSVERSION} > 1400000
+USES+= llvm:15,build
+MAKE_ENV+= OVERRIDE_AR="llvm-ar${LLVM_VERSION}" \
+ OVERRIDE_CC="clang${LLVM_VERSION}" \
+ OVERRIDE_CXX="clang++${LLVM_VERSION}" \
+ OVERRIDE_LD="lld${LLVM_VERSION}"
.else
-# avoid address space exhaustion in linker on armv7
-LDFLAGS+= -s
+MAKE_ENV+= OVERRIDE_AR="${AR}" \
+ OVERRIDE_CC="${CC}" \
+ OVERRIDE_CXX="${CXX}" \
+ OVERRIDE_LD="${LD}"
.endif
-.if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH:Mpowerpc64*}
+.if ${ARCH:Maarch64} || ${ARCH:Mamd64} || ${ARCH:Mpowerpc64*}
MAKE_ARGS+= PTR64=1
.endif
-EMULATOR= ${MSUBTARGET}
-PLIST_SUB+= EMULATOR=${EMULATOR}
+post-extract:
+ @${MV} ${WRKSRC}/src/lib/util/png.h \
+ ${WRKSRC}/src/lib/util/localpng.h
+
+post-patch:
+# Prefer some system headers over bundled.
+ @${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/dirent.h
+ @${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/signal.h
+# Accommodate GENie conception of BSD.
+ @${MV} ${_GENIE}/build/gmake.freebsd \
+ ${_GENIE}/build/gmake.bsd
+# Patch build to use bundled PNG.
+ @${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
do-build-DOCS-on:
- (cd ${WRKSRC}/docs && ${SETENV} ${MAKE_ENV} \
- ${MAKE_CMD} ${MAKE_ARGS} html \
- SPHINXBUILD=sphinx-build-${PYTHON_VER})
+ (cd ${WRKSRC}/docs && \
+ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} html SPHINXBUILD=sphinx-build-${PYTHON_VER})
@${RM} ${WRKSRC}/docs/build/html/.buildinfo
-do-install:
-.for PROGRAM in castool chdman floptool imgtool jedutil ldresample ldverify \
- nltool nlwav pngcmp regrep romcmp split srcclean testkeys unidasm
- ${INSTALL_PROGRAM} ${WRKSRC}/${PROGRAM} \
- ${STAGEDIR}${PREFIX}/bin
-.endfor
+post-build:
+ (cd ${WRKSRC}/docs && \
+ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} man SPHINXBUILD=sphinx-build-${PYTHON_VER})
-.for data in artwork bgfx ctrlr ini hash language plugins samples
+do-install:
+.for DATA in artwork bgfx ctrlr ini hash language plugins samples
(cd ${WRKSRC} && \
- ${COPYTREE_SHARE} ${data} ${STAGEDIR}${DATADIR})
+ ${COPYTREE_SHARE} ${DATA} ${STAGEDIR}${DATADIR})
.endfor
${MKDIR} ${STAGEDIR}${DOCSDIR}
- ${INSTALL_MAN} ${WRKSRC}/docs/man/*.1 \
+ ${INSTALL_MAN} ${WRKSRC}/docs/build/man/MAME.1 \
${STAGEDIR}${MANPREFIX}/man/man1
- ${INSTALL_MAN} ${WRKSRC}/docs/build/man/*.1 \
- ${STAGEDIR}${MANPREFIX}/man/man1
- ${INSTALL_MAN} ${WRKSRC}/docs/man/${EMULATOR}.6 \
+ ${INSTALL_MAN} ${WRKSRC}/docs/man/mame.6 \
${STAGEDIR}${MANPREFIX}/man/man6
- ${INSTALL_MAN} ${WRKSRC}/docs/LICENSE \
- ${STAGEDIR}${DOCSDIR}
- (cd ${WRKSRC}/docs && \
- ${COPYTREE_SHARE} legal ${STAGEDIR}${DOCSDIR})
-do-install-DEBUG-off:
- ${INSTALL_PROGRAM} ${WRKSRC}/${MSUBTARGET} \
- ${STAGEDIR}${PREFIX}/bin/${EMULATOR}
+ ${MKDIR} ${STAGEDIR}${ETCDIR}
+.for INI in mame plugin ui
+ ${INSTALL_DATA} ${WRKDIR}/${INI}.ini \
+ ${STAGEDIR}${ETCDIR}/${INI}.ini.sample
+.endfor
do-install-DEBUG-on:
- ${INSTALL_PROGRAM} ${WRKSRC}/${MSUBTARGET}d \
- ${STAGEDIR}${PREFIX}/bin/${EMULATOR}
+ ${INSTALL_PROGRAM} ${WRKSRC}/mamed \
+ ${STAGEDIR}${PREFIX}/bin/mame
-post-build:
- cd ${WRKSRC}/docs && ${SETENV} ${MAKE_ENV} \
- ${MAKE_CMD} ${MAKE_ARGS} man \
- SPHINXBUILD=sphinx-build-${PYTHON_VER}
+do-install-DEBUG-off:
+ ${INSTALL_PROGRAM} ${WRKSRC}/mame \
+ ${STAGEDIR}${PREFIX}/bin/
-post-install-DOCS-on:
+do-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}
(cd ${WRKSRC}/docs/build && \
${COPYTREE_SHARE} html ${STAGEDIR}${DOCSDIR})
-post-install-EXAMPLES-on:
- ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
- ${INSTALL_DATA} ${WRKDIR}/target.ini \
- ${STAGEDIR}${EXAMPLESDIR}/${EMULATOR}.ini
+do-install-TOOLS-on:
+.for PROGRAM in castool chdman floptool imgtool jedutil ldresample ldverify \
+ nltool nlwav pngcmp regrep romcmp split srcclean testkeys unidasm
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PROGRAM} \
+ ${STAGEDIR}${PREFIX}/bin
+.endfor
-post-patch:
- @${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/dirent.h
- @${RM} ${WRKSRC}/3rdparty/bx/include/compat/freebsd/signal.h
- @${MV} ${GENIE}/build/gmake.freebsd \
- ${GENIE}/build/gmake.bsd
- @${REINPLACE_CMD} -e \
- 's|^\(AR \)|#\1| ; \
- s|^\(CC \)|#\1| ; \
- s|^\(CXX \)|#\1| ; \
- s|^\(CXX:\)|#\1| ; \
- s|^\(LD \)|#\1| ; \
- s| .(ARCH)||g' \
- ${WRKSRC}/makefile \
- ${GENIE}/build/gmake.bsd/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|= \"g++|= \"${CXX}|' \
- -e "s|'CXX =|'#CXX =|; s|'CC =|'#CC =|; s| .(ARCH)| |g" \
- ${GENIE}/src/host/scripts.c
- @${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
+.for MANUAL in castool chdman floptool imgtool jedutil ldplayer ldresample \
+ ldverify romcmp
+ ${INSTALL_MAN} ${WRKSRC}/docs/man/${MANUAL}.1 \
+ ${STAGEDIR}${MANPREFIX}/man/man1
+.endfor
.include <bsd.port.mk>