# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils flag-o-matic versionator games MY_PV=$(replace_version_separator 1 '' ) DESCRIPTION="Enhanced engine for iD Software's Quake 1" HOMEPAGE="http://icculus.org/twilight/darkplaces/" SRC_URI="http://icculus.org/twilight/${PN}/files/${PN}engine${MY_PV}.zip mod? ( http://icculus.org/twilight/${PN}/files/${PN}mod${MY_PV}.zip )" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="alsa cdinstall cdsound dedicated mod opengl oss sdl" RESTRICT="primaryuri strip" RDEPEND="sys-libs/glibc alsa? ( media-libs/alsa-lib ) cdinstall? ( games-fps/quake1-data ) opengl? ( virtual/opengl || ( ( x11-libs/libX11 x11-libs/libXau x11-libs/libXdmcp x11-libs/libXext x11-libs/libXxf86dga x11-libs/libXxf86vm ) virtual/x11 ) ) sdl? ( media-libs/libsdl media-libs/sdl-mixer || ( ( x11-libs/libX11 x11-libs/libXau x11-libs/libXdmcp x11-libs/libXext ) virtual/x11 ) )" DEPEND="${RDEPEND} app-arch/unzip" S=${WORKDIR}/${PN} dir=${GAMES_DATADIR}/quake1 pkg_setup() { games_pkg_setup # A gamer should have opengl and/or sdl in the /etc/make.conf USE flags. # opengl, rather than sdl, is best for this game. (use opengl || use sdl || use dedicated) || \ die "At least one of the USE flags 'opengl', 'sdl' and 'dedicated' are required." } src_unpack() { unpack ${A} cd "${WORKDIR}" unpack ./${PN}*.zip find "${WORKDIR}" -name CVS -type d | xargs rm -r cd "${S}" # Make the game automatically look in the correct data directory sed -i "s:strcpy(fs_basedir, \"\"):strcpy(fs_basedir, \"${dir}\"):" fs.c \ || die "sed fs.c failed" # Only CFLAGS optimization is the -march flag local MARCH=$(get-flag -march) sed -i "s:CPUOPTIMIZATIONS=:CPUOPTIMIZATIONS=${MARCH}:" makefile.inc \ || die "sed MARCH failed" if ! use cdsound ; then sed -i "s:cd_linux:cd_null:" makefile.inc \ || die "sed cdsound failed" fi # Default sound is alsa. if ! use alsa ; then if use oss ; then sed -i "s:DEFAULT_SNDAPI=ALSA:DEFAULT_SNDAPI=OSS:" makefile \ || die "sed oss failed" else sed -i "s:DEFAULT_SNDAPI=ALSA:DEFAULT_SNDAPI=NULL:" makefile \ || die "sed null failed" fi fi } src_compile() { if use opengl ; then emake cl-release || die "emake cl-release failed" fi if use sdl ; then emake sdl-release || die "emake sdl-release failed" fi if use dedicated ; then emake sv-release || die "emake sv-release failed" fi } src_install() { local icon="darkplaces72x72.png" if use opengl ; then dogamesbin ${PN}-glx || die "dogamesbin glx failed" newicon "${icon}" ${PN}.png make_desktop_entry ${PN}-glx "Dark Places" ${PN}.png fi if use sdl ; then dogamesbin ${PN}-sdl || die "dogamesbin sdl failed" if use opengl ; then make_desktop_entry ${PN}-sdl "Dark Places (SDL)" ${PN}.png else newicon "${icon}" ${PN}.png make_desktop_entry ${PN}-sdl "Dark Places" ${PN}.png fi fi if use dedicated ; then newgamesbin ${PN}-dedicated ${PN}-ded || die "newgamesbin ded failed" fi if use mod ; then insinto "${dir}" doins -r "${WORKDIR}"/dpmod || die "doins dpmod failed" fi dodoc ${PN}.txt ChangeLog todo "${WORKDIR}"/{${PN}-cvschangelog,*.qc} prepgamesdirs } pkg_postinst() { games_pkg_postinst if [[ ! -e "${ROOT}/${dir}"/id1/pak0.pak ]] ; then einfo "Put the data files into "${ROOT}${dir}"/id1" echo fi if use mod ; then einfo "To use the mod, start the game with:" einfo " darkplaces- -game dpmod" einfo "e.g. darkplaces-glx -game dpmod" echo fi if use sdl ; then ewarn "If there is an audio delay problem, then try the OpenGL client." echo fi }