| # Copyright 1999-2013 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| inherit eutils flag-o-matic gnome2-utils games |
| |
| EDITION="collect_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/sauerbraten/sauerbraten/2013_01_04/sauerbraten_${PV//./_}_${EDITION}_linux.tar.bz2" |
| |
| LICENSE="ZLIB freedist" |
| SLOT="0" |
| KEYWORDS="amd64 x86" |
| IUSE="debug dedicated server" |
| |
| RDEPEND=" |
| sys-libs/zlib |
| >=net-libs/enet-1.3.6:1.3 |
| !dedicated? ( |
| media-libs/libsdl[X,opengl] |
| media-libs/sdl-mixer[vorbis] |
| media-libs/sdl-image[png,jpeg] |
| virtual/opengl |
| virtual/glu |
| x11-libs/libX11 )" |
| DEPEND="${RDEPEND}" |
| |
| S=${WORKDIR}/${PN} |
| |
| src_prepare() { |
| ecvs_clean |
| rm -rf sauerbraten_unix bin_unix src/{include,lib,vcpp} |
| |
| # Patch makefile to use system enet instead of bundled |
| # respect CXXFLAGS, LDFLAGS |
| epatch "${FILESDIR}"/${P}-{system-enet,QA,master}.patch |
| |
| # Fix links so they point to the correct directory |
| sed -i \ |
| -e 's:docs/::' \ |
| README.html \ |
| || die |
| } |
| |
| src_compile() { |
| use debug && append-cppflags -D_DEBUG |
| emake -C src master $(usex dedicated "server" "$(usex server "server client" "client")") |
| } |
| |
| src_install() { |
| local LIBEXECDIR="${GAMES_PREFIX}/lib" |
| local DATADIR="${GAMES_DATADIR}/${PN}" |
| local STATEDIR="${GAMES_STATEDIR}/${PN}" |
| |
| if ! use dedicated ; then |
| # Install the game data |
| insinto "${DATADIR}" |
| doins -r data packages |
| |
| # Install the client executable |
| exeinto "${LIBEXECDIR}" |
| doexe src/sauer_client |
| |
| # Install the client wrapper |
| games_make_wrapper "${PN}-client" "${LIBEXECDIR}/sauer_client -q\$HOME/.${PN} -r" "${DATADIR}" |
| |
| # Create menu entry |
| newicon -s 256 data/cube.png ${PN}.png |
| make_desktop_entry "${PN}-client" "Cube 2: Sauerbraten" |
| fi |
| |
| # Install the server config files |
| insinto "${STATEDIR}" |
| doins "server-init.cfg" |
| |
| # Install the server executables |
| exeinto "${LIBEXECDIR}" |
| doexe src/sauer_master |
| use dedicated || use server && doexe src/sauer_server |
| |
| games_make_wrapper "${PN}-server" \ |
| "${LIBEXECDIR}/sauer_server -k${DATADIR} -q${STATEDIR}" |
| games_make_wrapper "${PN}-master" \ |
| "${LIBEXECDIR}/sauer_master ${STATEDIR}" |
| |
| # Install the server init script |
| keepdir "${GAMES_STATEDIR}/run/${PN}" |
| cp "${FILESDIR}"/${PN}.init "${T}" || die |
| sed -i \ |
| -e "s:%SYSCONFDIR%:${STATEDIR}:g" \ |
| -e "s:%LIBEXECDIR%:${LIBEXECDIR}:g" \ |
| -e "s:%GAMES_STATEDIR%:${GAMES_STATEDIR}:g" \ |
| "${T}"/${PN}.init || die |
| newinitd "${T}"/${PN}.init ${PN} |
| cp "${FILESDIR}"/${PN}.conf "${T}" || die |
| sed -i \ |
| -e "s:%SYSCONFDIR%:${STATEDIR}:g" \ |
| -e "s:%LIBEXECDIR%:${LIBEXECDIR}:g" \ |
| -e "s:%GAMES_USER_DED%:${GAMES_USER_DED}:g" \ |
| -e "s:%GAMES_GROUP%:${GAMES_GROUP}:g" \ |
| "${T}"/${PN}.conf || die |
| newconfd "${T}"/${PN}.conf ${PN} |
| |
| dodoc src/*.txt docs/dev/*.txt |
| dohtml -r README.html docs/* |
| |
| prepgamesdirs |
| } |
| |
| pkg_preinst() { |
| games_pkg_preinst |
| gnome2_icon_savelist |
| } |
| |
| pkg_postinst() { |
| games_pkg_postinst |
| gnome2_icon_cache_update |
| |
| elog "If you plan to use map editor feature copy all map data from ${DATADIR}" |
| elog "to corresponding folder in your HOME/.${PN}" |
| } |
| |
| pkg_postrm() { |
| gnome2_icon_cache_update |
| } |