| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| PYTHON_COMPAT=( python2_7 ) |
| inherit eutils flag-o-matic python-any-r1 games |
| |
| MY_PV=${PV/.} |
| MY_CONF_PN=${PN/sdl} |
| MY_P=sdlmame${MY_PV} |
| MY_P=${MY_P%%_p*} |
| MY_CONF_VER="0.139" |
| |
| # patches |
| SRC_URI="$(for PATCH_VER in $(seq 1 ${PV##*_p}) ; do echo "https://dev.gentoo.org/~hasufell/distfiles/${MY_P}u${PATCH_VER}_diff.zip"; done)" |
| |
| DESCRIPTION="Multiple Arcade Machine Emulator (SDL)" |
| HOMEPAGE="http://mamedev.org/" |
| # Upstream doesn't allow fetching with unknown User-Agent such as wget |
| SRC_URI="$SRC_URI https://dev.gentoo.org/~hasufell/distfiles/${MY_P/sdl}s.zip" |
| if [[ ${PN} == "sdlmame" ]] ; then |
| SRC_URI="$SRC_URI http://www.netswarm.net/misc/sdlmame-ui.bdf.gz" |
| fi |
| |
| LICENSE="XMAME" |
| SLOT="0" |
| KEYWORDS="~amd64 ~ppc ~x86" |
| IUSE="X alsa debug opengl" |
| REQUIRED_USE="debug? ( X )" |
| |
| RDEPEND=">=dev-lang/lua-5.2 |
| dev-libs/expat |
| media-libs/fontconfig |
| media-libs/flac |
| >=media-libs/libsdl-1.2.10[sound,joystick,opengl?,video] |
| media-libs/sdl-ttf |
| sys-libs/zlib |
| virtual/jpeg |
| alsa? ( media-libs/alsa-lib ) |
| debug? ( |
| x11-libs/gtk+:2 |
| gnome-base/gconf |
| ) |
| X? ( |
| x11-libs/libX11 |
| x11-libs/libXinerama |
| )" |
| DEPEND="${RDEPEND} |
| ${PYTHON_DEPS} |
| app-arch/unzip |
| virtual/pkgconfig |
| X? ( x11-proto/xineramaproto )" |
| |
| S=${WORKDIR} |
| |
| # Function to disable a makefile option |
| disable_feature() { |
| sed -i \ |
| -e "/$1.*=/s:^:# :" \ |
| "${S}"/${2:-makefile} \ |
| || die "sed failed" |
| } |
| |
| # Function to enable a makefile option |
| enable_feature() { |
| sed -i \ |
| -e "/^#.*$1.*=/s:^#::" \ |
| "${S}"/${2:-makefile} \ |
| || die "sed failed" |
| } |
| |
| pkg_setup() { |
| games_pkg_setup |
| python-any-r1_pkg_setup |
| } |
| |
| src_unpack() { |
| default |
| unpack ./mame.zip |
| rm -f mame.zip |
| } |
| |
| src_prepare() { |
| if [[ $PV == *_p* ]] ; then |
| edos2unix $(find $(grep +++ *diff | awk '{ print $2 }' | sort -u) 2>/dev/null) *diff |
| einfo "Patching release with source updates" |
| epatch ${MY_PV%%_p*}*.diff |
| fi |
| edos2unix makefile src/osd/sdl/{osdsdl.h,sdl.mak} |
| |
| epatch \ |
| "${FILESDIR}"/${P}-QA.patch \ |
| "${FILESDIR}"/${P}-system-lua.patch \ |
| "${FILESDIR}"/${P}-no-opengl.patch \ |
| "${FILESDIR}"/${P}-debugger-linking.patch |
| |
| # Don't compile zlib and expat |
| einfo "Disabling embedded libraries: expat, flac, jpeg, zlib, lua" |
| disable_feature BUILD_EXPAT |
| disable_feature BUILD_FLAC |
| disable_feature BUILD_JPEG |
| disable_feature BUILD_ZLIB |
| disable_feature BUILD_LUA |
| |
| 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 |
| enable_feature DEBUG src/osd/sdl/sdl.mak |
| fi |
| |
| enable_feature NO_USE_QTDEBUG src/osd/sdl/sdl.mak |
| |
| if ! use opengl ; then |
| einfo "Disabling opengl support" |
| enable_feature NO_OPENGL src/osd/sdl/sdl.mak |
| fi |
| |
| if ! use alsa ; then |
| einfo "Disabling alsa midi support" |
| enable_feature NO_USE_MIDI src/osd/sdl/sdl.mak |
| fi |
| |
| if ! use X ; then |
| einfo "Disabling X support" |
| enable_feature NO_X11 src/osd/sdl/sdl.mak |
| fi |
| } |
| |
| src_compile() { |
| emake \ |
| TARGET="${PN#sdl}" \ |
| NAME="${PN}" \ |
| OPT_FLAGS='-DINI_PATH=\"\$$HOME/.'${PN}'\;'"${GAMES_SYSCONFDIR}/${PN}"'\"' \ |
| NO_DEBUGGER=$(usex debug "0" "1") default |
| } |
| |
| src_install() { |
| newgamesbin ${PN}$(use amd64 && echo 64)$(use debug && echo d) ${PN} |
| |
| newman src/osd/sdl/man/${PN#sdl}.6 ${PN}.6 |
| |
| insinto "${GAMES_DATADIR}/${PN}" |
| doins -r src/osd/sdl/keymaps |
| [[ ${PN} == "sdlmame" ]] && newins sdlmame-ui.bdf ui.bdf |
| |
| insinto "${GAMES_SYSCONFDIR}/${PN}" |
| doins "${FILESDIR}"/vector.ini |
| |
| 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 |
| if [[ ${PN} == "sdlmame" ]] ; then |
| dodoc whatsnew*.txt |
| else |
| dodoc messnew*.txt |
| fi |
| |
| keepdir \ |
| "${GAMES_DATADIR}/${PN}"/{ctrlr,cheats,roms,samples,artwork,crosshair} \ |
| "${GAMES_SYSCONFDIR}/${PN}"/{ctrlr,cheats} |
| |
| prepgamesdirs |
| } |
| |
| pkg_postinst() { |
| games_pkg_postinst |
| |
| elog "optional dependencies:" |
| elog " games-emulation/sdlmametools (development tools)" |
| echo |
| 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 |
| } |