summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation/xmame/xmame-0.106.ebuild')
-rw-r--r--games-emulation/xmame/xmame-0.106.ebuild242
1 files changed, 242 insertions, 0 deletions
diff --git a/games-emulation/xmame/xmame-0.106.ebuild b/games-emulation/xmame/xmame-0.106.ebuild
new file mode 100644
index 000000000000..1b46ddc54f97
--- /dev/null
+++ b/games-emulation/xmame/xmame-0.106.ebuild
@@ -0,0 +1,242 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-emulation/xmame/xmame-0.106.ebuild,v 1.1 2006/06/01 05:16:07 mr_bones_ Exp $
+
+inherit flag-o-matic toolchain-funcs eutils games
+
+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 arts dga esd expat ggi joystick lirc mmx net opengl sdl svga X xinerama xv"
+
+RDEPEND="sys-libs/zlib
+ alsa? ( media-libs/alsa-lib )
+ arts? ( kde-base/arts )
+ dga? ( || ( ( x11-libs/libXxf86dga
+ x11-libs/libXxf86vm
+ )
+ virtual/x11
+ )
+ )
+ esd? ( >=media-sound/esound-0.2.29 )
+ expat? ( 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 virtual/x11 ) )
+ xv? ( || ( x11-libs/libXv virtual/x11 ) )
+ X? ( || ( x11-libs/libXext virtual/x11 ) )"
+DEPEND="${RDEPEND}
+ dga? ( || ( ( x11-proto/xf86dgaproto
+ x11-proto/xf86vidmodeproto
+ )
+ virtual/x11
+ )
+ )
+ xinerama? ( || ( x11-proto/xineramaproto virtual/x11 ) )
+ xv? ( || ( x11-proto/videoproto virtual/x11 ) )
+ 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_unpack() {
+ local mycpu
+
+ unpack ${A}
+ cd "${S}"
+
+ 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 "/^BINDIR/s:=.*:=${GAMES_BINDIR}:" \
+ -e "/^MANDIR/s:=.*:=/usr/share/man/man6:" \
+ -e "/^XMAMEROOT/s:=.*:=${GAMES_DATADIR}/${TARGET}:" \
+ -e "/^TARGET/s:mame:${TARGET:1}:" \
+ -e "/^CFLAGS =/d" \
+ -e 's/,-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 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 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
+ toggle_feature alsa SOUND_ALSA
+ toggle_feature arts SOUND_ARTS
+ 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 !expat 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"
+}
+
+src_compile() {
+ local disp=0
+ if use sdl ; then
+ emake DISPLAY_METHOD=SDL || die "emake failed (SDL)"
+ disp=1
+ fi
+ if use svga ; then
+ emake DISPLAY_METHOD=svgalib || die "emake failed (svgalib)"
+ disp=1
+ fi
+ if use ggi ; then
+ #emake DISPLAY_METHOD=ggi || die "emake 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
+ emake DISPLAY_METHOD=x11 || die "emake failed (x11)"
+ fi
+}
+
+src_install() {
+ local disp=0, f
+ local utils="chdman imgtool dat2html romcmp xml2info"
+
+ sed -i \
+ -e "s:^PREFIX.*:PREFIX=${D}/usr:" \
+ -e "s:^BINDIR.*:BINDIR=${D}/${GAMES_BINDIR}:" \
+ -e "s:^MANDIR.*:MANDIR=${D}/usr/share/man/man6:" \
+ -e "s:^XMAMEROOT.*:XMAMEROOT=${D}/${GAMES_DATADIR}/${TARGET}:" \
+ Makefile \
+ || die "sed Makefile failed"
+
+ if use sdl ; then
+ make DISPLAY_METHOD=SDL install || die "install failed (sdl)"
+ disp=1
+ fi
+ if use svga ; then
+ make DISPLAY_METHOD=svgalib 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 install || die "install failed (x11)"
+ fi
+ exeinto "${GAMES_LIBDIR}/${PN}"
+ for f in $utils
+ do
+ if [[ -f "${D}${GAMES_BINDIR}"/$f ]] ; then
+ doexe $f || die "doexe failed"
+ rm -f "${D}${GAMES_BINDIR}"/$f 2> /dev/null
+ fi
+ done
+
+ insinto "${GAMES_DATADIR}/${PN}"
+ doins -r ctrlr || die "doins failed"
+ dodoc doc/{changes.*,*.txt,mame/*,${TARGET}rc.dist} README todo \
+ || die "dodoc failed"
+ dohtml -r doc/* || die "dohtml failed"
+
+ # default to sdl since the client is a bit more featureful
+ if use sdl ; then
+ dosym "${TARGET}.SDL" "${GAMES_BINDIR}/${TARGET}"
+ elif [ ${disp} -eq 0 ] || use opengl || use X || use dga || use xv ; then
+ dosym "${TARGET}.x11" "${GAMES_BINDIR}/${TARGET}"
+ elif use svga ; then
+ dosym ${TARGET}.svgalib "${GAMES_BINDIR}/${TARGET}"
+ #elif use ggi ; then
+ #dosym ${TARGET}.ggi "${GAMES_BINDIR}/${TARGET}"
+ fi
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ einfo "Your available MAME binaries are: ${TARGET}"
+ if useq opengl || useq X || useq dga || useq xv ; then
+ einfo " ${TARGET}.x11"
+ fi
+ useq sdl && einfo " ${TARGET}.SDL"
+ #useq ggi && einfo " ${TARGET}.ggi"
+ useq svga && einfo " ${TARGET}.svgalib"
+
+ einfo "Helper utilities are located in ${GAMES_LIBDIR}/${PN}."
+}