blob: bd59e66917ae6feda62895fdda6bc2d14372509e [file] [log] [blame]
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-emulation/sdlmame/sdlmame-0.136.ebuild,v 1.2 2010/03/04 15:05:59 phajdan.jr Exp $
EAPI=2
inherit eutils flag-o-matic games
MY_PV=${PV/.}
MY_PV=${MY_PV/_p/u}
MY_P=${PN}${MY_PV}
MY_CONF_PN=${PN/sdl}
DESCRIPTION="Multiple Arcade Machine Emulator (SDL)"
HOMEPAGE="http://rbelmont.mameworld.info/?page_id=163"
# Upstream doesn't allow fetching with unknown User-Agent such as wget
SRC_URI="mirror://gentoo/${MY_P}.zip
mirror://gentoo/${PN}-manpages.tar.gz"
LICENSE="XMAME"
SLOT="0"
KEYWORDS="~amd64 ~ppc x86"
IUSE="opengl"
RDEPEND=">=media-libs/libsdl-1.2.10[audio,joystick,opengl?,video]
dev-libs/expat
x11-libs/libXinerama
x11-libs/gtk+:2
gnome-base/gconf:2"
DEPEND="${RDEPEND}
app-arch/unzip
x11-proto/xineramaproto"
S=${WORKDIR}/${MY_P}
# Function to disable a makefile option
disable_feature() {
sed -i \
-e "/$1.*=/s:^:# :" \
"${S}"/makefile \
|| die "sed failed"
}
# Function to enable a makefile option
enable_feature() {
sed -i \
-e "/^#.*$1.*=/s:^# ::" \
"${S}"/makefile \
|| die "sed failed"
}
src_prepare() {
sed -i \
-e '/CFLAGS += -O$(OPTIMIZE)/s:^:# :' \
-e '/CFLAGS += -pipe/s:^:# :' \
-e '/LDFLAGS += -s/s:^:# :' \
-e 's:-Werror::' \
makefile \
|| die "sed failed"
# Don't compile zlib and expat
einfo "Disabling embedded libraries: zlib and expat"
disable_feature BUILD_ZLIB
disable_feature BUILD_EXPAT
if use amd64; then
einfo "Enabling 64-bit support"
enable_feature PTR64
fi
if use ppc; then
einfo "Enabling PPC support"
enable_feature BIGENDIAN
fi
}
src_compile() {
local make_opts
use opengl || make_opts="${make_opts} NO_OPENGL=1"
emake \
NAME="${PN}" \
OPT_FLAGS='-DINI_PATH=\"\$$HOME/.'${PN}'\;'"${GAMES_SYSCONFDIR}/${PN}"'\"'" ${CFLAGS}" \
SUFFIX="" \
${make_opts} \
|| die "emake failed"
}
src_install() {
dogamesbin ${PN} || die "dogamesbin ${PN} failed"
# Follows xmame ebuild, avoiding collision on /usr/games/bin/jedutil
exeinto "$(games_get_libdir)/${PN}"
local f
for f in chdman ldverify jedutil romcmp testkeys; do
doexe "${f}" || die "doexe ${f} failed"
done
insinto "${GAMES_DATADIR}/${PN}"
doins ui.bdf || die "doins ui.bdf failed"
doins -r keymaps || die "doins -r keymaps failed"
insinto "${GAMES_SYSCONFDIR}/${PN}"
doins "${FILESDIR}"/{joymap.dat,vector.ini} || die "doins joymap.dat vector.ini failed"
sed \
-e "s:@GAMES_SYSCONFDIR@:${GAMES_SYSCONFDIR}:" \
-e "s:@GAMES_DATADIR@:${GAMES_DATADIR}:" \
"${FILESDIR}"/mame.ini.in > "${D}/${GAMES_SYSCONFDIR}/${PN}/"mame.ini \
|| die "sed failed"
dodoc docs/{config,mame,newvideo}.txt *.txt
doman "${WORKDIR}/${PN}-manpages"/*
keepdir \
"${GAMES_DATADIR}/${PN}"/{roms,samples,artwork} \
"${GAMES_SYSCONFDIR}/${PN}"/ctrlr
prepgamesdirs
}
pkg_postinst() {
games_pkg_postinst
elog "It's strongly recommended that you change either the system-wide"
elog "${MY_CONF_PN}.ini at \"${GAMES_SYSCONFDIR}/${PN}\" or use a per-user setup at \$HOME/.${PN}"
if use opengl; then
echo
elog "You built ${PN} with opengl support and should set"
elog "\"video\" to \"opengl\" in ${MY_CONF_PN}.ini to take advantage of that"
fi
}