# 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.1 2010/01/04 09:04:07 mr_bones_ Exp $ EAPI=2 inherit eutils flag-o-matic games versionator MY_PV=$(get_version_component_range 1-2) MY_PV=$(delete_all_version_separators ${MY_PV}) MY_P="mame${MY_PV}s" MY_CONF_PN=${PN/sdl} DESCRIPTION="Multiple Arcade Machine Emulator (SDL)" HOMEPAGE="http://mamedev.org/" # MAME annoyingly blocks wget RESTRICT="fetch" SRC_URI="http://mamedev.org/downloader.php?&file=${MY_P}.zip -> ${MY_P}.zip" # replace with standard MAME license? same conditions, but different preamble #LICENSE="MAME" 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} EPATCH_SOURCE=${FILESDIR} EPATCH_OPTS="--binary" # 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" } pkg_nofetch() { einfo "This package cannot be retreived automatically." einfo "Please download the following source file manually:" einfo " ${SRC_URI}" einfo "and copy it to ${DISTDIR}/" } src_prepare() { # Extract source code unzip -q -d ${MY_P} mame.zip || die "unzip failed" rm mame.zip # Apply source patches if appropriate U=$(get_version_component_range 3) if [ -n "${U}" ]; then cd "${S}" >/dev/null for i in ${FILESDIR}/${MY_PV}*.diff; do if [ $(echo ${i##*${MY_PV}u} | cut -d. -f1) -le ${U} ]; then einfo Applying patch $i epatch $i fi done cd - >/dev/null fi # Convert file format to unix #einfo "Converting file format to UNIX" #find "${S}" -type f -not -name "*.png" -exec sed -i 's/ $//g' {} + sed -i \ -e '/CFLAGS += -O$(OPTIMIZE)/s:^:# :' \ -e '/CFLAGS += -pipe/s:^:# :' \ -e '/LDFLAGS += -s/s:^:# :' \ -e 's:-Werror::' \ "${S}/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 all \ NAME="${PN}" \ OPT_FLAGS='-DINI_PATH=\"\$$HOME/.'${PN}'\;'"${GAMES_SYSCONFDIR}/${PN}"'\"'" ${CFLAGS}" \ SUFFIX="" \ ${make_opts} \ || die "emake failed" } src_install() { if use amd64; then MAMEBIN="${PN}64" else MAMEBIN=${PN} fi dogamesbin ${MAMEBIN} || die "dogamesbin ${MAMEBIN} 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 src/osd/sdl/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:/etc/games:${GAMES_SYSCONFDIR}:" \ -e "s:/usr/share/games:${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 }