File mupen64plus.spec of Package mupen64plus

#
# spec file for package mupen64plus
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

Name:           mupen64plus
Version:        2.5
Release:        0
Summary:        Nintendo 64 Emulator
License:        GPL-2.0
Group:          System/Emulators/Other
Url:            http://code.google.com/p/mupen64plus/
Source:         http://mupen64plus.googlecode.com/files/mupen64plus-bundle-src-%{version}_64dd.tar.gz
Patch0:         %{name}-coredir.patch
# PATCH-FIX-OPENSUSE mupen64plus-use-system-font.patch gber@opensuse.org -- Use system DejaVu font rather than an inlined copy of it
Patch2:         mupen64plus-use-system-font.patch
# avoid audio-video sync problems:
#Patch3:         speed_limit.diff
Patch4:         dont_check_savestate_md5_sum.diff

BuildRequires:  boost-devel
BuildRequires:  gcc-c++
BuildRequires:  gtk2-devel
%if 0%{?suse_version} >= 1120
BuildRequires:  lirc-devel
%else
BuildRequires:  lirc
%endif
BuildRequires:  SDL-devel
BuildRequires:  SDL_ttf-devel
BuildRequires:  xorg-x11-Mesa-devel
BuildRequires:  zlib-devel
BuildRequires:  libsamplerate-devel
BuildRequires:  speex-devel
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

Requires:       libmupen64plus2 = %{version}
Requires:       mupen64plus-plugin-audio
Requires:       mupen64plus-plugin-input
Requires:       mupen64plus-plugin-rsp
Requires:       mupen64plus-plugin-video

Obsoletes:      mupen64 < %{version}
Provides:       mupen64 = %{version}

Recommends:     mupen64plus-ui

%description
Mupen64Plus is a cross-platform plugin-based N64 emulator which is capable of accurately playing many games.
Included are four MIPS R4300 CPU emulators, with dynamic recompilers for 32-bit x86 and 64-bit amd64 systems, and necessary plugins for audio, graphical rendering (RDP), signal co-processor (RSP), and input.

A front-end like mupen64plus-ui-console or m64py is recommended.


%package -n libmupen64plus2
Summary:        Shared Library Interface to the Mupen64Plus Nintendo 64 Emulator
Group:          System/Emulators/Other
#Requires:       mupen64plus >= 2.0
Requires:       dejavu

%description -n libmupen64plus2
Mupen64Plus is a cross-platform plugin-based N64 emulator which is capable of accurately playing many games.
Included are four MIPS R4300 CPU emulators, with dynamic recompilers for 32-bit x86 and 64-bit amd64 systems, and necessary plugins for audio, graphical rendering (RDP), signal co-processor (RSP), and input.

This package contains the shared library interface for Mupen64Plus frontends.


%package -n libmupen64plus-devel
Summary:        Include Files for Mupen64Plus Development
Group:          Development/Libraries/C and C++
Requires:       libmupen64plus2 = %{version}-%{release}

%description -n libmupen64plus-devel
This package contains all necessary include files to develop frontends against the Mupen64Plus shared library interface.


%package -n libmupen64plus-doc
Summary:        API Documentation for libmupen64plus
Group:          Development/Libraries/C and C++

%description -n libmupen64plus-doc
This package contains the API documentation for the shared library interface for Mupen64Plus frontends.


%package plugin-audio-sdl
Summary:        SDL Audio Plugin for the Mupen64Plus Nintendo 64 Emulator
Group:          System/Emulators/Other
Requires:       mupen64plus >= 2.0
Provides:       mupen64plus-plugin-audio

%description plugin-audio-sdl
This package contains the SDL audio plugin for the Mupen64Plus Nintendo 64 Emulator.


%package plugin-input-sdl
Summary:        SDL Input Plugin for the Mupen64Plus Nintendo 64 Emulator
Group:          System/Emulators/Other
Requires:       mupen64plus >= 2.0
Provides:       mupen64plus-plugin-input

%description plugin-input-sdl
This package contains the SDL input plugin for the Mupen64Plus Nintendo 64 Emulator. It has LIRC Infrared remote control interface and Rumble Pak support.


%package plugin-rsp-hle
Summary:        RSP High-Level Emulation Plugin For the Mupen64Plus Nintendo 64 Emulator
Group:          System/Emulators/Other
Requires:       mupen64plus >= 2.0
Provides:       mupen64plus-plugin-rsp

%description plugin-rsp-hle
This package contains the RSP High-Level emulation plugin for the Mupen64Plus Nintendo 64 Emulator.


%package plugin-video-glide64mk2
Summary:        Glide64mk2 Video Plugin for the Mupen64Plus Nintendo 64 Emulator
Group:          System/Emulators/Other
Requires:       mupen64plus >= 2.0
Provides:       mupen64plus-plugin-video

%description plugin-video-glide64mk2
This package contains the Glide64mk2 Video Plugin for the Mupen64Plus Nintendo 64 Emulator which provides high-level graphics emulation.


%package plugin-video-rice
Summary:        Rice Video Plugin for the Mupen64Plus Nintendo 64 Emulator
Group:          System/Emulators/Other
Requires:       mupen64plus >= 2.0
Provides:       mupen64plus-plugin-video

