# Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # Based on the 0.59.1 ebuild by Ben Lutgens # $Header: /home/cvsroot/gentoo-x86/app-emulation/xmame/xmame-0.69.1.ebuild,v 1.1 2003/06/05 09:06:59 aliz Exp $ DESCRIPTION="Multiple Arcade Machine Emulator for X11" SRC_URI="http://x.mame.net/download/${P}.tar.bz2" HOMEPAGE="http://x.mame.net/" SLOT="0" LICENSE="xmame" KEYWORDS="x86 ~ppc" IUSE="sdl dga xv alsa esd opengl X 3dfx svga ggi arts" DEPEND="sdl? ( >=media-libs/libsdl-1.2.0 ) sys-libs/zlib 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 ) " # There is a better way to handle this? Compiling ALL version is worse... UI_PRIORITY="X sdl opengl svga ggi" mysed() { sed "$@" makefile.unix.tmp # This check is for future updates cmp -s makefile.unix makefile.unix.tmp if [ $? = 0 ]; then eerror "sed expression \"$@\" made no changes!" eerror "The format in makefile.unix has probably changed so the" eerror "ebuild needs to be updated!" exit 10 fi mv -f makefile.unix.tmp makefile.unix } src_unpack() { unpack ${A} cd ${S} mysed "s:^CFLAGS:\# CFLAGS:g" mysed "s:PREFIX = /usr/local:PREFIX = /usr:g" if [ ${ARCH} = "x86" ] then # Enable joystick support mysed "s/\# JOY_I386/JOY_I386/g" # Enable M68000 and MIPS3 asm cores mysed "s/\# X86_ASM_68000 = 1/X86_ASM_68000 = 1/g" mysed "s/\# X86_MIPS3_DRC/X86_MIPS3_DRC/g" fi if [ ${ARCH} = "ppc" ] then mysed "s:MY_CPU = i386:\#MY_CPU = i386:g" mysed "s:\# MY_CPU = risc$:MY_CPU = risc:" fi mysed "s/\# SOUND_WAVEOUT/SOUND_WAVEOUT/g" use esd && mysed "s/\# SOUND_ESOUND/SOUND_ESOUND/g" use alsa && mysed "s/\# SOUND_ALSA/SOUND_ALSA/g" use arts && mysed "s/\# SOUND_ARTS/SOUND_ARTS/g" use sdl && mysed "s/\# SOUND_SDL/SOUND_SDL/g" for display in $XMAME_UI $UI_PRIORITY; do use $display || continue einfo "Building the $display-version of xmame..." einfo "If you want to build another version instead, run emerge this way:" einfo "# XMAME_UI=xxx emerge xmame" einfo "where 'xxx' can be one of: X sdl svga opengl ggi" sleep 3s case $display in X) use 3dfx && mysed "s/DISPLAY_METHOD = x11/DISPLAY_METHOD = xfx/g" use 3dfx && mysed "s/\# TDFX_DGA_WORKAROUND/TDFX_DGA_WORKAROUND/g" use dga && mysed "s/\# X11_DGA = 1/X11_DGA = 1/g" use xv || mysed "s/^X11_XV = 1/X11_XV = 0/g" ;; svga) use 3dfx || mysed "s/DISPLAY_METHOD = x11/DISPLAY_METHOD = svgalib/g" use 3dfx && mysed "s/DISPLAY_METHOD = x11/DISPLAY_METHOD = svgafx/g" ;; sdl) mysed "s/DISPLAY_METHOD = x11/DISPLAY_METHOD = SDL/g" use dga && mysed "s/\# X11_DGA = 1/X11_DGA = 1/g" # FIXME: Needed for SDL? ;; opengl) mysed "s/DISPLAY_METHOD = x11/DISPLAY_METHOD = xgl/g" sed "s::\"/usr/lib/opengl/xfree/include/glx.h\":g" \ < src/unix/video-drivers/gltool.h > src/unix/video-drivers/gltool.h.tmp mv -f src/unix/video-drivers/gltool.h.tmp src/unix/video-drivers/gltool.h ;; ggi) mysed "s/DISPLAY_METHOD = x11/DISPLAY_METHOD = ggi/g" ;; *) eerror "Unknown variable in \$UI_PRIORITY: $display" exit 10 ;; esac break # Only build one UI! done } src_compile() { local MYFLAGS local GCCMAJ MYFLAGS="" GCCMAJ=`gcc -v 2>&1 | grep "gcc version" | awk '{print $3}' | cut -f1 -d\.` if [ ${ARCH} = "ppc" ]; then # add Makefile suggested flags for ppc MYFLAGS="${CFLAGS} -funroll-loops \ -fstrength-reduce -fomit-frame-pointer -ffast-math -fsigned-char" fi if [ ${ARCH} = "x86" ]; then # add Makefile suggested flags for x86 MYFLAGS="${CFLAGS} -O3 -Wall -Wno-unused -funroll-loops \ -fstrength-reduce -fomit-frame-pointer -ffast-math" if [ ${GCCMAJ} = "2" ]; then MYFLAGS="${MYFLAGS} -malign-functions=2 -malign-jumps=2 -malign-loops=2" else MYFLAGS="${MYFLAGS} -falign-functions=2 -falign-jumps=2 -falign-loops=2" fi fi make CFLAGS="${MYFLAGS}" || die } src_install() { make \ PREFIX=${D}/usr \ MANDIR=${D}/usr/share/man/man6 \ install dodoc doc/{changes.*,dga2.txt,gamelist.mame,readme.mame,xmamerc.dist} dodoc doc/{xmame-doc.ps,xmame-doc.txt} dodoc todo README dohtml -r doc mv xmame.obj obj.xmame ln -s xmame.* xmame mv xmame ${D}/usr/bin/ mkdir -p ${D}/usr/share/xmame mv src/unix/cab ctrlr ${D}/usr/share/xmame/ }