diff options
author | Martin Väth <martin@mvath.de> | 2016-03-06 14:28:06 +0100 |
---|---|---|
committer | Martin Väth <martin@mvath.de> | 2016-03-06 15:11:27 +0100 |
commit | 239357701ab7fa858510d5018d089252a22975f3 (patch) | |
tree | 14cc1e3044e7c79599d82efdc38881208b1b0338 /games-emulation | |
parent | games-action/trackballs: Add old gentoo ebuild, bumped to EAPI=6 (diff) | |
download | mv-239357701ab7fa858510d5018d089252a22975f3.tar.gz mv-239357701ab7fa858510d5018d089252a22975f3.tar.bz2 mv-239357701ab7fa858510d5018d089252a22975f3.zip |
games-emulation/xmame: Add old gentoo ebuild, bumped to EAPI=6
Diffstat (limited to 'games-emulation')
-rw-r--r-- | games-emulation/xmame/Manifest | 1 | ||||
-rw-r--r-- | games-emulation/xmame/metadata.xml | 37 | ||||
-rw-r--r-- | games-emulation/xmame/xmame-0.106-r1.ebuild | 233 |
3 files changed, 271 insertions, 0 deletions
diff --git a/games-emulation/xmame/Manifest b/games-emulation/xmame/Manifest new file mode 100644 index 00000000..591f4bc7 --- /dev/null +++ b/games-emulation/xmame/Manifest @@ -0,0 +1 @@ +DIST xmame-0.106.tar.bz2 17117298 SHA256 a385d86adebc2eb53b560bb522cf569569a74c4104605a8e7d61f1caa0f5e4df diff --git a/games-emulation/xmame/metadata.xml b/games-emulation/xmame/metadata.xml new file mode 100644 index 00000000..3abb4dcc --- /dev/null +++ b/games-emulation/xmame/metadata.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>martin@mvath.de</email> + <name>Martin Väth</name> + </maintainer> + <longdescription> +Mame is an arcade machine emulator. Started in 1997 by Nicola Salmoria, mame started out as a +series of emulators for individual games. This series of emulators was combined into a simgle +multi-game emulator. This is the current form of mame; no longer a one-man show, there are over 100 +contributors to the project. + +Mame was created by Nicola Salmoria. + +Mess is just like mame---a virtual machine emulator, only it doesn't emulate arcade machines but +rather computers and consoles. + +Xmame/xmess are the Unix/X11 ports of the mame and mess projects. It makes mame/mess available on +*ix machines using the X11R6 X-Window System (and SVGAlib/ggi/XF86-DGA/OpenGL/SDL too). + +Mame was orginally ported by Allard Van Der Bas, Dick the Ridder, Juan Antonio Martinez, and Hans +de Goede. + +Xmame/xmess is currently maintained by Lawrence Gold. + +Xmame/xmess is based on the mame/mess source code. Due to technical reasons beyond the scope of +this document, the mame/mess source may not compile under Unix. That's why the xmame/xmess project +exists. Each time mame/mess is updated, the code is tested (and patched if needed) under Unix. This +way xmame/xmess releases are always the same as their mame counterparts. + +There are no plans for the independent development of xmame/xmess. +</longdescription> + <use> + <flag name="net">Add network support</flag> + </use> +</pkgmetadata> diff --git a/games-emulation/xmame/xmame-0.106-r1.ebuild b/games-emulation/xmame/xmame-0.106-r1.ebuild new file mode 100644 index 00000000..6c3d197d --- /dev/null +++ b/games-emulation/xmame/xmame-0.106-r1.ebuild @@ -0,0 +1,233 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +inherit flag-o-matic toolchain-funcs +RESTRICT="mirror" + +TARGET="${PN}" + +DESCRIPTION="Multiple Arcade Machine Emulator for X11" +HOMEPAGE="http://x.mame.net/" +SRC_URI="http://x.mame.net/download/xmame-${PV}.tar.bz2" + +LICENSE="XMAME" +SLOT="0" +KEYWORDS="alpha amd64 hppa ia64 ppc sparc x86" +IUSE="alsa bundled-libs cpu_flags_x86_mmx dga ggi joystick lirc net opengl sdl svga X xinerama xv" + +RDEPEND=" + alsa? ( media-libs/alsa-lib ) + dga? ( + x11-libs/libXxf86dga + x11-libs/libXxf86vm ) + !bundled-libs? ( dev-libs/expat ) + ggi? ( media-libs/libggi ) + lirc? ( app-misc/lirc ) + opengl? ( + virtual/opengl + virtual/glu ) + sdl? ( >=media-libs/libsdl-1.2.0 ) + svga? ( media-libs/svgalib ) + xinerama? ( x11-libs/libXinerama ) + xv? ( x11-libs/libXv ) + X? ( x11-libs/libXext )" +DEPEND="${RDEPEND} + dga? ( + x11-proto/xf86dgaproto + x11-proto/xf86vidmodeproto ) + xinerama? ( x11-proto/xineramaproto ) + xv? ( x11-proto/videoproto ) + x86? ( dev-lang/nasm )" +# Icc sucks. bug #41342 +# icc? ( dev-lang/icc ) + +S=${WORKDIR}/xmame-${PV} + +toggle_feature() { + if use $1 ; then + sed -i \ + -e "/$2.*=/s:#::" Makefile \ + || die "sed Makefile ($1 / $2) failed" + fi +} + +toggle_feature2() { + use $1 && toggle_feature $2 $3 +} + +src_prepare() { + local mycpu + + case ${ARCH} in + x86) mycpu="i386";; + ia64) mycpu="ia64";; + amd64) mycpu="amd64";; + ppc) mycpu="risc";; + sparc) mycpu="risc";; + hppa) mycpu="risc";; + alpha) mycpu="alpha";; + mips) mycpu="mips";; + esac + + sed -i \ + -e "/^PREFIX/s:=.*:=/usr:" \ + -e "/^MY_CPU/s:i386:${mycpu}:" \ + -e "/^MANDIR/s:man/man:share/man/man:" \ + -e "/^XMAMEROOT/s:share:share/games:" \ + -e "/^TARGET/s:mame:${TARGET:1}:" \ + -e "/^INSTALL_GROUP/s:bin:root:" \ + -e "/^CFLAGS =/d" \ + -e 's/-s,//' \ + -e 's/-Wl,-s//' \ + -e "/\bCFLAGS +=/d" \ + Makefile \ + || die "sed Makefile failed" + + if use ppc ; then + sed -i \ + -e '/LD.*--relax/s:^# ::' Makefile \ + || die "sed Makefile (ppc/LD) failed" + fi + + if use cpu_flags_x86_mmx ; then + cat >> src/unix/effect_asm.asm <<EOF + %ifidn __OUTPUT_FORMAT__,elf + section .note.GNU-stack noalloc noexec nowrite progbits + %endif +EOF + fi + + toggle_feature x86 X86_MIPS3_DRC + toggle_feature2 x86 cpu_flags_x86_mmx EFFECT_MMX_ASM + toggle_feature joystick JOY_STANDARD + toggle_feature2 joystick X XINPUT_DEVICES + use net && ewarn "Network support is currently (${PV}) broken :(" + #toggle_feature net XMAME_NET # Broken + #toggle_feature esd SOUND_ESOUND # No esound in portage anymore + toggle_feature alsa SOUND_ALSA + #toggle_feature arts SOUND_ARTS # Deprecated + toggle_feature dga X11_DGA + toggle_feature xv X11_XV + # if we don't have expat on the system, use the internal one + toggle_feature bundled-libs BUILD_EXPAT + toggle_feature opengl X11_OPENGL + toggle_feature lirc LIRC + toggle_feature xinerama X11_XINERAMA + + case ${ARCH} in + x86|ia64|amd64) + append-flags -Wno-unused -fomit-frame-pointer -fstrict-aliasing -fstrength-reduce + use amd64 || append-flags -ffast-math #54270 + [[ $(gcc-major-version) -ge 3 ]] \ + && append-flags -falign-functions=2 -falign-jumps=2 -falign-loops=2 \ + || append-flags -malign-functions=2 -malign-jumps=2 -malign-loops=2 + ;; + ppc) + append-flags -Wno-unused -funroll-loops -fstrength-reduce -fomit-frame-pointer -ffast-math -fsigned-char + ;; + hppa) + append-flags -ffunction-sections + ;; + esac + + sed -i \ + -e "s:[Xx]mame:${TARGET}:g" \ + doc/*.6 \ + || die "sed man pages failed" + # no, we don't want to install setuid (bug #81693) + sed -i \ + -e 's/^doinstallsuid/notforus/' \ + -e 's/doinstallsuid/doinstall/' \ + -e '/^QUIET/s:^:#:' src/unix/unix.mak \ + || die "sed src/unix/unix.mak failed" + eapply_user +} + +src_compile() { + local disp=0 + if use sdl ; then + emake -j1 DISPLAY_METHOD=SDL \ + CC=$(tc-getCC) \ + LD=$(tc-getCC) + disp=1 + fi + if use svga ; then + emake -j1 DISPLAY_METHOD=svgalib \ + CC=$(tc-getCC) \ + LD=$(tc-getCC) + disp=1 + fi + if use ggi ; then + #emake -j1 DISPLAY_METHOD=ggi + #disp=1 + ewarn "GGI support is currently (${PV}) broken :(" + fi + if [[ ${disp} -eq 0 ]] || use opengl || use X || use dga || use xv ; then + emake -j1 DISPLAY_METHOD=x11 \ + CC=$(tc-getCC) \ + LD=$(tc-getCC) + fi +} + +src_install() { + local disp=0 f utils="chdman imgtool dat2html romcmp xml2info" + + if use sdl ; then + make DISPLAY_METHOD=SDL PREFIX="${ED}/usr" install \ + || die "install failed (sdl)" + disp=1 + fi + if use svga ; then + make DISPLAY_METHOD=svgalib PREFIX="${ED}/usr" install \ + || die "install failed (svga)" + disp=1 + fi + if use ggi ; then + #make DISPLAY_METHOD=ggi install || die "install failed (ggi)" + #disp=1 + ewarn "GGI support is currently (${PV}) broken :(" + fi + if [[ ${disp} -eq 0 ]] || use opengl || use X || use dga || use xv ; then + make DISPLAY_METHOD=x11 PREFIX="${ED}/usr" install \ + || die "install failed (x11)" + fi + exeinto "/usr/$(get_libdir)/${PN}" + for f in $utils + do + if [[ -f "${ED}"/usr/bin/$f ]] ; then + doexe $f + rm -f "${ED}"/usr/bin/$f 2>/dev/null + fi + done + + insinto "/usr/share/games/${PN}" + doins -r ctrlr + dodoc doc/{changes.*,*.txt,mame/*,${TARGET}rc.dist} README todo + docinto html + dodoc -r doc/img doc/mess doc/*.html doc/*.css + + # default to sdl since the client is a bit more featureful + if use sdl ; then + dosym "${TARGET}.SDL" "/usr/bin/${TARGET}" + elif [[ ${disp} -eq 0 ]] || use opengl || use X || use dga || use xv ; then + dosym "${TARGET}.x11" "/usr/bin/${TARGET}" + elif use svga ; then + dosym ${TARGET}.svgalib "/usr/bin/${TARGET}" + #elif use ggi ; then + #dosym ${TARGET}.ggi "/usr/bin/${TARGET}" + fi +} + +pkg_postinst() { + elog "Your available MAME binaries are: ${TARGET}" + if use opengl || use X || use dga || use xv ; then + elog " ${TARGET}.x11" + fi + use sdl && elog " ${TARGET}.SDL" + #use ggi && elog " ${TARGET}.ggi" + use svga && elog " ${TARGET}.svgalib" + + elog "Helper utilities are located in /usr/$(get_libdir)/${PN}." +} |