summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation/sdlmame/sdlmame-0.139_p4.ebuild')
-rw-r--r--games-emulation/sdlmame/sdlmame-0.139_p4.ebuild152
1 files changed, 152 insertions, 0 deletions
diff --git a/games-emulation/sdlmame/sdlmame-0.139_p4.ebuild b/games-emulation/sdlmame/sdlmame-0.139_p4.ebuild
new file mode 100644
index 000000000000..d0953651f69e
--- /dev/null
+++ b/games-emulation/sdlmame/sdlmame-0.139_p4.ebuild
@@ -0,0 +1,152 @@
+# 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.139_p4.ebuild,v 1.1 2010/10/20 08:10:33 mr_bones_ Exp $
+
+EAPI=2
+inherit eutils flag-o-matic games
+
+MY_PV=${PV/.}
+MY_CONF_PN=${PN/sdl}
+MY_P=${PN}${MY_PV}
+MY_P=${MY_P%%_p*}
+MY_CONF_VER="0.139"
+DESCRIPTION="Multiple Arcade Machine Emulator (SDL)"
+HOMEPAGE="http://mamedev.org/"
+UPDATES="$(for PATCH_VER in $(seq 1 ${PV##*_p}) ; do echo "mirror://gentoo/${MY_P}u${PATCH_VER}_diff.zip"; done)"
+# Upstream doesn't allow fetching with unknown User-Agent such as wget
+SRC_URI="mirror://gentoo/${MY_P/sdl}s.zip $UPDATES
+ http://www.netswarm.net/misc/sdlmame-ui.bdf.gz"
+
+LICENSE="XMAME"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="debug opengl"
+
+RDEPEND=">=media-libs/libsdl-1.2.10[audio,joystick,opengl?,video]
+ dev-libs/expat
+ x11-libs/libXinerama
+ debug? (
+ x11-libs/gtk+:2
+ gnome-base/gconf
+ )"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ x11-proto/xineramaproto"
+
+S=${WORKDIR}
+
+# 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_unpack() {
+ base_src_unpack
+ unpack ./mame.zip
+ rm -f mame.zip
+}
+
+src_prepare() {
+ if [[ $PV == *_p* ]] ; then
+ edos2unix $(grep +++ *diff | awk '{ print $2 }' | sort -u) *diff 2> /dev/null
+ einfo "Patching release with source updates"
+ epatch ${MY_PV%%_p*}*.diff
+ fi
+ sed -i \
+ -e '/CFLAGS += -O$(OPTIMIZE)/s:^:# :' \
+ -e '/CFLAGS += -pipe/s:^:# :' \
+ -e '/LDFLAGS += -s/s:^:# :' \
+ -e '/LDFLAGS =/d' \
+ -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
+
+ if use debug; then
+ einfo "Enabling DEBUG support"
+ enable_feature DEBUG
+ 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}"'\"'" ${CXXFLAGS}" \
+ CC="${CXX}" \
+ SUFFIX="" \
+ ${make_opts} \
+ all \
+ || die "emake failed"
+}
+
+src_install() {
+ dogamesbin ${PN}$(use amd64 && echo 64) || die
+
+ # Avoid collision on /usr/games/bin/jedutil
+ exeinto "$(games_get_libdir)/${PN}"
+ doexe chdman jedutil ldverify romcmp testkeys || die
+ doman src/osd/sdl/man/{chdman,jedutil,ldverify,romcmp,testkeys}.1
+ newman src/osd/sdl/man/mame.1 ${PN}.1
+
+ insinto "${GAMES_DATADIR}/${PN}"
+ doins -r src/osd/sdl/keymaps || die "doins -r keymaps failed"
+ newins sdlmame-ui.bdf ui.bdf || die "newins ui.bdf failed"
+
+ insinto "${GAMES_SYSCONFDIR}/${PN}"
+ doins "${FILESDIR}"/vector.ini || die "doins vector.ini failed"
+
+ sed \
+ -e "s:@GAMES_SYSCONFDIR@:${GAMES_SYSCONFDIR}:" \
+ -e "s:@GAMES_DATADIR@:${GAMES_DATADIR}:" \
+ "${FILESDIR}/${MY_CONF_PN}-${MY_CONF_VER}".ini.in > "${D}/${GAMES_SYSCONFDIR}/${PN}/${MY_CONF_PN}".ini \
+ || die "sed failed"
+
+ dodoc docs/{config,mame,newvideo}.txt whatsnew*.txt
+
+ keepdir \
+ "${GAMES_DATADIR}/${PN}"/{ctrlr,cheats,roms,samples,artwork,crosshair} \
+ "${GAMES_SYSCONFDIR}/${PN}"/{ctrlr,cheats}
+
+ 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
+}