234 lines
8.9 KiB
RPMSpec
234 lines
8.9 KiB
RPMSpec
%if %{undefined outdir}
|
|
%define outdir out-sailfish.%{_arch}
|
|
%endif
|
|
|
|
%define freetype_version 2.13.3
|
|
%define flac_version 1.4.3
|
|
%define theora_version 1.1.1
|
|
%define jpeg_turbo_version 3.0.4
|
|
%define libmad_version 0.15.1b
|
|
%define libmpeg2_version 0.5.1
|
|
%define libfaad_version 2.8.8
|
|
%define giflib_version 5.2.2
|
|
%define fribidi_version 1.0.16
|
|
%define sdl2_version 2.30.7
|
|
%define vpx_version 1.14.1
|
|
|
|
#define engine_config --disable-all-engines --enable-engines=scumm --disable-tinygl
|
|
%define engine_config %{nil}
|
|
|
|
%define _rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm
|
|
|
|
Name: org.scummvm.scummvm
|
|
Summary: ScummVM: Multi-game engine
|
|
Version: 0
|
|
Release: 1
|
|
Group: Qt/Qt
|
|
License: GPLv3
|
|
URL: https://scummvm.org
|
|
Source0: %{name}-%{version}.tar.bz2
|
|
BuildRequires: pkgconfig(sdl2)
|
|
BuildRequires: SDL2_net-devel
|
|
BuildRequires: pkgconfig(ogg)
|
|
BuildRequires: pkgconfig(vorbis)
|
|
BuildRequires: pkgconfig(libpng)
|
|
BuildRequires: pkgconfig(egl)
|
|
BuildRequires: pkgconfig(glesv2)
|
|
BuildRequires: cmake
|
|
BuildRequires: git
|
|
# libSDL deps
|
|
BuildRequires: pkgconfig(wayland-egl)
|
|
BuildRequires: pkgconfig(wayland-client)
|
|
BuildRequires: pkgconfig(wayland-cursor)
|
|
BuildRequires: pkgconfig(wayland-protocols)
|
|
BuildRequires: pkgconfig(wayland-scanner)
|
|
BuildRequires: pkgconfig(glesv1_cm)
|
|
BuildRequires: pkgconfig(xkbcommon)
|
|
BuildRequires: pkgconfig(libpulse-simple)
|
|
|
|
%description
|
|
ScummVM: Multi-game engine
|
|
|
|
%build
|
|
mkdir -p %{outdir}
|
|
mkdir -p %{outdir}/scummvm
|
|
mkdir -p %{outdir}/pkgconfig
|
|
if ! [ -d %{outdir}/freetype-install ]; then
|
|
cd %{outdir}
|
|
tar xvf ../rpmdeps/freetype-%{freetype_version}.tar.xz
|
|
cd freetype-%{freetype_version}
|
|
./configure --prefix=$PWD/../freetype-install --disable-shared --enable-static
|
|
make %{?_smp_mflags}
|
|
make install
|
|
cd ../..
|
|
fi
|
|
if ! [ -d %{outdir}/flac-install ]; then
|
|
cd %{outdir}
|
|
tar xvf ../rpmdeps/flac-%{flac_version}.tar.xz
|
|
cd flac-%{flac_version}
|
|
./configure --disable-shared --enable-static --disable-examples --disable-programs
|
|
make %{?_smp_mflags}
|
|
make DESTDIR=$PWD/../flac-install INSTALL_ROOT=$PWD/../flac-install install
|
|
cd ../..
|
|
fi
|
|
if ! [ -d %{outdir}/theora-install ]; then
|
|
cd %{outdir}
|
|
tar xvf ../rpmdeps/libtheora-%{theora_version}.tar.xz
|
|
cd libtheora-%{theora_version}
|
|
./configure --disable-shared --enable-static --disable-examples --disable-programs
|
|
make %{?_smp_mflags}
|
|
make DESTDIR=$PWD/../theora-install INSTALL_ROOT=$PWD/../theora-install install
|
|
cd ../..
|
|
fi
|
|
if ! [ -d %{outdir}/jpeg-install ]; then
|
|
cd %{outdir}
|
|
tar xvf ../rpmdeps/libjpeg-turbo-%{jpeg_turbo_version}.tar.gz
|
|
cd libjpeg-turbo-%{jpeg_turbo_version}
|
|
%cmake -DENABLE_SHARED=FALSE
|
|
make %{?_smp_mflags}
|
|
make DESTDIR=$PWD/../jpeg-install INSTALL_ROOT=$PWD/../jpeg-install install
|
|
cd ../..
|
|
fi
|
|
if ! [ -d %{outdir}/libmad-install ]; then
|
|
cd %{outdir}
|
|
tar xvf ../rpmdeps/libmad-%{libmad_version}.tar.gz
|
|
cd libmad-%{libmad_version}
|
|
%if "%{_arch}" == "arm"
|
|
ASFLAGS=-marm CFLAGS="-O2 -marm" ./configure --disable-shared --enable-static --disable-examples --disable-programs CFLAGS="-O2 -marm" ASFLAGS=-marm
|
|
make CFLAGS="-O2 -marm" ASFLAGS=-marm %{?_smp_mflags}
|
|
%else
|
|
CFLAGS="-O2" ./configure --disable-shared --enable-static --disable-examples --disable-programs CFLAGS="-O2"
|
|
make CFLAGS="-O2" %{?_smp_mflags}
|
|
%endif
|
|
make DESTDIR=$PWD/../libmad-install INSTALL_ROOT=$PWD/../libmad-install install
|
|
cd ../..
|
|
fi
|
|
if ! [ -d %{outdir}/mpeg2-install ]; then
|
|
cd %{outdir}
|
|
tar xvf ../rpmdeps/libmpeg2-%{libmpeg2_version}.tar.gz
|
|
cd libmpeg2-%{libmpeg2_version}
|
|
./configure --disable-shared --enable-static --disable-examples --disable-programs
|
|
make %{?_smp_mflags}
|
|
make DESTDIR=$PWD/../mpeg2-install INSTALL_ROOT=$PWD/../mpeg2-install install
|
|
cd ../..
|
|
fi
|
|
if ! [ -d %{outdir}/faad-install ]; then
|
|
cd %{outdir}
|
|
tar xvf ../rpmdeps/faad2-%{libfaad_version}.tar.gz
|
|
cd faad2-%{libfaad_version}
|
|
echo "Applying patch faad-lrint.patch"
|
|
patch -p1 -i "../../faad-lrint.patch"
|
|
./configure --disable-shared --enable-static --disable-examples --disable-programs
|
|
make %{?_smp_mflags}
|
|
make DESTDIR=$PWD/../faad-install INSTALL_ROOT=$PWD/../faad-install install
|
|
cd ../..
|
|
fi
|
|
if ! [ -d %{outdir}/giflib-install ]; then
|
|
cd %{outdir}
|
|
tar xvf ../rpmdeps/giflib-%{giflib_version}.tar.gz
|
|
cd giflib-%{giflib_version}
|
|
make %{?_smp_mflags} libgif.a
|
|
make DESTDIR=$PWD/../giflib-install INSTALL_ROOT=$PWD/../giflib-install install-include
|
|
install -d "$PWD/../giflib-install/usr/local/lib"
|
|
install -m 644 libgif.a "$PWD/../giflib-install/usr/local/lib/libgif.a"
|
|
cd ../..
|
|
fi
|
|
if ! [ -d %{outdir}/vpx-install ]; then
|
|
cd %{outdir}
|
|
tar xvf ../rpmdeps/libvpx-%{vpx_version}.tar.gz
|
|
cd libvpx-%{vpx_version}
|
|
echo "Applying patch vpx-busybox.patch"
|
|
patch -p1 -i "../../vpx-busybox.patch"
|
|
./configure --disable-shared --enable-static --disable-examples --target=generic-gnu
|
|
make %{?_smp_mflags}
|
|
make DESTDIR=$PWD/../vpx-install INSTALL_ROOT=$PWD/../vpx-install install
|
|
cd ../..
|
|
fi
|
|
if ! [ -d %{outdir}/fribidi-install ]; then
|
|
cd %{outdir}
|
|
tar xvf ../rpmdeps/fribidi-%{fribidi_version}.tar.xz
|
|
cd fribidi-%{fribidi_version}
|
|
./configure --disable-shared --enable-static --prefix=$PWD/../fribidi-install
|
|
make %{?_smp_mflags}
|
|
make install
|
|
cd ../..
|
|
fi
|
|
if ! [ -d %{outdir}/sdl-install ]; then
|
|
cd %{outdir}
|
|
tar xvf ../rpmdeps/SDL2-%{sdl2_version}.tar.gz
|
|
cd SDL2-%{sdl2_version}
|
|
for x in ../../sdl-patches/*.patch; do
|
|
echo "Applying patch $x"
|
|
patch -p1 -i "$x"
|
|
done
|
|
cd ..
|
|
cmake \
|
|
-Bsdl-build \
|
|
-DSDL_PULSEAUDIO=ON \
|
|
-DSDL_RPATH=OFF \
|
|
-DSDL_STATIC=ON \
|
|
-DSDL_SHARED=OFF \
|
|
-DSDL_WAYLAND=ON \
|
|
-DSDL_X11=OFF \
|
|
-DSDL_DBUS=ON \
|
|
-DSDL_WAYLAND_LIBDECOR=OFF \
|
|
-DSDL_WAYLAND_QT_TOUCH=OFF \
|
|
SDL2-%{sdl2_version}
|
|
make -C sdl-build %{?_smp_mflags}
|
|
make -C sdl-build install DESTDIR=$PWD/sdl-install INSTALL_ROOT=$PWD/sdl-install
|
|
cd ..
|
|
fi
|
|
sed "s@Libs: .*@Libs: $PWD/%{outdir}/freetype-install/lib/libfreetype.a@g" < %{outdir}/freetype-install/lib/pkgconfig/freetype2.pc > %{outdir}/pkgconfig/freetype2.pc
|
|
sed "s@Libs: .*@Libs: $PWD/%{outdir}/fribidi-install/lib/libfribidi.a@g" < %{outdir}/fribidi-install/lib/pkgconfig/fribidi.pc > %{outdir}/pkgconfig/fribidi.pc
|
|
export PKG_CONFIG_PATH=$PWD/%{outdir}/pkgconfig:$PKG_CONFIG_PATH
|
|
export PKG_CONFIG_LIBDIR=$PWD/%{outdir}/pkgconfig:$PKG_CONFIG_LIBDIR
|
|
cd %{outdir}/scummvm;
|
|
../../../../../../configure --host=sailfish \
|
|
--with-jpeg-prefix=../jpeg-install/usr \
|
|
--with-mad-prefix=../libmad-install/usr/local \
|
|
--with-flac-prefix=../flac-install/usr/local \
|
|
--with-theoradec-prefix=../theora-install/usr/local \
|
|
--with-mpeg2-prefix=../mpeg2-install/usr/local \
|
|
--with-faad-prefix=../faad-install/usr/local \
|
|
--with-gif-prefix=../giflib-install/usr/local \
|
|
--enable-fribidi --with-fribidi-prefix=../fribidi-install \
|
|
--enable-vpx --with-vpx-prefix=../vpx-install/usr/local \
|
|
--with-sdl-prefix=../sdl-install/usr/local --enable-static \
|
|
%{engine_config}
|
|
cd ../..
|
|
%{__make} -C %{outdir}/scummvm %{_make_output_sync} %{?_smp_mflags}
|
|
|
|
%install
|
|
rm -rf %{buildroot}/*
|
|
%{__make} -C %{outdir}/scummvm DESTDIR=%{buildroot} INSTALL_ROOT=%{buildroot} install
|
|
# TODO: Move this stuff into make
|
|
mkdir -p %{buildroot}/usr/share/applications
|
|
mkdir -p %{buildroot}/usr/share/icons/hicolor/86x86/apps
|
|
mkdir -p %{buildroot}/usr/share/icons/hicolor/108x108/apps
|
|
mkdir -p %{buildroot}/usr/share/icons/hicolor/128x128/apps
|
|
mkdir -p %{buildroot}/usr/share/icons/hicolor/172x172/apps
|
|
cp ../../../../dists/sailfish/org.scummvm.scummvm.desktop %{buildroot}/usr/share/applications/org.scummvm.scummvm.desktop
|
|
cp ../../../../dists/sailfish/86x86.png %{buildroot}/usr/share/icons/hicolor/86x86/apps/org.scummvm.scummvm.png
|
|
cp ../../../../dists/sailfish/108x108.png %{buildroot}/usr/share/icons/hicolor/108x108/apps/org.scummvm.scummvm.png
|
|
cp ../../../../dists/sailfish/128x128.png %{buildroot}/usr/share/icons/hicolor/128x128/apps/org.scummvm.scummvm.png
|
|
cp ../../../../dists/sailfish/172x172.png %{buildroot}/usr/share/icons/hicolor/172x172/apps/org.scummvm.scummvm.png
|
|
|
|
%files
|
|
%defattr(755,root,root,-)
|
|
%{_bindir}/org.scummvm.scummvm
|
|
|
|
%defattr(644,root,root,-)
|
|
|
|
%{_datadir}/org.scummvm.scummvm/applications/%{name}.desktop
|
|
%{_datadir}/org.scummvm.scummvm/doc/scummvm/*
|
|
%{_datadir}/org.scummvm.scummvm/icons/hicolor/scalable/apps/org.scummvm.scummvm.svg
|
|
%{_datadir}/org.scummvm.scummvm/man/man6/scummvm.6
|
|
%{_datadir}/org.scummvm.scummvm/metainfo/org.scummvm.scummvm.metainfo.xml
|
|
%{_datadir}/org.scummvm.scummvm/pixmaps/org.scummvm.scummvm.xpm
|
|
%{_datadir}/org.scummvm.scummvm/scummvm/*
|
|
%{_datadir}/applications/org.scummvm.scummvm.desktop
|
|
%{_datadir}/icons/hicolor/108x108/apps/org.scummvm.scummvm.png
|
|
%{_datadir}/icons/hicolor/128x128/apps/org.scummvm.scummvm.png
|
|
%{_datadir}/icons/hicolor/172x172/apps/org.scummvm.scummvm.png
|
|
%{_datadir}/icons/hicolor/86x86/apps/org.scummvm.scummvm.png
|