# 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}" STATEDIR="${GAMES_STATEDIR}/${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 # TODO: link against net-libs/enet 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" # Create menu entry insinto /usr/share/pixmaps doins "data/cube.png" make_desktop_entry "${PN}-client" "Cube 2: Sauerbraten" cube.png "Game;ActionGame" fi # Add server files to statedir insinto "${STATEDIR}" doins "server-init.cfg" for FILE in master.{cfg,log} ; do touch "${D}${STATEDIR}/${FILE}" || die "touch failed" done # Install server executables exeinto "${LIBEXECDIR}" doexe src/sauer_{server,master} games_make_wrapper "${PN}-server" \ "${LIBEXECDIR}/sauer_server -k${DATADIR} -q${STATEDIR}" games_make_wrapper "${PN}-master" \ "${LIBEXECDIR}/sauer_master ${STATEDIR}" if use doc ; then dodoc src/*.txt docs/dev/*.txt dohtml -r README.html docs/* fi prepgamesdirs }