diff --git a/games-emulation/sdlmame/Manifest b/games-emulation/sdlmame/Manifest index 026e916..65b6be6 100644 --- a/games-emulation/sdlmame/Manifest +++ b/games-emulation/sdlmame/Manifest @@ -3,6 +3,8 @@ AUX sdlmame-0.174-qt.patch 829 BLAKE2B be945301fb35135f12bcd63eafaa72cc3b4d52f73 AUX vector.ini 116 BLAKE2B 7dbc58708e0c371c6d8116891a37048d5477b1b92b61c26441f15fff81f8dd01bf8f49cc1bddd256c56ecba592a8dac5fb1674fab5f0adb488410dc6e1d13025 SHA512 6d84eb7b9c4e9f134b57e64ba9ae30dcaaa620296830f7c9858611fde9064f803bd7d230a989a5cce34d8b815b5a98d323b19d3eef3d4c688b5c32b96b299f5f DIST mame-0.174.zip 95944685 BLAKE2B e97027edf7be293e599499bd428c663c1fc13498e2fe10ee356aa56ef8ba85d6ea003ba65a8cbc41d1159246eed354585fc18bf9507b47dc1774b87f5737b48d SHA512 9db4d98fb5f5373529808f3bc41fddefa65ebbf7c26d946ebf886cab25e5abf7c4d539d96dfd6af5e62f4366b2bb0b0b59d40fe7a722698f3707eb8ea4c12a0b DIST mame-0.197.zip 118072715 BLAKE2B 28384d9f2b8df380eb8d910391b07322f4f6746746dc58c0703d9b7a6783b745dc3f1389ef1d5b281d438af783901c39f768af682297fe2399dce6d5d6d8dbb6 SHA512 4149a5f3180e32218285dcb5feee1e4bbf01aa9d8f440a0c079febbf2e2978f2c7bff00bda2293ae0f171289c4ee407c71cf3cf5d2bd386736bc4f5f31e28b0c +DIST mame-0.214.zip 139427495 BLAKE2B 1ae9d117c78fcfcfbe49ce671b6196885d6a618f1c81ced1b861a75a3fa961cb288458179524cbeb07e9a83242e14dd3a983ab6c281d330f3445a2442a86713a SHA512 b29aabc37e445219ce4ed3f908261bf2f944a533bb966b162e827fb48472445ab5ee0d35a7b3dfa028109c7fe5ad383b23c7fcaa4b2a3a4b5be4ac112537c05c EBUILD sdlmame-0.174.ebuild 6334 BLAKE2B 4f9d9dca92e57a723bc1744d2977ee4562fd7b2c16aac9a9ebfa1b257c82537d1cd53d3e3fad4485f4294241f8a92cfb3b1038095d698baecc665c7f6d11da0d SHA512 e9b8a1e8e96f89470e456581e0d7a2cd4d51928ea6a333f1883e8cdf380d84d747a8b4f247d31339337f3f0fbf492e3b140517735b34f96c85d2066d0dfe727c EBUILD sdlmame-0.197.ebuild 6118 BLAKE2B 48368e85dd828f8616476d16bc00f4730e54ee9d562e63a6b626abe92d81a1451c7c12a96c39963bcffce31baf7836fdf92846c0a3873611369d114f26d54f9b SHA512 d04197435283c9bd011e5b41a0e5c8e382c0a50125e061178af0f56a1cedac94105dc3ebed110a365dccb4a3c0ae0cceb0cc5b5e088ab205bc81c931d3751001 +EBUILD sdlmame-0.214.ebuild 6118 BLAKE2B 48368e85dd828f8616476d16bc00f4730e54ee9d562e63a6b626abe92d81a1451c7c12a96c39963bcffce31baf7836fdf92846c0a3873611369d114f26d54f9b SHA512 d04197435283c9bd011e5b41a0e5c8e382c0a50125e061178af0f56a1cedac94105dc3ebed110a365dccb4a3c0ae0cceb0cc5b5e088ab205bc81c931d3751001 MISC metadata.xml 1573 BLAKE2B 2bb3f53a9dc2e3e3e511b81fb1319926d7f6fb68a6d6ed9dbcc0e56f106a5536f97200ab144c46ffa69d09cbce147b28f9468092d338c6c332ad607524ca1172 SHA512 a621863a22333f29886464b354f0efe7edc372ec598beec36ee3c0358846527e677a644b7ac24e1757c9f684f69c996a9cf74988643d015b3a34f3cbfa23c7e4 diff --git a/games-emulation/sdlmame/sdlmame-0.214.ebuild b/games-emulation/sdlmame/sdlmame-0.214.ebuild new file mode 100644 index 0000000..150500d --- /dev/null +++ b/games-emulation/sdlmame/sdlmame-0.214.ebuild @@ -0,0 +1,230 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +PYTHON_COMPAT=( python2_7 ) +inherit eutils python-any-r1 toolchain-funcs qmake-utils games + +MY_PV="${PV/.}" + +DESCRIPTION="Multiple Arcade Machine Emulator + Multi Emulator Super System (MESS)" +HOMEPAGE="http://mamedev.org/" +SRC_URI="https://github.com/mamedev/mame/releases/download/mame${MY_PV}/mame${MY_PV}s.zip -> mame-${PV}.zip" + +LICENSE="GPL-2+ BSD-2 MIT CC0-1.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="alsa +arcade +mess opengl openmp tools" +REQUIRED_USE="|| ( arcade mess )" + +# MESS (games-emulation/sdlmess) has been merged into MAME upstream since mame-0.162 (see below) +# MAME/MESS build combined (default) +arcade +mess (mame) +# MAME build only +arcade -mess (mamearcade) +# MESS build only -arcade +mess (mess) +# games-emulation/sdlmametools is dropped and enabled instead by the 'tools' useflag +RDEPEND="!games-emulation/sdlmametools + dev-db/sqlite:3 + dev-libs/expat + media-libs/fontconfig + media-libs/flac + media-libs/libsdl2[joystick,opengl?,sound,video,X] + media-libs/portaudio + dev-python/sphinx + media-libs/sdl2-ttf + sys-libs/zlib + virtual/jpeg:0 + virtual/opengl + alsa? ( media-libs/alsa-lib + media-libs/portmidi ) + x11-libs/libX11 + x11-libs/libXinerama + ${PYTHON_DEPS}" +DEPEND="${RDEPEND} + ${PYTHON_DEPS} + app-arch/unzip + virtual/pkgconfig + x11-proto/xineramaproto" + +S=${WORKDIR} + +# Function to disable a makefile option +disable_feature() { + sed -i -e "/^[ ]*$1.*=/s:^:# :" makefile || die +} + +# Function to enable a makefile option +enable_feature() { + sed -i -e "/^#.*$1.*=/s:^#[ ]*::" makefile || die +} + +pkg_setup() { + games_pkg_setup + python-any-r1_pkg_setup +} + +src_unpack() { + default + unzip ./mame.zip 2>&1 >/dev/null + rm -f mame.zip || die +} + +src_prepare() { + #epatch \ + # "${FILESDIR}"/${P}-cxx14.patch + # Disable using bundled libraries + enable_feature USE_SYSTEM_LIB_EXPAT + enable_feature USE_SYSTEM_LIB_FLAC + enable_feature USE_SYSTEM_LIB_JPEG +# Use bundled lua for now to ensure correct compilation (ref. b.g.o #407091) +# enable_feature USE_SYSTEM_LIB_LUA + enable_feature USE_SYSTEM_LIB_PORTAUDIO + enable_feature USE_SYSTEM_LIB_SQLITE3 + enable_feature USE_SYSTEM_LIB_ZLIB + + # Disable warnings being treated as errors and enable verbose build output + enable_feature NOWERROR + enable_feature VERBOSE + + use amd64 && enable_feature PTR64 + use tools && enable_feature TOOLS + disable_feature NO_X11 # bgfx needs X + use openmp && enable_feature OPENMP + + if use alsa ; then + enable_feature USE_SYSTEM_LIB_PORTMIDI + else + enable_feature NO_USE_MIDI + fi + + sed -i \ + -e 's/-Os//' \ + -e '/^\(CC\|CXX\|AR\) /s/=/?=/' \ + 3rdparty/genie/build/gmake.linux/genie.make || die +} + +src_compile() { + local targetargs + + use arcade && ! use mess && targetargs="SUBTARGET=arcade" + ! use arcade && use mess && targetargs="SUBTARGET=mess" + + function my_emake() { + # Workaround conflicting $ARCH variable used by both Gentoo's + # portage and by Mame's build scripts + PYTHON_EXECUTABLE=${PYTHON} \ + OVERRIDE_CC=$(tc-getCC) \ + OVERRIDE_CXX=$(tc-getCXX) \ + OVERRIDE_LD=$(tc-getCXX) \ + QT_HOME="$(qt5_get_libdir)/qt5" \ + ARCH= \ + emake "$@" \ + AR=$(tc-getAR) + } + my_emake -j1 generate + + my_emake ${targetargs} \ + SDL_INI_PATH="\$\$\$\$HOME/.sdlmame;${GAMES_SYSCONFDIR}/${PN}" \ + + if use tools ; then + my_emake -j1 TARGET=ldplayer + fi +} + +src_install() { + local MAMEBIN + local suffix="$(use amd64 && echo 64)" + local f + + function mess_install() { + dosym ${MAMEBIN} "${GAMES_BINDIR}"/mess${suffix} + dosym ${MAMEBIN} "${GAMES_BINDIR}"/sdlmess + newman docs/man/mess.6 sdlmess.6 + doman docs/man/mess.6 + } + if use arcade ; then + if use mess ; then + MAMEBIN="mame${suffix}" + mess_install + else + MAMEBIN="mamearcade${suffix}" + fi + doman docs/man/mame.6 + newman docs/man/mame.6 ${PN}.6 + elif use mess ; then + MAMEBIN="mess${suffix}" + mess_install + fi + dogamesbin ${MAMEBIN} + dosym ${MAMEBIN} "${GAMES_BINDIR}/${PN}" + + insinto "${GAMES_DATADIR}/${PN}" + doins -r keymaps $(use mess && echo hash) + + # Create default mame.ini and inject Gentoo settings into it + # Note that '~' does not work and '$HOME' must be used + ./${MAMEBIN} -noreadconfig -showconfig > "${T}/mame.ini" || die + # -- Paths -- + for f in {rom,hash,sample,art,font,crosshair} ; do + sed -i \ + -e "s:\(${f}path\)[ \t]*\(.*\):\1 \t\t\$HOME/.${PN}/\2;${GAMES_DATADIR}/${PN}/\2:" \ + "${T}/mame.ini" || die + done + for f in {ctrlr,cheat} ; do + sed -i \ + -e "s:\(${f}path\)[ \t]*\(.*\):\1 \t\t\$HOME/.${PN}/\2;${GAMES_SYSCONFDIR}/${PN}/\2;${GAMES_DATADIR}/${PN}/\2:" \ + "${T}/mame.ini" || die + done + # -- Directories + for f in {cfg,nvram,memcard,input,state,snapshot,diff,comment} ; do + sed -i \ + -e "s:\(${f}_directory\)[ \t]*\(.*\):\1 \t\t\$HOME/.${PN}/\2:" \ + "${T}/mame.ini" || die + done + # -- Keymaps -- + sed -i \ + -e "s:\(keymap_file\)[ \t]*\(.*\):\1 \t\t\$HOME/.${PN}/\2:" \ + "${T}/mame.ini" || die + for f in keymaps/km*.map ; do + sed -i \ + -e "/^keymap_file/a \#keymap_file \t\t${GAMES_DATADIR}/${PN}/keymaps/${f##*/}" \ + "${T}/mame.ini" || die + done + insinto "${GAMES_SYSCONFDIR}/${PN}" + doins "${T}/mame.ini" + + insinto "${GAMES_SYSCONFDIR}/${PN}" + doins "${FILESDIR}/vector.ini" + + cd docs + make html + cd .. + dodoc -r docs/build/html/* + keepdir \ + "${GAMES_DATADIR}/${PN}"/{ctrlr,cheat,roms,samples,artwork,crosshair} \ + "${GAMES_SYSCONFDIR}/${PN}"/{ctrlr,cheat} + + if use tools ; then + for f in castool chdman floptool imgtool jedutil ldresample ldverify romcmp ; do + newgamesbin ${f} ${PN}-${f} + newman docs/man/${f}.1 ${PN}-${f}.1 + done + newgamesbin ldplayer${suffix} ${PN}-ldplayer + newman docs/man/ldplayer.1 ${PN}-ldplayer.1 + fi + + prepgamesdirs +} + +pkg_postinst() { + games_pkg_postinst + + elog "It is strongly recommended to change either the system-wide" + elog " ${GAMES_SYSCONFDIR}/${PN}/mame.ini or use a per-user setup at ~/.${PN}/mame.ini" + elog + if use opengl ; then + elog "You built ${PN} with opengl support and should set" + elog "\"video\" to \"opengl\" in mame.ini to take advantage of that" + elog + elog "For more info see http://wiki.mamedev.org" + fi +}