Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15:Update
mame
mame.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mame.spec of Package mame
# # spec file for package mame # # Copyright (c) 2018 SUSE LINUX 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/ # # Memory limit helper %define smp_limit_kb_per_job() %( \ kb_per_cpu=%1 \ memtotal=$(sed "/MemTotal/ { s/MemTotal: \\+\\(.\\+\\) kB/\\1/ ; p } ; d" < /proc/meminfo) \ jobs=$(( $memtotal / $kb_per_cpu )) \ [ $jobs -lt 1 ] && jobs=1 \ echo $jobs \ ) # Limit to 1 job per 1400000 kByte (1.4 GByte) %define _smp_ncpus_max %{smp_limit_kb_per_job 1400000} # The build script hardcodes _smp_mflags to "-j_jobs", make it more useful %define _smp_mflags %( \ jobs=0%{?jobs}; \ [ "$jobs" -lt 1 ] && jobs="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \ ncpus_max=%{?_smp_ncpus_max}; \ if [ "$jobs" -gt "$ncpus_max" ]; then jobs="$ncpus_max"; fi; \ if [ "$jobs" -gt 1 ]; then echo "-j$jobs"; fi) %define fver 193 # To build these, change to bcond_without %bcond_without mess %bcond_without systemlibs Name: mame Version: 0.%fver Release: 0 Summary: Multiple Arcade Machine Emulator License: GPL-2.0+ and LGPL-2.1+ and BSD-3-Clause Group: System/Emulators/Other Url: http://mamedev.org/ Source0: https://github.com/mamedev/mame/archive/mame0%{fver}.tar.gz Source1: https://github.com/mamedev/mame/releases/download/mame0%{fver}/whatsnew_0%{fver}.txt Source2: mame.png Source3: mess.png Source100: mame-rpmlintrc Source101: mame.ini.in Source102: mame.appdata.xml Source104: mame-mess.appdata.xml Patch0: treat_gcc73_and_later_like_gcc72.patch Patch1: fix_mkdir_order.patch BuildRequires: binutils-gold BuildRequires: fdupes BuildRequires: pkgconfig BuildRequires: python-xml BuildRequires: update-desktop-files BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Gui) BuildRequires: pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(SDL2_ttf) BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(sdl2) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xinerama) Requires(post): desktop-file-utils Requires(postun): desktop-file-utils %if 0%{?suse_version} <= 1315 BuildRequires: gcc5-c++ %else BuildRequires: gcc-c++ %endif %if %{with systemlibs} BuildRequires: libexpat-devel BuildRequires: libjpeg8-devel BuildRequires: portmidi-devel BuildRequires: utf8proc-devel BuildRequires: pkgconfig(flac) BuildRequires: pkgconfig(libuv) BuildRequires: pkgconfig(lua) BuildRequires: pkgconfig(portaudio-2.0) BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(zlib) %endif Suggests: %{name}-tools = %{version} # sdlmame was last used at version 0.142 Obsoletes: sdlmame < %{version} # ume was last used at version 0.159 Obsoletes: mame-arcade < %{version} Obsoletes: ume < %{version} Requires: %{name}-data = %{version}-%{release} # s390x does not have currently a worker strong enough to satisfy the build constraints ExcludeArch: s390x %description MAME is an emulator designed to recreate the hardware of arcade game systems in software on modern personal computers. The source code to MAME serves as this hardware documentation. The fact that the software is usable serves primarily to validate the accuracy of the documentation. %package tools Summary: MAME Tools Group: System/Emulators/Other Requires: %{name}-data = %{version}-%{release} # mess-tools was last used at version 0.159 Provides: mess-tools = %{version} Obsoletes: mess-tools < %{version} %description tools Tools for use with MAME/MESS roms and images. %if %{with mess} %package mess Summary: Multi Emulator Super System Group: System/Emulators/Other Requires: %{name}-data = %{version}-%{release} # mess was last used at version 0.159 Provides: mess = %{version} Obsoletes: mess < %{version} # sdlmess was last used at version 0.142 Provides: sdlmess = %{version} Obsoletes: sdlmess < %{version} %description mess This is the MESS only build of MAME; it has been compiled without Arcade built in. MESS is an emulator for many game consoles and computer systems, based on the MAME core and now a part of MAME. MESS emulates portable and console gaming systems, computer platforms, and calculators. %endif %package data Summary: Data files required by all builds of MAME Group: System/Emulators/Other BuildArch: noarch %description data This package contains all data files needed by the MAME binaries; * shaders * artwork * rom hashes * languages %prep %setup -q -n mame-mame0%fver %patch0 -p1 %patch1 -p0 cp %{SOURCE1} whatsnew-%{version}.txt # Fix rpmlint warning "wrong-file-end-of-line-encoding" sed -i 's/\r$//' LICENSE.md README.md whatsnew-%{version}.txt # Set DATADIR and SYSCONFDIR in ini files sed -e "s,@DATADIR@,%{_datadir},g"\ -e "s,@SYSCONFDIR@,%{_sysconfdir},g" %{SOURCE101} > mame.ini # limit 32bit archs to debug level 1, the linker exhausts the address space otherwise %ifarch %ix86 %arm %define myoptflags %(echo %{optflags} | sed -E 's@(-g\\\b)|(-g[0-9])@-g1@g') %else %define myoptflags %{optflags} %endif #ensure genie uses %optflags sed -i "s@-Wall -Wextra -Os@%{myoptflags}@" 3rdparty/genie/build/gmake.linux/genie.make sed -i "s@\. -s@\. %{myoptflags}@" 3rdparty/genie/build/gmake.linux/genie.make %build # Memory mapped files occupy the limited 32bit address space %ifarch %ix86 %arm export LDFLAGS="${LDFLAGS} -Wl,-v -fuse-ld=gold -Wl,--no-keep-files-mapped -Wl,--no-map-whole-files -Wl,--no-mmap-output-file" %else export LDFLAGS="${LDFLAGS} -Wl,-v -fuse-ld=gold" %endif %if 0%{?suse_version} > 1320 export CFLAGS=$(pkg-config --cflags lua) %endif COMMON_FLAGS="\ NOWERROR=1 \ VERBOSE=1 \ OPTIMIZE=3 \ %if 0%{?suse_version} <= 1315 OVERRIDE_CC=gcc-5 \ OVERRIDE_CXX=g++-5 \ %endif %if %{with systemlibs} USE_SYSTEM_LIB_EXPAT=1 \ USE_SYSTEM_LIB_ZLIB=1 \ USE_SYSTEM_LIB_JPEG=1 \ USE_SYSTEM_LIB_FLAC=1 \ %if 0%{?suse_version} > 1320 USE_SYSTEM_LIB_LUA=1 \ USE_SYSTEM_LIB_UV=1 \ %endif USE_SYSTEM_LIB_SQLITE3=1 \ USE_SYSTEM_LIB_PORTMIDI=1 \ USE_SYSTEM_LIB_PORTAUDIO=1 \ USE_SYSTEM_LIB_UTF8PROC=1 \ %endif " # Bootstrap genie, scripts file has been patched make %{?_smp_mflags} OPT_FLAGS="%{myoptflags}" $COMMON_FLAGS genie (cd 3rdparty/genie/; bin/linux/genie embed) make %{?_smp_mflags} OPT_FLAGS="%{myoptflags}" $COMMON_FLAGS genie make %{?_smp_mflags} OPT_FLAGS="%{myoptflags}" $COMMON_FLAGS SUBTARGET=arcade TOOLS=1 # Remove static libraries after linking, to save some disk space find build/ -ipath '*mame_arcade/lib*a' -delete %if %{with mess} make %{?_smp_mflags} OPT_FLAGS="%{myoptflags}" $COMMON_FLAGS SUBTARGET=mess # Remove static libraries after linking, to save some disk space find build/ -ipath '*mame_mess/lib*a' -delete %endif %install # Rename binaries %define emu_bin_dir %{buildroot}%{_bindir} %define emu_data_dir %{buildroot}%{_datadir}/mame # Install binaries %ifarch x86_64 install -Dpm 0755 mamearcade64 %{emu_bin_dir}/mame %if %{with mess} install -pm 0755 mess64 %{emu_bin_dir}/mame-mess %endif %else install -Dpm 0755 mamearcade %{emu_bin_dir}/mame %if %{with mess} install -pm 0755 mess %{emu_bin_dir}/mame-mess %endif %endif # Tool binaries install -pm 0755 castool chdman floptool imgtool jedutil ldresample \ ldverify romcmp unidasm %{emu_bin_dir}/ for mame_tool in nltool nlwav pngcmp regrep split src2html srcclean do install -pm 0755 $mame_tool %{emu_bin_dir}/mame-$mame_tool done # Install manpages install -dm 0755 %{buildroot}%{_mandir}/{man1,man6} pushd docs/man/ install -pm 0644 castool.1 chdman.1 floptool.1 imgtool.1 jedutil.1 \ ldresample.1 ldverify.1 romcmp.1 %{buildroot}%{_mandir}/man1/ install -pm 0644 mame.6 mess.6 %{buildroot}%{_mandir}/man6/ popd # Install data required by mame for dir in artwork chds bgfx cheats crosshair ctrlr fonts hash \ keymaps language plugins roms samples opengl_shaders do install -dm 0755 %{emu_data_dir}/$dir done install -dm 0755 %{emu_data_dir}/bgfx/shaders install -dm 0755 %{buildroot}%{_datadir}/pixmaps install -pm 0644 hash/* %{emu_data_dir}/hash/ install -pm 0644 uismall.bdf %{emu_data_dir}/uismall.bdf install -pm 0644 %{SOURCE2} %{buildroot}%{_datadir}/pixmaps/mame.png install -pm 0644 keymaps/{LICENSE,README.md} %{emu_data_dir}/keymaps/ install -pm 0644 keymaps/*LINUX.map %{emu_data_dir}/keymaps/ cp -ar language %{emu_data_dir}/ find %{emu_data_dir}/language/ -name "*.po" | xargs rm -rf cp -ar artwork %{emu_data_dir}/ cp -ar plugins %{emu_data_dir}/ cp -ar samples %{emu_data_dir}/ cp -ar bgfx/chains %{emu_data_dir}/bgfx/ cp -ar bgfx/effects %{emu_data_dir}/bgfx/ cp -ar bgfx/layouts %{emu_data_dir}/bgfx/ cp -ar bgfx/shaders/glsl %{emu_data_dir}/bgfx/shaders/ install -pm 0644 src/osd/modules/opengl/shader/*.{fsh,vsh} %{emu_data_dir}/opengl_shaders/ # Install config file mkdir -p %{buildroot}%{_sysconfdir}/skel/.%{name} install -Dpm 0644 mame.ini %{buildroot}%{_sysconfdir}/skel/.%{name}/mame.ini %suse_update_desktop_file -c mame 'MAME' 'Multiple Arcade Machine Emulator' mame mame Game Emulator install -Dpm 0644 %{SOURCE102} %{buildroot}%{_datadir}/appdata/mame.appdata.xml %if %{with mess} mkdir -p %{buildroot}%{_sysconfdir}/skel/.mess install -Dpm 0644 mame.ini %{buildroot}%{_sysconfdir}/skel/.mess/mess.ini sed -i -- 's/.mame;/.mess;/g' %{buildroot}%{_sysconfdir}/skel/.mess/mess.ini mv %{buildroot}%{_mandir}/man6/mess.6 %{buildroot}%{_mandir}/man6/mame-mess.6 install -Dpm 0644 %{SOURCE3} %{buildroot}%{_datadir}/pixmaps/mame-mess.png %suse_update_desktop_file -c mame-mess 'MESS' 'Multi Emulator Super System' mame-mess mame-mess Game Emulator install -Dpm 0644 %{SOURCE104} %{buildroot}%{_datadir}/appdata/mame-mess.appdata.xml %endif %fdupes -s %{buildroot}/%{_datadir}/mame/bgfx %post %desktop_database_post %postun %desktop_database_postun %files %defattr(-,root,root,-) %doc LICENSE.md README.md whatsnew-%{version}.txt %doc docs/LICENSE %{_bindir}/mame %{_datadir}/pixmaps/mame.png %{_datadir}/applications/mame.desktop %dir %{_datadir}/appdata %{_datadir}/appdata/mame.appdata.xml %{_mandir}/man6/mame.6%{ext_man} %if %{without mess} %{_mandir}/man6/mess.6%{ext_man} %endif %files data %defattr(-,root,root,-) %doc LICENSE.md README.md %doc docs/LICENSE %{_datadir}/mame/ %dir %{_sysconfdir}/skel/.mame %dir %{_sysconfdir}/skel/.mess %config(noreplace) %{_sysconfdir}/skel/.mame/mame.ini %config(noreplace) %{_sysconfdir}/skel/.mess/mess.ini %files tools %defattr(-,root,root,-) %doc LICENSE.md README.md %doc docs/LICENSE %{_bindir}/castool %{_bindir}/chdman %{_bindir}/floptool %{_bindir}/imgtool %{_bindir}/jedutil %{_bindir}/ldresample %{_bindir}/ldverify %{_bindir}/mame-nltool %{_bindir}/mame-nlwav %{_bindir}/mame-pngcmp %{_bindir}/mame-regrep %{_bindir}/mame-split %{_bindir}/mame-src2html %{_bindir}/mame-srcclean %{_bindir}/romcmp %{_bindir}/unidasm %{_mandir}/man1/castool.1%{ext_man} %{_mandir}/man1/chdman.1%{ext_man} %{_mandir}/man1/floptool.1%{ext_man} %{_mandir}/man1/imgtool.1%{ext_man} %{_mandir}/man1/jedutil.1%{ext_man} %{_mandir}/man1/ldresample.1%{ext_man} %{_mandir}/man1/ldverify.1%{ext_man} %{_mandir}/man1/romcmp.1%{ext_man} %if %{with mess} %files mess %doc LICENSE.md README.md whatsnew-%{version}.txt %doc docs/LICENSE %defattr(-,root,root) %{_bindir}/mame-mess %{_datadir}/pixmaps/mame-mess.png %{_datadir}/applications/mame-mess.desktop %dir %{_datadir}/appdata %{_datadir}/appdata/mame-mess.appdata.xml %{_mandir}/man6/mame-mess.6%{ext_man} %endif %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor