# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header$ EAPI="2" WANT_AUTOMAKE="latest" WANT_AUTOCONF="latest" inherit autotools eutils games MY_PV="${PV:0:4}_${PV:4:2}_${PV:6:2}" EDITION="trooper_edition" DESCRIPTION="Cube 2: Sauerbraten is an open source game engine (Cube 2) with freeware game data (Sauerbraten)" HOMEPAGE="http://sauerbraten.org/" SRC_URI="mirror://sourceforge/${PN}/${PN}_${MY_PV}_${EDITION}_linux.tar.bz2" LICENSE="ZLIB freedist" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="debug dedicated doc" DEPEND=" sys-libs/zlib !dedicated? ( media-libs/libsdl[X,opengl] media-libs/sdl-mixer[vorbis] media-libs/sdl-image[png,jpeg] virtual/opengl virtual/glu )" S=${WORKDIR}/${PN} LIBEXECDIR="${GAMES_PREFIX}/libexec" DATADIR="${GAMES_DATADIR}/${PN}" src_prepare() { # Remove cruft # Not technically nessesary, but will guard against some potential trouble ecvs_clean rm -rf "${S}"/sauerbraten_unix "${S}"/bin_unix "${S}"/src/{include,lib,vcpp} # Fix links so they point to the correct directory sed -i "${S}"/README.html \ -e 's:docs/::' \ || die "sed README.html failed" # Recreate the enet configure script cd "${S}/src/enet" eautoreconf chmod +x configure } src_configure() { cd "${S}/src/enet" econf || die "econf enet failed" } src_compile() { cd "${S}/src" if ! use dedicated ; then emake CXXFLAGS="${CXXFLAGS}$(use debug && echo " -D_DEBUG")" client || die "make failed!" fi emake CXXFLAGS="${CXXFLAGS}$(use debug && echo " -D_DEBUG")" server || die "make failed!" emake CXXFLAGS="${CXXFLAGS}$(use debug && echo " -D_DEBUG")" master || die "make failed!" } src_install() { if ! use dedicated ; then # Install the game data insinto "${DATADIR}" doins -r data packages # Install the executable exeinto "${LIBEXECDIR}" doexe src/sauer_client # Install the wrapper games_make_wrapper "${PN}-client" \ "${LIBEXECDIR}/sauer_client -k${DATADIR} -q\$HOME/.${PN} -r" \ "${DATADIR}" # Create menu entry insinto /usr/share/pixmaps doins "data/cube.png" make_desktop_entry "${PN}-client" "Cube 2: Sauerbraten" cube.png "Game;ActionGame" fi # Install the default config files insinto "${DATADIR}"/defaultconfig doins "server-init.cfg" # Install server executables exeinto "${LIBEXECDIR}" doexe src/sauer_{server,master} # Install the server wrapper local tmpserverwrapper=$(emktemp) cat << EOF > "${tmpserverwrapper}" #!/bin/sh cd "${DATADIR}" [ -e "\$HOME/.${PN}" ] || mkdir -p "\$HOME/.${PN}" [ -e "\$HOME/.${PN}"/server-init.cfg ] || cp "${DATADIR}"/defaultconfig/server-init.cfg "\$HOME/.${PN}" exec ${LIBEXECDIR}/sauer_server -k"${DATADIR}" -q"\$HOME/.${PN}" "\$@" EOF newgamesbin "${tmpserverwrapper}" "sauerbraten-server" # Install the master wrapper local tmpmasterwrapper=$(emktemp) cat << EOF > "${tmpmasterwrapper}" #!/bin/sh if [ "\$#" = 0 ] ; then [ -e "\$HOME/.${PN}" ] || mkdir -p "\$HOME/.${PN}" exec ${LIBEXECDIR}/sauer_master "\$HOME/.${PN}/" else exec ${LIBEXECDIR}/sauer_master "\$@" fi EOF newgamesbin "${tmpmasterwrapper}" "sauerbraten-master" if use doc ; then dodoc src/*.txt docs/dev/*.txt dohtml -r README.html docs/* fi prepgamesdirs }