Import RPM spec file

This commit is contained in:
Kp 2019-08-29 02:40:32 +00:00
parent 9bb6a95e90
commit 6629711b59
1 changed files with 208 additions and 0 deletions

View File

@ -0,0 +1,208 @@
# This spec file accepts the following RPM macros to influence what is built and how the build is invoked:
# _datarootdir: standard use; controls where to find game data files
# Note that this is only a default. The games can be told at runtime to
# search an additional directory.
# _prefix: standard use
# use_d1x: Define to 0 to skip building Descent 1. Define to 1 to build Descent 1. If undefined, assume 1.
# use_d2x: Define to 0 to skip building Descent 2. Define to 1 to build Descent 2. If undefined, assume 1.
# use_opengl: Define to 0 to skip building the OpenGL-enabled renderer. Define to 1 to build the OpenGL-enabled renderer. Most people will want this renderer. If undefined, assume 1.
# use_sdl: Define to 0 to skip building the SDL-only renderer. Define to 1 to build the SDL-only renderer. Most people will not want this renderer. If undefined, assume 0.
# ccache: Define to an empty string to disable ccache. Define to the path to ccache to use ccache. If undefined, $(type -p ccache) is used to search for ccache. If no ccache is found, then the build runs without ccache.
# __nprocs: number of concurrent build jobs to run. If undefined, job runs with SCons default (one job at a time).
# _host: CHOST. If defined, SConstruct will automatically use CHOST-qualified names for tools. If undefined, unqualified names are used.
#
# You cannot disable both d1x and d2x, because that would build nothing.
# You cannot disable both sdl and opengl, because that would build nothing.
Summary: Source port of Descent 1 and Descent 2
Name: dxx-rebirth
Version: 0.60_beta2_pre20190815
Release: 1
License: DXX-Rebirth
Group: Games/Arcade
Url: https://www.dxx-rebirth.com
Source: %{name}_v%{version}-src.tar.gz
# SDL libraries are required in both the SDL-only build and the OpenGL-enabled build.
BuildRequires: gcc-c++ libSDL-devel libSDL_mixer-devel libphysfs-devel scons
# If _datarootdir is unset, pretend it has the value of _prefix/share.
# Set _dxx_base_sharepath to _datarootdir/games
# Set _d1x_sharepath / _d2x_sharepath from that, and use those for the individual
# games.
%global _dxx_base_sharepath %{?_datarootdir:%_datarootdir}%{?!_datarootdir:%_prefix/share}/games
%global _use_d1x %{?use_d1x}%{?!use_d1x:1}
%global _use_d2x %{?use_d2x}%{?!use_d2x:1}
%global _use_opengl %{?use_opengl}%{?!use_opengl:1}
%global _use_sdl %{?use_sdl}%{?!use_sdl:0}
%if %{_use_opengl}
BuildRequires: libGL-devel
%endif
%if %{_use_d1x}
%global _d1x_sharepath %_dxx_base_sharepath/descent
%package -n d1x-rebirth
Summary: Supporting files for D1X-Rebirth
%description -n d1x-rebirth
Supporting files for D1X-Rebirth
%if %{_use_opengl}
%package -n d1x-rebirth-gl
Requires: d1x-rebirth
Summary: Descent 1 for Linux, OpenGL version
%description -n d1x-rebirth-gl
OpenGL-enabled source port of Descent 1.
%endif
%if %{_use_sdl}
%package -n d1x-rebirth-sdl
Requires: d1x-rebirth
Summary: Descent 1 for Linux, SDL version
%description -n d1x-rebirth-sdl
SDL-only source port of Descent 1.
%endif
%endif
%description
Empty top-level package to define the subpackages for D1X-Rebirth and D2X-Rebirth, SDL and GL variants.
- d1x-rebirth-gl
- d1x-rebirth-sdl
- d2x-rebirth-gl
- d2x-rebirth-sdl
%if %{_use_d2x}
%global _d2x_sharepath %_dxx_base_sharepath/descent2
%package -n d2x-rebirth
Summary: Supporting files for D2X-Rebirth
%description -n d2x-rebirth
Supporting files for D2X-Rebirth
%if %{_use_opengl}
%package -n d2x-rebirth-gl
Requires: d2x-rebirth
Summary: Descent 2 for Linux, OpenGL version
%description -n d2x-rebirth-gl
OpenGL-enabled source port of Descent 2.
%endif
%if %{_use_sdl}
%package -n d2x-rebirth-sdl
Requires: d2x-rebirth
Summary: Descent 2 for Linux, SDL version
%description -n d2x-rebirth-sdl
SDL-only source port of Descent 2.
%endif
%endif
%prep
%setup -n %{name}_v%{version}-src
%build
%if %{_use_d1x}
%if %{_use_d2x}
%define _requested_games dxx
%else
%define _requested_games d1x
%endif
%else
%if %{_use_d2x}
%define _requested_games d2x
%else
return 1
%error You must enable at least one game. Define use_d1x=1, use_d2x=1, or both.
%endif
%endif
%if !%{_use_sdl} && !%{_use_opengl}
%error You must enable at least one renderer. Define use_sdl=1, use_opengl=1, or both.
%endif
# Use a function so that variables can be made local and `set` does not clobber
# global arguments.
build_with_use() {
local ccache
set --
ccache="%{?ccache}%{?!ccache:$(type -p ccache)}"
if [[ -n "$ccache" ]]; then
set -- "ccache=$ccache"
fi
%define arguments_dxx() \\\
%if %{expand:%{_use_%{1}}} \
%if %{_use_opengl} \
%{1}_ogl_program_name=%{1}-rebirth-gl \\\
%endif \
%if %{_use_sdl} \
%{1}_sdl_program_name=%{1}-rebirth-sdl \\\
%endif \
%{1}_sharepath=%{expand:%{_%{1}_sharepath}} \\\
%endif
scons %{?__nprocs:"-j%__nprocs"} \
%{?_host:"CHOST=%_host"} \
"$@" \
builddir_prefix=build/ \
%{arguments_dxx d1x} \
%{arguments_dxx d2x} \
%if %{_use_sdl}
sdl_opengl=0 \
%_requested_games=sdl, \
%endif
%if %{_use_opengl}
%_requested_games=ogl, \
%endif
sdlmixer=1 \
"prefix=%{_prefix}" \
"DESTDIR=%{buildroot}" \
verbosebuild=1 \
install
}
build_with_use
%install
%if %{_use_d1x}
install -dm 755 %buildroot%_d1x_sharepath \
%buildroot%_d1x_sharepath/missions
%endif
%if %{_use_d2x}
install -dm 755 %buildroot%_d2x_sharepath \
%buildroot%_d2x_sharepath/missions
%endif
%if %{_use_d1x}
%files -n d1x-rebirth
%doc d1x-rebirth/d1x.ini COPYING.txt d1x-rebirth/RELEASE-NOTES.txt
%dir %_d1x_sharepath
%dir %_d1x_sharepath/missions
%if %{_use_sdl}
%files -n d1x-rebirth-sdl
%_bindir/d1x-rebirth-sdl
%endif
%if %{_use_opengl}
%files -n d1x-rebirth-gl
%_bindir/d1x-rebirth-gl
%endif
%endif
%if %{_use_d2x}
%files -n d2x-rebirth
%doc d2x-rebirth/d2x.ini COPYING.txt d2x-rebirth/RELEASE-NOTES.txt
%dir %_d2x_sharepath
%dir %_d2x_sharepath/missions
%if %{_use_sdl}
%files -n d2x-rebirth-sdl
%_bindir/d2x-rebirth-sdl
%endif
%if %{_use_opengl}
%files -n d2x-rebirth-gl
%_bindir/d2x-rebirth-gl
%endif
%endif