# Copyright 1999-2002 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: $ DESCRIPTION="relnev's Quake 2 source-port" HOMEPAGE="www.icculus.org/quake2/" SRC_URI="http://www.icculus.org/quake2/files/quake2-r0.15.tar.gz ftp://ftp.idsoftware.com/idstuff/quake2/source/xatrixsrc320.shar.Z ftp://ftp.idsoftware.com/idstuff/quake2/source/roguesrc320.shar.Z" LICENSE="GPL-2" IUSE="X aalib arts opengl sdl svga" SLOT="0" KEYWORDS="x86" DEPEND="X? ( virtual/x11 ) aalib? ( media-libs/aalib ) arts? ( kde-base/arts ) opengl? ( virtual/opengl ) sdl? ( media-libs/libsdl ) svga? ( media-libs/svgalib )" S=${WORKDIR}/quake2-r0.15 src_unpack() { # Unpack the base tarball tar -zxf ${DISTDIR}/quake2-r0.15.tar.gz # Make the add-on directories mkdir -p quake2-r0.15/src/rogue quake2-r0.15/src/xatrix # Unpack the Rogue source zcat ${DISTDIR}/roguesrc320.shar.Z \ |sed -e 's/$shar_touch -am 1130175398/$shar_touch -t 199811301753.00/' |tail +454 >roguesrc320.shar || die sh roguesrc320.shar || die mv Makefile quake2-r0.15/src/rogue/ && mv *.[c,h] quake2-r0.15/src/rogue/ # Fix compile failure cp quake2-r0.15/src/rogue/g_local.h \ quake2-r0.15/src/rogue/g_local.h.original sed -e 's/#define _isnan(a) ((a)==NAN)/#define _isnan(a) isnan(a)/' \ -e 's/#include /#include /' \ < quake2-r0.15/src/rogue/g_local.h.original > \ quake2-r0.15/src/rogue/g_local.h || die # Unpack the Xatrix source zcat ${DISTDIR}/xatrixsrc320.shar.Z \ |sed -e "s/$shar_touch -am 1130175598/$shar_touch -t 199912312359.00/" |tail +441 >xatrixsrc320.shar sh xatrixsrc320.shar || die mv Makefile quake2-r0.15/src/xatrix/ && mv *.[c,h] quake2-r0.15/src/xatrix/ rm *.shar } src_compile() { # Modify the Makefile: mv Makefile Makefile.original || die tail +30 Makefile.original >Makefile ######### Mine Ends if [ `use sdl` ] ; then BUILD_SDL=YES ; BUILD_SDLQUAKE2=YES else BUILD_SDL=NO ; BUILD_SDLQUAKE2=NO fi use X \ && BUILD_X11=YES \ || BUILD_X11=NO use opengl && opengl=1 if [[ (${opengl}) && ${BUILD_X11} == 'YES' ]]; then BUILD_GLX=YES; else BUILD_GLX=NO; fi use svga \ && BUILD_SVGA=YES \ || BUILD_SVGA=NO if [[ ${BUILD_SDL} == 'YES' && ${opengl} ]]; then BUILD_SDLGL=YES else BUILD_SDLGL=NO fi use arts \ && BUILD_ARTS=YES \ || BUILD_ARTS=NO # Does not work with gcc2, but does with gcc3. use aalib \ && BUILD_AA=YES \ || BUILD_AA=NO if [[ ${BUILD_SDL} == 'NO' && ${BUILD_X11} == 'NO' \ && ${BUILD_AA} == 'NO' \ && ${BUILD_SVGA} == 'NO' ]]; then einfo "You do realize, of course, that you need to enable something" einfo "to display quake2 with? Try SDL or SVGA or X." die; fi local=myconf myconf="BUILD_DEDICATED=YES \ BUILD_ROGUE=YES \ BUILD_XATRIX=YES \ BUILD_AA=${BUILD_AA} \ BUILD_ARTS=${BUILD_ARTS} \ BUILD_GLX=${BUILD_GLX} \ BUILD_QMAX=NO \ BUILD_SDL=${BUILD_SDL} \ BUILD_SDLGL=${BUILD_SDLGL} \ BUILD_SDLQUAKE2=${BUILD_SDLQUAKE2} \ BUILD_SVGA=${BUILD_SVGA} \ BUILD_X11=${BUILD_X11}" # Make with multiple thread options emake build_release ${myconf} || die } src_install () { # Make the directories dodir /usr/bin dodir /usr/share/games/quake2-relnev dodir /usr/share/games/quake2-relnev/baseq2 dodir /usr/share/games/quake2-relnev/ctf dodir /usr/share/games/quake2-relnev/rogue dodir /usr/share/games/quake2-relnev/xatrix # Install the files # Scripts first ... newbin ${FILESDIR}/q2ded-relnev.start q2ded-relnev newbin ${FILESDIR}/quake2-relnev.start quake2-relnev newbin ${FILESDIR}/sdlquake2-relnev.start sdlquake2-relnev # Now programs and libraries exeinto /usr/share/games/quake2-relnev newexe releasei386/quake2 quake2-relnev use sdl && newexe releasei386/sdlquake2 sdlquake2-relnev doexe releasei386/ref_*.so # Now populate baseq2 with symlinks and source-port specific files insinto /usr/share/games/quake2-relnev/baseq2 doins releasei386/gamei386.so #doins ${DISTDIR}/maxpak.pak #Q2MAX dosym /usr/share/games/quake2-data/baseq2/pak0.pak /usr/share/games/quake2-relnev/baseq2/pak0.pak dosym /usr/share/games/quake2-data/baseq2/pak1.pak /usr/share/games/quake2-relnev/baseq2/pak1.pak dosym /usr/share/games/quake2-data/baseq2/pak2.pak /usr/share/games/quake2-relnev/baseq2/pak2.pak dosym /usr/share/games/quake2-data/baseq2/players /usr/share/games/quake2-relnev/baseq2/players dosym /usr/share/games/quake2-data/baseq2/video /usr/share/games/quake2-relnev/baseq2/video # And the same with the add-on sub-directories ... insinto /usr/share/games/quake2-relnev/ctf doins releasei386/ctf/gamei386.so dosym /usr/share/games/quake2-data/ctf/pak0.pak /usr/share/games/quake2-relnev/ctf/pak0.pak insinto /usr/share/games/quake2-relnev/rogue doins releasei386/rogue/gamei386.so dosym /usr/share/games/quake2-data/rogue/pak0.pak /usr/share/games/quake2-relnev/rogue/pak0.pak dosym /usr/share/games/quake2-data/rogue/video /usr/share/games/quake2-relnev/rogue/video insinto /usr/share/games/quake2-relnev/xatrix doins releasei386/xatrix/gamei386.so dosym /usr/share/games/quake2-data/xatrix/pak0.pak /usr/share/games/quake2-relnev/xatrix/pak0.pak dosym /usr/share/games/quake2-data/xatrix/video /usr/share/games/quake2-relnev/xatrix/video dodoc README TODO readme.txt ${FILESDIR}/README-postinstall } pkg_postinst () { echo einfo " Read /usr/share/games/quake2-relnev/README-postinstall.gz" einfo " for directions on running this." echo einfo " This package only installed the engine - you now need to " einfo " install the data. If it is already installed: " echo einfo " To run the game, use 'quake2-relnev' or 'sdlquake2-relnev'" einfo " if you have SDL support enabled." echo einfo " To use a mod (such as CTF), do" einfo " 'quake2-relnev +set game ' where is the name" einfo " of the mod's directory in /usr/share/games/quake2-data (such as 'ctf')" echo }