blob: 5d2e142e4cb80458be3526d3f7ab81b60848ffc0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/xmess/xmess-0.70.1.ebuild,v 1.4 2003/07/18 23:16:52 vapier Exp $
inherit games flag-o-matic gcc
TARGET=${PN}
DESCRIPTION="Multiple Arcade Machine Emulator for X11"
SRC_URI="http://x.mame.net/download/xmame-${PV}.tar.bz2"
HOMEPAGE="http://x.mame.net/"
SLOT="0"
LICENSE="xmame"
KEYWORDS="x86 ~ppc ~sparc ~mips ~alpha"
IUSE="sdl dga xv alsa esd opengl X 3dfx svga ggi arts joystick"
DEPEND="sys-libs/zlib
sdl? ( >=media-libs/libsdl-1.2.0 )
alsa? ( media-libs/alsa-lib )
xv? ( >=x11-base/xfree-4.1.0 )
dga? ( >=x11-base/xfree-4.1.0 )
esd? ( >=media-sound/esound-0.2.29 )
svga? ( media-libs/svgalib )
ggi? ( media-libs/libggi )
arts? ( kde-base/arts )
x86? ( dev-lang/nasm )"
S=${WORKDIR}/xmame-${PV}
src_unpack() {
unpack ${A}
cd ${S}
epatch ${FILESDIR}/${PV}-glx-fix.patch
[ ${ARCH} == "x86" ] && sed -i -e '/X86_ASM_68000 =/s:#::' -e '/X86_MIPS3_DRC =/s:#::' Makefile
[ ${ARCH} == "ppc" ] && sed -i '/^MY_CPU/s:i386:risc:' Makefile
[ ${ARCH} == "sparc" ] && sed -i '/^MY_CPU/s:i386:risc:' Makefile
[ ${ARCH} == "alpha" ] && sed -i '/^MY_CPU/s:i386:alpha:' Makefile
[ ${ARCH} == "mips" ] && sed -i '/^MY_CPU/s:i386:mips:' Makefile
[ ${ARCH} == "x86" ] && [ `use joystick` ] && sed -i '/JOY_I386.*=/s:#::' Makefile
[ `use esd` ] && sed -i '/SOUND_ESOUND/s:#::' Makefile
[ `use alsa` ] && sed -i '/SOUND_ALSA/s:#::' Makefile
[ `use arts` ] && sed -i '/SOUND_ARTS/s:#::' Makefile
[ `use sdl` ] && sed -i '/SOUND_SDL/s:#::' Makefile
if [ `use dga` ] ; then
sed -i '/X11_DGA/s:#::' Makefile
[ `use 3dfx` ] && sed -i '/TDFX_DGA_WORKAROUND/s:#::' Makefile
fi
[ `use xv` ] && sed -i '/X11_XV/s:#::' Makefile
sed -i \
-e "/^PREFIX/s:=.*:=/usr:" \
-e "/^BINDIR/s:=.*:=${GAMES_BINDIR}:" \
-e "/^XMAMEROOT/s:=.*:=${GAMES_DATADIR}/${TARGET}:" \
-e "/^TARGET/s:mame:${TARGET:1}:" \
Makefile
case ${ARCH} in
x86) append-flags -Wno-unused -fomit-frame-pointer -fstrict-aliasing -fstrength-reduce -ffast-math
[ `gcc-major-version` -eq 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
;;
esac
sed -i "s:^CFLAGS =:CFLAGS=${CFLAGS}:" Makefile
}
src_compile() {
[ ! -z "`use X``use dga``use xv`" ] && { make DISPLAY_METHOD=x11 || die; }
[ `use sdl` ] && { make DISPLAY_METHOD=SDL || die; }
[ `use svga` ] && { make DISPLAY_METHOD=svgalib || die; }
[ `use ggi` ] && { make DISPLAY_METHOD=ggi || die; }
[ `use opengl` ] && { make DISPLAY_METHOD=xgl || die; }
}
src_install() {
sed -i \
-e "s:^PREFIX.*:PREFIX=${D}/usr:" \
-e "s:^BINDIR.*:BINDIR=${D}/${GAMES_BINDIR}:" \
-e "s:^XMAMEROOT.*:XMAMEROOT=${D}/${GAMES_DATADIR}/${TARGET}:" \
Makefile
[ ! -z "`use X``use dga``use xv`" ] && { make DISPLAY_METHOD=x11 install || die; }
[ `use sdl` ] && { make DISPLAY_METHOD=SDL install || die; }
[ `use svga` ] && { make DISPLAY_METHOD=svgalib install || die; }
[ `use ggi` ] && { make DISPLAY_METHOD=ggi install || die; }
[ `use opengl` ] && { make DISPLAY_METHOD=xgl install || die; }
dodoc doc/{changes.*,*.txt,mame/*,${TARGET}rc.dist} README todo
dohtml -r doc/*
if [ `use opengl` ] ; then
dosym ${TARGET}.xgl ${GAMES_BINDIR}/${TARGET}
elif [ ! -z "`use X``use dga``use xv`" ] ; then
dosym ${TARGET}.x11 ${GAMES_BINDIR}/${TARGET}
elif [ `use sdl` ] ; then
dosym ${TARGET}.SDL ${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() {
einfo "Your available MAME binaries are:"
[ ! -z "`use X``use dga``use xv`" ] && einfo " ${TARGET}.x11"
[ `use sdl` ] && einfo " ${TARGET}.SDL"
[ `use svga` ] && einfo " ${TARGET}.svgalib"
[ `use ggi` ] && einfo " ${TARGET}.ggi"
[ `use opengl` ] && einfo " ${TARGET}.xgl"
games_pkg_postinst
}
|