diff options
Diffstat (limited to 'emulators/mame/Makefile')
-rw-r--r-- | emulators/mame/Makefile | 233 |
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> |