diff --git a/mame.spec b/mame.spec index 39ab353..ac8d99d 100644 --- a/mame.spec +++ b/mame.spec @@ -1,55 +1,256 @@ +%define tagver %(echo %version | tr -d .) Name: mame -Version: 0.151 +Version: 0.229 Release: 1mamba Summary: A virtual environment where you can run software written for other platforms, namely old arcades Group: Applications/Emulators Vendor: openmamba Distribution: openmamba Packager: Silvan Calarco -URL: http://sdlmame.wallyweek.org/ -Source: https://launchpad.net/~c.falco/+archive/mame/+files/mame_%{version}.orig.tar.xz +URL: https://sdlmame.wallyweek.org/ +Source: https://gitlab.com/mamedev/mame.git/mame%{tagver}/mame-%{version}.tar.bz2 License: BSD ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel -BuildRequires: libSDL-devel -BuildRequires: libSDL_ttf-devel +BuildRequires: libGL-devel +BuildRequires: libSDL2-devel +BuildRequires: libSDL2_ttf-devel BuildRequires: libX11-devel +BuildRequires: libXext-devel +BuildRequires: libXi-devel BuildRequires: libXinerama-devel BuildRequires: libalsa-devel +BuildRequires: libexpat-devel +BuildRequires: libflac-devel BuildRequires: libfontconfig-devel BuildRequires: libfreetype-devel BuildRequires: libgcc -BuildRequires: libqt4-devel +BuildRequires: libjpeg-devel +BuildRequires: liblua-devel +BuildRequires: libportaudio-devel +BuildRequires: libportmidi-devel +BuildRequires: libqt5-devel +BuildRequires: libsqlite-devel BuildRequires: libstdc++6-devel +BuildRequires: libutf8proc-devel +BuildRequires: libz-devel +BuildRequires: pugixml-devel ## AUTOBUILDREQ-END -BuildRoot: %{_tmppath}/%{name}-%{version}-root +BuildRequires: python3 +BuildRequires: librapidjson-devel +Requires: %{name}-data = %{?epoch:%epoch:}%{version}-%{release} %description MAME stands for "Multiple Arcade Machine Emulator". It provides a virtual environment where you can run software written for other platforms, namely old arcades. +%package tools +Group: Applications/Games +Summary: Additional tools for MAME +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description tools +%{summary}. + +%package data +Group: Applications/Games +Summary: Data files used by MAME + +%description data +%{summary}. + %debug_package %prep %setup -q -D -T +:<< _EOF + +# Use system libraries +sed -e 's|\# USE_SYSTEM_LIB|USE_SYSTEM_LIB|g' -i makefile +# except for asio +sed -e 's|USE_SYSTEM_LIB_ASIO|\# USE_SYSTEM_LIB_ASIO|g' -i makefile + +# Hack to force linking to lua5.3 +mkdir lib +ln -s %{_libdir}/liblua.so lib/liblua.so + +# Create ini file +cat > %{name}.ini << EOF +# Define multi-user paths +artpath %{_datadir}/%{name}/artwork;%{_datadir}/%{name}/effects +bgfx_path %{_datadir}/%{name}/bgfx +cheatpath %{_datadir}/%{name}/cheat +crosshairpath %{_datadir}/%{name}/crosshair +ctrlrpath %{_datadir}/%{name}/ctrlr +fontpath %{_datadir}/%{name}/fonts +hashpath %{_datadir}/%{name}/hash +languagepath %{_datadir}/%{name}/language +pluginspath %{_datadir}/%{name}/plugins +rompath %{_datadir}/%{name}/roms;%{_datadir}/%{name}/chds +samplepath %{_datadir}/%{name}/samples + +# Allow user to override ini settings +inipath \$HOME/.%{name}/ini;%{_sysconfdir}/%{name} + +# Set paths for local storage +cfg_directory \$HOME/.%{name}/cfg +comment_directory \$HOME/.%{name}/comments +diff_directory \$HOME/.%{name}/diff +input_directory \$HOME/.%{name}/inp +nvram_directory \$HOME/.%{name}/nvram +snapshot_directory \$HOME/.%{name}/snap +state_directory \$HOME/.%{name}/sta + +# openmamba custom defaults +video opengl +autosave 1 +EOF %build -:<< _EOF -%make +#:<< _EOF + +# From Fedora +#standard -g caused problems with OOM or relocation overflows +RPM_OPT_FLAGS=$(echo $RPM_OPT_FLAGS | sed "s@-g@-g1@") +#32-bit architectures need even more measures +%ifarch %{ix86} arm +RPM_OPT_FLAGS=$(echo $RPM_OPT_FLAGS | sed "s@-O2@-Os@") +RPM_LD_FLAGS="$RPM_LD_FLAGS -Wl,--no-keep-memory -fuse-ld=gold" +%endif + +export CFLAGS+="-I%{_includedir}/lua5.3/" +export CXXFLAGS+="-I%{_includedir}/lua5.3/" + +%make_build -j2 \ + PYTHON_EXECUTABLE=%{__python3} \ + NOWERROR=1 \ + OPTIMIZE=2 \ + TOOLS=1 \ + ARCHOPTS=-flifetime-dse=1 \ + OPT_FLAGS="$RPM_OPT_FLAGS" \ + LDOPTS="$RPM_LD_FLAGS" + +#cd docs +#%make html %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" -install -D -m0755 mame %{buildroot}%{_bindir}/mame + +# create directories +install -d %{buildroot}%{_sysconfdir}/%{name} +for folder in cfg comments diff ini inp memcard nvram snap sta +do + install -d %{buildroot}%{_sysconfdir}/skel/.%{name}/$folder +done + +for folder in artwork bgfx chds cheats ctrlr effects fonts hash language \ + plugins keymaps roms samples shader +do + install -d %{buildroot}%{_datadir}/%{name}/$folder +done +install -d %{buildroot}%{_mandir}/man1 +install -d %{buildroot}%{_mandir}/man6 + +# install files +install -pm 644 %{name}.ini %{buildroot}%{_sysconfdir}/%{name} +install -D -pm 755 %{name} %{buildroot}%{_bindir}/%{name} ln -s mame %{buildroot}%{_bindir}/sdlmame +install -pm 755 castool chdman floptool imgtool jedutil ldresample ldverify \ + nltool nlwav pngcmp romcmp unidasm %{buildroot}%{_bindir} +for tool in regrep split srcclean +do + install -pm 755 $tool %{buildroot}%{_bindir}/%{name}-$tool +done +pushd artwork + find -type d -exec install -d %{buildroot}%{_datadir}/%{name}/artwork/{} \; + find -type f -exec install -pm 644 {} %{buildroot}%{_datadir}/%{name}/artwork/{} \; +popd +pushd bgfx + find -type d -a ! -wholename \*dx\* -a ! -wholename \*metal\* -exec install -d %{buildroot}%{_datadir}/%{name}/bgfx/{} \; + find -type f -a ! -wholename \*dx\* -a ! -wholename \*metal\* -exec install -pm 644 {} %{buildroot}%{_datadir}/%{name}/bgfx/{} \; +popd +install -pm 644 hash/* %{buildroot}%{_datadir}/%{name}/hash +install -pm 644 keymaps/* %{buildroot}%{_datadir}/%{name}/keymaps +pushd language + find -type d -exec install -d %{buildroot}%{_datadir}/%{name}/language/{} \; + find -type f -name \*.mo -exec install -pm 644 {} %{builroot}%{_datadir}/%{name}/language/{} \; + # flag the translation files as %%lang + grep -r --include=*.po Language: | sed -r 's@(.*)/strings\.po:"Language: ([[:alpha:]]{2}(_[[:alpha:]]{2})?)\\n"@%lang(\2) %{_datadir}/%{name}/language/\1@' > ../%{name}.lang +popd +pushd plugins + find -type d -exec install -d %{buildroot}%{_datadir}/%{name}/plugins/{} \; + find -type f -exec install -pm 644 {} %{buildroot}%{_datadir}/%{name}/plugins/{} \; +popd +pushd src/osd/modules/opengl + install -pm 644 shader/*.?sh %{buildroot}%{_datadir}/%{name}/shader +popd +pushd docs/man +install -pm 644 castool.1 chdman.1 imgtool.1 floptool.1 jedutil.1 ldresample.1 \ + ldverify.1 romcmp.1 %{buildroot}%{_mandir}/man1 +install -pm 644 mame.6 mess.6 %{buildroot}%{_mandir}/man6 +popd + %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %files %defattr(-,root,root) +%config(noreplace) %{_sysconfdir}/%{name}/%{name}.ini +%dir %{_sysconfdir}/%{name} +%{_sysconfdir}/skel/.%{name} %{_bindir}/mame %{_bindir}/sdlmame -%doc docs/license.txt docs/licenseinfo.txt +%{_mandir}/man6/mame.6* +%{_mandir}/man6/mess.6* +%doc COPYING + +%files tools +%defattr(-,root,root) +%{_bindir}/castool +%{_bindir}/chdman +%{_bindir}/floptool +%{_bindir}/imgtool +%{_bindir}/jedutil +%{_bindir}/ldresample +%{_bindir}/ldverify +%{_bindir}/nltool +%{_bindir}/nlwav +%{_bindir}/pngcmp +%{_bindir}/%{name}-regrep +%{_bindir}/romcmp +%{_bindir}/%{name}-split +%{_bindir}/%{name}-srcclean +%{_bindir}/unidasm +%{_mandir}/man1/castool.1* +%{_mandir}/man1/chdman.1* +%{_mandir}/man1/floptool.1* +%{_mandir}/man1/imgtool.1* +%{_mandir}/man1/jedutil.1* +%{_mandir}/man1/ldresample.1* +%{_mandir}/man1/ldverify.1* +%{_mandir}/man1/romcmp.1* + +%files data -f %{name}.lang +%defattr(-,root,root) +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/artwork +%{_datadir}/%{name}/bgfx +%{_datadir}/%{name}/chds +%{_datadir}/%{name}/cheats +%{_datadir}/%{name}/effects +%{_datadir}/%{name}/fonts +%{_datadir}/%{name}/keymaps +%dir %{_datadir}/%{name}/language +%{_datadir}/%{name}/plugins +%{_datadir}/%{name}/roms +%{_datadir}/%{name}/samples +%{_datadir}/%{name}/shader +%{_datadir}/%{name}/hash +%license COPYING docs/legal/* %changelog +* Tue Mar 09 2021 Silvan Calarco 0.229-1mamba +- update to 0.229 + * Sun Dec 29 2013 Silvan Calarco 0.151-1mamba - package created using the webbuild interface