%description plugin-video-rice
This package contains the Rice Video Plugin for the Mupen64Plus Nintendo 64 Emulator. It provides a high-level graphics emulation with support for high-resolution texture support.


%package ui-console
Summary:        Command Line Frontend for the Mupen64Plus Nintendo 64 Emulator
Group:          System/Emulators/Other
Requires:       mupen64plus >= 2.0
Provides:       mupen64plus-ui

%description ui-console
Mupen64Plus is a cross-platform plugin-based N64 emulator which is capable of accurately playing many games.

This package contains a command line frontend.


%package devel
Summary:        Develompent files for mupen64plus
Group:          Development/Libraries/C and C++
Requires:       mupen64plus = %{version}-%{release}

%description devel
Mupen64Plus is a cross-platform plugin-based N64 emulator which is capable of accurately playing many games.
Included are four MIPS R4300 CPU emulators, with dynamic recompilers for 32-bit x86 and 64-bit amd64 systems, and necessary plugins for audio, graphical rendering (RDP), signal co-processor (RSP), and input.

This package contains the development files for mupen64plus.


%prep
%setup -q -n mupen64plus-bundle-src-%{version}
%patch0 -p0
# we use the systems font instead of the shipped one
%patch2 -p1
#%patch3
%patch4

rm source/mupen64plus-core/data/font.ttf

%build
export RPM_OPT_FLAGS
export VCR=1
%if 0%{?suse_version} == 1110
# Option -flto is unknown in gcc43
# SLE11 fails at building video-glide64mk2
M64P_COMPONENTS="core rom ui-console audio-sdl input-sdl rsp-hle video-rice" \
%endif
OPTFLAGS="-O0" \
PIC=1 \
CC="gcc $RPM_OPT_FLAGS" CXX="g++ $RPM_OPT_FLAGS" \
COREDIR=%{_libdir}/ PLUGINDIR=%{_libdir}/%{name} LIRC=1 V=1 bash -x m64p_build.sh

%install
%if 0%{?suse_version} == 1110
# SLE11 fails at building video-glide64mk2
M64P_COMPONENTS="core rom ui-console audio-sdl input-sdl rsp-hle video-rice" \
%endif
DESTDIR="%{buildroot}" \
PREFIX=%{_prefix} \
LIBDIR=%{_libdir}/ \
MANDIR=%{_mandir} bash -x m64p_install.sh

%post   -n libmupen64plus2 -p /sbin/ldconfig

%postun -n libmupen64plus2 -p /sbin/ldconfig

%files
%defattr(-,root,root)
%doc source/mupen64plus-core/{LICENSES,README,RELEASE}
%doc source/mupen64plus-core/doc/{gpl-license,lgpl-license}
%dir %{_datadir}/%{name}
%exclude %{_datadir}/%{name}/mupen64plus.cht
%{_datadir}/%{name}/mupencheat.txt
%{_datadir}/%{name}/mupen64plus.ini

%files -n libmupen64plus2
%defattr(-,root,root)
%dir %{_libdir}/%{name}
%{_libdir}/libmupen64plus.so.*

%files -n libmupen64plus-devel
%defattr(-,root,root)
%{_includedir}/%{name}

%files -n libmupen64plus-doc
%defattr(-,root,root)
%doc source/mupen64plus-core/doc/emuwiki-api-doc
%doc source/mupen64plus-core/doc/new_dynarec.txt

%files plugin-audio-sdl
%defattr(-,root,root,-)
%doc source/mupen64plus-audio-sdl/{LICENSES,RELEASE}
%{_libdir}/%{name}/mupen64plus-audio-sdl.so

%files plugin-input-sdl
%defattr(-,root,root,-)
%doc source/mupen64plus-input-sdl/{AUTHORS,COPYING,LICENSES,README,RELEASE}
%{_datadir}/%{name}/InputAutoCfg.ini
%{_libdir}/%{name}/mupen64plus-input-sdl.so

%files plugin-rsp-hle
%defattr(-,root,root,-)
%doc source/mupen64plus-rsp-hle/{LICENSES,RELEASE}
%{_libdir}/%{name}/mupen64plus-rsp-hle.so

%if 0%{?suse_version} > 1110
# SLE11 fails at building video-glide64mk2
%files plugin-video-glide64mk2
%defattr(-,root,root,-)
%doc source/mupen64plus-video-glide64mk2/{LICENSES,RELEASE,todo!.txt}
%doc source/mupen64plus-video-glide64mk2/doc/{fxt1-license,gpl-license}
%{_datadir}/%{name}/Glide64mk2.ini
%{_libdir}/%{name}/mupen64plus-video-glide64mk2.so
%endif

%files plugin-video-rice
%defattr(-,root,root,-)
%doc source/mupen64plus-video-rice/{LICENSES,README,RELEASE}
%{_datadir}/%{name}/RiceVideoLinux.ini
%{_libdir}/%{name}/mupen64plus-video-rice.so

%files ui-console
%defattr(-,root,root)
%doc source/mupen64plus-ui-console/{LICENSES,README,RELEASE}
%doc %{_mandir}/man6/%{name}.*
%{_bindir}/mupen64plus
%{_datadir}/applications/mupen64plus.desktop
%{_datadir}/icons/hicolor/48x48/apps/mupen64plus.png
%{_datadir}/icons/hicolor/scalable/apps/mupen64plus.svg
openSUSE Build Service is sponsored by