mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-10 23:32:09 +00:00
468 lines
16 KiB
RPMSpec
468 lines
16 KiB
RPMSpec
%define name quakeforge
|
|
%define qfversion @VERSION@
|
|
%define rpmversion @RPMVERSION@
|
|
%define release 1
|
|
%define builddir $RPM_BUILD_DIR/%{name}-%{qfversion}
|
|
|
|
%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 ALSA_PLUGIN 'snd_output_@ALSA_PLUGIN@'
|
|
|
|
%define fs_sharepath %{_prefix}/share/games/quakeforge
|
|
|
|
Name: %{name}
|
|
Version: %{rpmversion}
|
|
Release: %{release}
|
|
Vendor: The QuakeForge Project
|
|
Packager: The QuakeForge Project quakeforge-devel@lists.quakeforge.net
|
|
URL: http://www.quakeforge.net/
|
|
Source: %{name}-%{qfversion}.tar.gz
|
|
#Patch:
|
|
Group: Amusements/Games
|
|
License: GPL
|
|
#Icon:
|
|
Requires: quakeforge-common, quake-game
|
|
BuildRoot: /var/tmp/%{name}-%{qfversion}
|
|
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.
|
|
|
|
This package contains files and shared libraries common to all QuakeForge
|
|
packages.
|
|
|
|
|
|
%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.
|
|
|
|
This package contains headers and static libraries for the development of
|
|
utilities and applications for QuakeForge.
|
|
|
|
%if "%{HAVE_SDL}"=="'yes'"
|
|
%package sdl-common
|
|
Summary: QuakeForge 3D game engine - SDL client
|
|
Group: Amusements/Games
|
|
Requires: quakeforge == %{rpmversion}, quakeforge-common == %{rpmversion}
|
|
%description sdl-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.
|
|
|
|
This package contains the common files for the SDL quakeforge packages.
|
|
|
|
%package sdl
|
|
Summary: QuakeForge 3D game engine - SDL client
|
|
Group: Amusements/Games
|
|
Requires: quakeforge == %{rpmversion}, quakeforge-common == %{rpmversion}, quakeforge-sdl-common == %{rpmversion}
|
|
%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.
|
|
|
|
This package contains the SDL versions of the QuakeWorld client and
|
|
standalone engine.
|
|
|
|
%package sgl
|
|
Summary: QuakeForge 3D game engine - SDL-GL client
|
|
Group: Amusements/Games
|
|
Requires: quakeforge == %{rpmversion}, quakeforge-common == %{rpmversion}, quakeforge-sdl-common == %{rpmversion}
|
|
%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.
|
|
|
|
This package contains the SDL-GL versions of the QuakeForge client and
|
|
standalone engine.
|
|
%endif
|
|
|
|
%if "%{HAVE_SVGA}"=="'yes'"
|
|
%package svga
|
|
Summary: QuakeForge 3D game engine - SVGAlib client
|
|
Group: Amusements/Games
|
|
Requires: quakeforge == %{rpmversion}
|
|
%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.
|
|
|
|
This package contains the SVGAlib versions of the QuakeWorld client and
|
|
standalone engine.
|
|
%endif
|
|
|
|
%if "%{HAVE_X11}"=="'yes'"
|
|
%package x11
|
|
Summary: QuakeForge 3D game engine - X11 client
|
|
Group: Amusements/Games
|
|
Requires: quakeforge == %{rpmversion}
|
|
%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.
|
|
|
|
This package contains the X11 versions of the QuakeForge client and
|
|
standalone engine.
|
|
%endif
|
|
|
|
%if "%{HAVE_X11}"=="'yes'"
|
|
%package glx
|
|
Summary: QuakeForge 3D game engine - glx client
|
|
Group: Amusements/Games
|
|
Requires: quakeforge == %{rpmversion}, quakeforge-common == %{rpmversion}
|
|
%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.
|
|
|
|
This package contains the GLX versions of the QuakeForge client and
|
|
standalone engine.
|
|
%endif
|
|
|
|
%package servers
|
|
Summary: QuakeForge 3D game engine - Server
|
|
Group: Amusements/Games
|
|
Requires: quakeforge == %{rpmversion}, quakeforge-common == %{rpmversion}
|
|
%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.
|
|
|
|
This package contains both the QuakeWorld-compatible and
|
|
NetQuake-compatible dedicated servers, as well as a simple
|
|
QuakeWorld-compatible master server.
|
|
|
|
%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.
|
|
|
|
This package contains the shared libraries needed to use the software
|
|
rendering targets.
|
|
%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.
|
|
|
|
This package contains the shared libraries needed to use the OpenGL
|
|
rendering targets.
|
|
%endif
|
|
|
|
%if "%{HAVE_OSS}"=="'yes'"
|
|
%package oss
|
|
Summary: OSS sound plugin for QuakeForge
|
|
Group: Amusements/Games
|
|
#Requires:
|
|
%description oss
|
|
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_ALSA}"=="'yes'"
|
|
%package alsa
|
|
Summary: ALSA sound plugin for QuakeForge
|
|
Group: Amusements/Games
|
|
#Requires:
|
|
%description alsa
|
|
The ALSA plugin for QuakeForge provides digital audio output for QuakeForge
|
|
targets that contain clients.
|
|
%endif
|
|
|
|
%package utils
|
|
Summary: QuakeForge 3D game engine - utility programs
|
|
Group: Amusements/Games
|
|
#Requires:
|
|
%description utils
|
|
This package contains several tools for use with QuakeForge:
|
|
* pak, a pakfile management tool.
|
|
* zpak, a script for compressing pakfiles.
|
|
* qfprogs, a "nm" tool for examining progs data files.
|
|
* qfwavinfo, a tool to assist in converting "looped" WAV files to Ogg
|
|
Vorbis.
|
|
|
|
|
|
%package maptools
|
|
Summary: QuakeForge 3D game engine - headers and devel libs
|
|
Group: Amusements/Games
|
|
Requires: quakeforge-common
|
|
%description maptools
|
|
This package contains QuakeForge's versions of the tools Id Software used
|
|
to create maps for the Quake engine. Included are:
|
|
|
|
* qfbsp, a program for compiling a map file into a BSP tree.
|
|
* qflight, a program for generating lightmaps from the static lights in a
|
|
BSP file.
|
|
* qfvis, a program for generating the Possibly-Visible Set information from
|
|
a BSP and a portal information file (generated by qfbsp).
|
|
|
|
%package -n qfcc
|
|
Summary: QuakeForge QC/Ruamoko compiler
|
|
#FIXME correct group?
|
|
Group: Amusements/Games
|
|
Requires: quakeforge-common
|
|
%description -n qfcc
|
|
QFCC is an optimizing byte-code compiler for the Ruamoko language, a language
|
|
based strongly on Id Software's QuakeC. The bytecode interpreter for QuakeC
|
|
and Ruamoko is located inside the Quake engine (though there is a standalone
|
|
interpreter available).
|
|
|
|
QFCC is designed to work with the QuakeForge engines, but will work with
|
|
most non-QuakeForge servers with a couple of changes to its command-line
|
|
options.
|
|
|
|
%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.
|
|
|
|
%prep
|
|
%setup -n %{name}-%{qfversion}
|
|
#%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
|
|
mkdir -p $RPM_BUILD_ROOT/%{fs_sharepath}/id1
|
|
rm $RPM_BUILD_ROOT/usr/lib/quakeforge/*.{a,la}
|
|
rm $RPM_BUILD_ROOT/usr/bin/hw-master
|
|
rm $RPM_BUILD_ROOT/usr/bin/nq-fbdev
|
|
rm $RPM_BUILD_ROOT/usr/bin/nq-sdl32
|
|
rm $RPM_BUILD_ROOT/usr/bin/qtv
|
|
rm $RPM_BUILD_ROOT/usr/bin/qw-client-fbdev
|
|
rm $RPM_BUILD_ROOT/usr/bin/qw-client-sdl32
|
|
rm $RPM_BUILD_ROOT/usr/lib/libQFrenderer_sw32.*
|
|
|
|
%clean
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
|
|
|
|
|
%files
|
|
%doc COPYING INSTALL TODO doc/*
|
|
|
|
%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/libQFgamecode.so.*
|
|
%attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.so.*
|
|
%attr(-,root,root) %{_prefix}/lib/libQFgib.so.*
|
|
%attr(-,root,root) %{_prefix}/lib/libQFimage.so.*
|
|
%attr(-,root,root) %{_prefix}/lib/libQFjs.so.*
|
|
%attr(-,root,root) %{_prefix}/lib/libQFmodels.so.*
|
|
%attr(-,root,root) %{_prefix}/lib/libQFruamoko.so.*
|
|
%attr(-,root,root) %{_prefix}/lib/libQFsound.so.*
|
|
%attr(-,root,root) %{_prefix}/lib/libQFutil.so.*
|
|
%attr(-,root,root) %{_prefix}/lib/quakeforge/cd_file.so*
|
|
%attr(-,root,root) %{_prefix}/lib/quakeforge/cd_linux.so*
|
|
%attr(-,root,root) %{_prefix}/lib/quakeforge/console_client.so*
|
|
%attr(-,root,root) %{_prefix}/lib/quakeforge/snd_output_disk.so*
|
|
%attr(-,root,root) %{_prefix}/lib/quakeforge/snd_render_default.so*
|
|
%attr(-,root,root) %{fs_sharepath}/QF/menu.*
|
|
|
|
%files devel
|
|
%attr(-,root,root) %{_prefix}/lib/libQFcd.*a
|
|
%attr(-,root,root) %{_prefix}/lib/libQFcd.so
|
|
%attr(-,root,root) %{_prefix}/lib/libQFconsole.*a
|
|
%attr(-,root,root) %{_prefix}/lib/libQFconsole.so
|
|
%attr(-,root,root) %{_prefix}/lib/libQFgamecode.*a
|
|
%attr(-,root,root) %{_prefix}/lib/libQFgamecode.so
|
|
%attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.*a
|
|
%attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.so
|
|
%attr(-,root,root) %{_prefix}/lib/libQFgib.*a
|
|
%attr(-,root,root) %{_prefix}/lib/libQFgib.so
|
|
%attr(-,root,root) %{_prefix}/lib/libQFimage.*a
|
|
%attr(-,root,root) %{_prefix}/lib/libQFimage.so
|
|
%attr(-,root,root) %{_prefix}/lib/libQFjs.*a
|
|
%attr(-,root,root) %{_prefix}/lib/libQFjs.so
|
|
%attr(-,root,root) %{_prefix}/lib/libQFmodels.*a
|
|
%attr(-,root,root) %{_prefix}/lib/libQFmodels.so
|
|
%attr(-,root,root) %{_prefix}/lib/libQFruamoko.*a
|
|
%attr(-,root,root) %{_prefix}/lib/libQFruamoko.so
|
|
%attr(-,root,root) %{_prefix}/lib/libQFsound.*a
|
|
%attr(-,root,root) %{_prefix}/lib/libQFsound.so
|
|
%attr(-,root,root) %{_prefix}/lib/libQFutil.*a
|
|
%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
|
|
%if "%{BUILD_GL}"=="'yes'"
|
|
%attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.*a
|
|
%attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.so
|
|
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.*a
|
|
%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.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.*
|
|
%endif
|
|
|
|
%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) %{_prefix}/bin/hw-master
|
|
%attr(-,root,root) %{_prefix}/lib/quakeforge/console_server.so*
|
|
|
|
%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-common
|
|
%attr(-,root,root) %{_prefix}/lib/quakeforge/cd_sdl.so
|
|
%attr(-,root,root) %{_prefix}/lib/quakeforge/snd_output_sdl.so
|
|
|
|
%files sdl
|
|
%attr(-,root,root) %{_prefix}/bin/qw-client-sdl
|
|
%attr(-,root,root) %{_prefix}/bin/nq-sdl
|
|
|
|
%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 alsa
|
|
%attr(-,root,root) %{_prefix}/lib/quakeforge/%{ALSA_PLUGIN}.so*
|
|
%endif
|
|
|
|
%if "%{HAVE_OSS}"=="'yes'"
|
|
%files oss
|
|
%attr(-,root,root) %{_prefix}/lib/quakeforge/snd_output_oss.so*
|
|
%endif
|
|
|
|
%files -n qfcc
|
|
%attr(-,root,root) %{_prefix}/bin/qfcc
|
|
%attr(-,root,root) %{_prefix}/bin/qfpreqcc
|
|
%attr(-,root,root) %{_prefix}/man/man1/qfcc.1.gz
|
|
%attr(-,root,root) %{_prefix}/include/QF/ruamoko/*
|
|
%attr(-,root,root) %{_prefix}/lib/ruamoko/*
|
|
|
|
%files utils
|
|
%attr(-,root,root) %{_prefix}/bin/pak
|
|
%attr(-,root,root) %{_prefix}/bin/zpak
|
|
%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 maptools
|
|
%attr(-,root,root) %{_prefix}/bin/bsp2img
|
|
%attr(-,root,root) %{_prefix}/bin/qfbsp
|
|
%attr(-,root,root) %{_prefix}/bin/qflight
|
|
%attr(-,root,root) %{_prefix}/bin/qfmodelgen
|
|
%attr(-,root,root) %{_prefix}/bin/qfvis
|
|
%attr(-,root,root) %{_prefix}/bin/wad
|
|
%attr(-,root,root) %{_prefix}/man/man1/qflight.1.gz
|
|
%attr(-,root,root) %{_prefix}/man/man1/qfvis.1.gz
|
|
%attr(-,root,root) %{_prefix}/man/man1/wad.1.gz
|
|
|
|
%files stub
|
|
%attr(-,root,root) %dir %{fs_sharepath}
|
|
%attr(-,root,root) %dir %{fs_sharepath}/id1
|
|
|
|
%post stub
|
|
if test ! -f %{fs_sharepath}/id1/pak0.pak; then
|
|
echo Warning: %{fs_sharepath}/id1/pak0.pak not found
|
|
echo Install either the shareware or registered quake data in
|
|
echo %{fs_sharepath}
|
|
fi
|