257 lines
7.8 KiB
RPMSpec
257 lines
7.8 KiB
RPMSpec
%define tagver %(echo %version | tr -d .)
|
|
Name: mame
|
|
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 <silvan.calarco@mambasoft.it>
|
|
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: 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: 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
|
|
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
|
|
|
|
# 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}"
|
|
|
|
# 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
|
|
%{_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 <silvan.calarco@mambasoft.it> 0.229-1mamba
|
|
- update to 0.229
|
|
|
|
* Sun Dec 29 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 0.151-1mamba
|
|
- package created using the webbuild interface
|