%define name quakeforge %define version @VERSION@ %define release 1 %define builddir $RPM_BUILD_DIR/%{name}-%{version} %define HAVE_FBDEV '@HAVE_FBDEV@' %define HAVE_SDL '@HAVE_SDL@' %define HAVE_SVGA '@HAVE_SVGA@' %define HAVE_X11 '@HAVE_X@' %define HAVE_XMMS '@HAVE_XMMS@' %define HAVE_ALSA '@HAVE_ALSA@' %define HAVE_OSS '@HAVE_OSS@' %define BUILD_GL '@CAN_BUILD_GL@' %define BUILD_SW '@CAN_BUILD_SW@' %define fs_sharepath %{_prefix}/share/games/quakeforge Name: %{name} Version: %{version} Release: %{release} Vendor: The QuakeForge Project Packager: The QuakeForge Project quake-devel@lists.sourceforge.net URL: http://www.quakeforge.net/ Source: %{name}-%{version}.tar.gz #Patch: Group: Amusements/Games Copyright: GPL #Icon: Requires: quake-game BuildRoot: /var/tmp/%{name}-%{version} Summary: QuakeForge 3D game engine %description QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %package common Summary: QuakeForge 3D game engine - common files Group: Amusements/Games #Requires: %description common QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %package stub Summary: QuakeForge 3D game engine - common files Group: Amusements/Games #Requires: Provides: quake-game %description stub QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This sub-package provides the quake-game pseudo package. %package utils Summary: QuakeForge 3D game engine - utility programs Group: Amusements/Games #Requires: %description utils QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %package servers Summary: QuakeForge 3D game engine - Server Group: Amusements/Games Requires: quakeforge == %{version}, quakeforge-common == %{version} %description servers QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. #%package master #Summary: QuakeForge 3D game engine - Master Server #Group: Amusements/Games ##Requires: #%description master #QuakeForge is a source port of Quake and QuakeWorld, the successors to id #Software's very popular DOOM series. Its primary development goal is to #remain compatible with the original games released by id Software while #adding portability and optional extensions to enhance gameplay. %if "%{HAVE_FBDEV}"=="'yes'" %package fbdev Summary: QuakeForge 3D game engine - fbdev client Group: Amusements/Games Requires: quakeforge == %{version}, quakeforge-common == %{version} %description fbdev QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %endif %if "%{HAVE_X11}"=="'yes'" %package glx Summary: QuakeForge 3D game engine - glx client Group: Amusements/Games Requires: quakeforge == %{version}, quakeforge-common == %{version} %description glx QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %endif %if "%{HAVE_SDL}"=="'yes'" %package cd-sdl Summary: QuakeForge 3D game engine - SDL CD plugin Group: Amusements/Games #Requires: %description cd-sdl QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %package sdl Summary: QuakeForge 3D game engine - SDL client Group: Amusements/Games Requires: quakeforge == %{version}, quakeforge-common == %{version} %description sdl QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %package sdl32 Summary: QuakeForge 3D game engine - SDL client Group: Amusements/Games Requires: quakeforge == %{version} %description sdl32 QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %package sgl Summary: QuakeForge 3D game engine - SDL-GL client Group: Amusements/Games Requires: quakeforge == %{version} %description sgl QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %endif %if "%{HAVE_SVGA}"=="'yes'" %package svga Summary: QuakeForge 3D game engine - SVGAlib client Group: Amusements/Games Requires: quakeforge == %{version} %description svga QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %endif %if "%{HAVE_X11}"=="'yes'" %package x11 Summary: QuakeForge 3D game engine - X11 client Group: Amusements/Games Requires: quakeforge == %{version} %description x11 QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %endif %if "%{HAVE_ALSA}"=="'yes'" %package snd-alsa Summary: ALSA 0.9 sound plugin for QuakeForge Group: Amusements/Games #Requires: %description snd-alsa QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. The ALSA 0.9 plugin for QuakeForge provides digital audio output for QuakeForge targets that contain clients. %endif %if "%{HAVE_OSS}"=="'yes'" %package snd-oss Summary: OSS sound plugin for QuakeForge Group: Amusements/Games #Requires: %description snd-oss QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. The OSS plugin for QuakeForge provides digital audio output (using OSS/Linux, OSS/Free, or kernel sound) for QuakeForge targets that contain clients. NOTE: This plugin does not work on all systems, since it uses memory-mapped I/O for the output device. If you have trouble, try the quakeforge-alsa package. %endif %if "%{HAVE_SDL}"=="'yes'" %package snd-sdl Summary: SDL sound plugin for QuakeForge Group: Amusements/Games #Requires: %description snd-sdl QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. The SDL plugin for QuakeForge provides digital audio output for QuakeForge targets that contain clients. %endif %if "%{BUILD_GL}"=="'yes'" %package libs-gl Summary: QuakeForge 3D game engine - OpenGL renderer libraries Group: Amusements/Games #Requires: %description libs-gl QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %endif %if "%{BUILD_SW}"=="'yes'" %package libs-sw Summary: QuakeForge 3D game engine - Software renderer libraries Group: Amusements/Games #Requires: %description libs-sw QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %endif %package cd-linux Summary: QuakeForge 3D game engine - linux CD plugin Group: Amusements/Games #Requires: %description cd-linux QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %if "%{HAVE_XMMS}"=="'yes'" %package cd-xmms Summary: QuakeForge 3D game engine - xmms CD plugin Group: Amusements/Games #Requires: %description cd-xmms QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %endif %package devel Summary: QuakeForge 3D game engine - headers and devel libs Group: Amusements/Games Requires: quakeforge-common %description devel QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %package -n qfcc Summary: QuakeForge QC/Ruamoko compiler #FIXME correct group? Group: Amusements/Games Requires: quakeforge-common %description -n qfcc QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. qfcc is QuakeForge's extended qcc compiler. It is mostly compatable with id Software's qcc, but due to extentions and subtle semantics changes, the language it compiles is call Ruamoko. %prep %setup -n %{name}-%{version} #%patch -p1 %build CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix} if test -f /proc/cpuinfo; then make -j`grep processor /proc/cpuinfo | wc -l` else make fi %install if [ -d $RPM_BUILD_ROOT ]; then rm -rf $RPM_BUILD_ROOT; fi mkdir -p $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/etc make install DESTDIR=$RPM_BUILD_ROOT cp RPM/quakeforge.conf $RPM_BUILD_ROOT/etc %clean rm -rf $RPM_BUILD_ROOT %files %doc COPYING INSTALL TODO doc/* %attr(-,root,root) %dir %{fs_sharepath} %attr(-,root,root) %dir %{fs_sharepath}/id1 %attr(-,root,root) %{fs_sharepath}/id1/menu.dat* %files common %attr(-,root,root) /etc/quakeforge.conf %attr(-,root,root) %{_prefix}/lib/libQFcd.so.* %attr(-,root,root) %{_prefix}/lib/libQFconsole.so.* %attr(-,root,root) %{_prefix}/lib/libQFcsqc.so.* %attr(-,root,root) %{_prefix}/lib/libQFgamecode.so.* %attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.so.* %attr(-,root,root) %{_prefix}/lib/libQFjs.so.* %attr(-,root,root) %{_prefix}/lib/libQFmodels.so.* %attr(-,root,root) %{_prefix}/lib/libQFsound.so.* %attr(-,root,root) %{_prefix}/lib/libQFutil.so.* %attr(-,root,root) %{fs_sharepath}/QFplugins/cd_null.so* %attr(-,root,root) %{fs_sharepath}/QFplugins/console_client.so* %attr(-,root,root) %{fs_sharepath}/QFplugins/snd_output_disk.so* %attr(-,root,root) %{fs_sharepath}/QFplugins/snd_render_default.so* %files utils %attr(-,root,root) %{_prefix}/bin/pak %attr(-,root,root) %{_prefix}/bin/qfprogs %attr(-,root,root) %{_prefix}/bin/qfwavinfo %attr(-,root,root) %{_prefix}/man/man1/pak.1.gz #%attr(-,root,root) %{_prefix}/man/man1/qfprogs.1.gz #%attr(-,root,root) %{_prefix}/man/man1/qfwavinfo.1.gz %files stub %post stub if test -f %{fs_sharepath}/id1/pak0.pak; then else echo Warning: %{fs_sharepath}/id1/pak0.pak not found echo Install either the shareware or registered quake data in echo %{fs_sharepath} fi %files servers %attr(-,root,root) %{_prefix}/bin/qw-server %attr(-,root,root) %{_prefix}/bin/nq-server %attr(-,root,root) %{_prefix}/bin/qw-master %attr(-,root,root) %{fs_sharepath}/QFplugins/console_server.so* %files cd-linux %attr(-,root,root) %{fs_sharepath}/QFplugins/cd_linux.so* %if "%{HAVE_SDL}"=="'yes'" %files cd-sdl %attr(-,root,root) %{fs_sharepath}/QFplugins/cd_sdl.so* %endif %if "%{HAVE_XMMS}"=="'yes'" %files cd-xmms %attr(-,root,root) %{fs_sharepath}/QFplugins/cd_xmms.so* %endif %if "%{HAVE_FBDEV}"=="'yes'" %files fbdev %attr(-,root,root) %{_prefix}/bin/qw-client-fbdev %attr(-,root,root) %{_prefix}/bin/nq-fbdev %endif %if "%{HAVE_X11}"=="'yes'" %files glx %attr(-,root,root) %{_prefix}/bin/qw-client-glx %attr(-,root,root) %{_prefix}/bin/nq-glx %endif %if "%{HAVE_SDL}"=="'yes'" %files sdl %attr(-,root,root) %{_prefix}/bin/qw-client-sdl %attr(-,root,root) %{_prefix}/bin/nq-sdl %files sdl32 %attr(-,root,root) %{_prefix}/bin/qw-client-sdl32 %attr(-,root,root) %{_prefix}/bin/nq-sdl32 %files sgl %attr(-,root,root) %{_prefix}/bin/qw-client-sgl %attr(-,root,root) %{_prefix}/bin/nq-sgl %endif %if "%{HAVE_SVGA}"=="'yes'" %files svga %attr(4755,root,root) %{_prefix}/bin/qw-client-svga %attr(4755,root,root) %{_prefix}/bin/nq-svga %endif %if "%{HAVE_X11}"=="'yes'" %files x11 %attr(-,root,root) %{_prefix}/bin/qw-client-x11 %attr(-,root,root) %{_prefix}/bin/nq-x11 %endif %if "%{HAVE_ALSA}"=="'yes'" %files snd-alsa %attr(-,root,root) %{fs_sharepath}/QFplugins/snd_output_alsa0_9.so* %endif %if "%{HAVE_OSS}"=="'yes'" %files snd-oss %attr(-,root,root) %{fs_sharepath}/QFplugins/snd_output_oss.so* %endif %if "%{HAVE_SDL}"=="'yes'" %files snd-sdl %attr(-,root,root) %{fs_sharepath}/QFplugins/snd_output_sdl.so* %endif %if "%{BUILD_GL}"=="'yes'" %files libs-gl %attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.so.* %attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.so.* %endif %if "%{BUILD_SW}"=="'yes'" %files libs-sw %attr(-,root,root) %{_prefix}/lib/libQFmodels_sw.so.* %if "%{HAVE_SDL}"=="'yes'" %attr(-,root,root) %{_prefix}/lib/libQFrenderer_sw32.so.* %endif %endif %files devel %attr(-,root,root) %{_prefix}/lib/libQFcd.a %attr(-,root,root) %{_prefix}/lib/libQFcd.la %attr(-,root,root) %{_prefix}/lib/libQFcd.so %attr(-,root,root) %{_prefix}/lib/libQFconsole.a %attr(-,root,root) %{_prefix}/lib/libQFconsole.la %attr(-,root,root) %{_prefix}/lib/libQFconsole.so %attr(-,root,root) %{_prefix}/lib/libQFcsqc.a %attr(-,root,root) %{_prefix}/lib/libQFcsqc.la %attr(-,root,root) %{_prefix}/lib/libQFcsqc.so %attr(-,root,root) %{_prefix}/lib/libQFgamecode.a %attr(-,root,root) %{_prefix}/lib/libQFgamecode.la %attr(-,root,root) %{_prefix}/lib/libQFgamecode.so %attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.a %attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.la %attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.so %attr(-,root,root) %{_prefix}/lib/libQFjs.a %attr(-,root,root) %{_prefix}/lib/libQFjs.la %attr(-,root,root) %{_prefix}/lib/libQFjs.so %attr(-,root,root) %{_prefix}/lib/libQFmodels.a %attr(-,root,root) %{_prefix}/lib/libQFmodels.la %attr(-,root,root) %{_prefix}/lib/libQFmodels.so %if "%{BUILD_GL}"=="'yes'" %attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.a %attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.la %attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.so %attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.a %attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.la %attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.so %endif %if "%{BUILD_SW}"=="'yes'" %attr(-,root,root) %{_prefix}/lib/libQFmodels_sw.a %attr(-,root,root) %{_prefix}/lib/libQFmodels_sw.la %attr(-,root,root) %{_prefix}/lib/libQFmodels_sw.so %if "%{HAVE_SDL}"=="'yes'" %attr(-,root,root) %{_prefix}/lib/libQFrenderer_sw32.a %attr(-,root,root) %{_prefix}/lib/libQFrenderer_sw32.la %attr(-,root,root) %{_prefix}/lib/libQFrenderer_sw32.so %endif %endif %attr(-,root,root) %{_prefix}/lib/libQFsound.a %attr(-,root,root) %{_prefix}/lib/libQFsound.la %attr(-,root,root) %{_prefix}/lib/libQFsound.so %attr(-,root,root) %{_prefix}/lib/libQFutil.a %attr(-,root,root) %{_prefix}/lib/libQFutil.la %attr(-,root,root) %{_prefix}/lib/libQFutil.so %attr(-,root,root) %{_prefix}/include/QF/GL/*.h %attr(-,root,root) %{_prefix}/include/QF/*.h %attr(-,root,root) %{_prefix}/include/QF/plugin/*.h %files -n qfcc %attr(-,root,root) %{_prefix}/bin/qfcc %attr(-,root,root) %{_prefix}/man/man1/qfcc.1.gz