# Maintainer (Arch): carstene1ns - http://git.io/ctPKG # Maintainer: André Silva # Maintainer: Márcio Silva _pkgname=reicast pkgname=${_pkgname}-git pkgver=r1703.a5b7011 pkgrel=4 pkgdesc="A multiplatform Sega Dreamcast/NAOMI emulator" arch=('i686' 'x86_64' 'armv7h') url="http://${_pkgname}.com/" license=('GPL2') provides=("${_pkgname}") conflicts=("${_pkgname}") makedepends=('git') depends=('libgl' 'alsa-plugins' 'libpulse' 'python-evdev') # 'sdl2') source=(${_pkgname}-${pkgver}::"git+https://github.com/${_pkgname}/${_pkgname}-emulator.git" 'fix-dyna-constprop.patch' 'futuristic-memops.patch' 'sh-block-graphs.patch' 'purupuru.patch' 'multiplayer-config.patch' 'no-buffer-overflows.patch' 'fix-x11-keyboard-support.patch' 'update-softrend.patch') sha256sums=('SKIP' 'c14287cf2b2289b9de28cedeee06fcb89ca40da50e34607780dce55d7d8e5fd6' 'ce3fe9f10555c473cafbf4e85724ebe7a8535a1fa3bfae3c9bc0fe518024f71e' '94694d1b615facb39b5ee92ed90c6cefc77fab23fb97f2fcc82e0aa6e1cb14c5' '02b01a8b1a33aa543213371ec6022559c1eebbeb2d6a20173995ee618d7396a1' '9ad37cfed1de29a754388f8655dd58d98a3459d5f65475c8d000d92cabb96e43' 'd673ba39c1f203f6127ac78f0c5cad35bde48ab4eb59d46ed6d1536f27f39be6' '188b32f462f8cdb3b4b31b505ca2cbbd8049bb0457689455f281aea4f9c562c0' '67f4e592b557d7657b587a6bc6588e6b6fcf999d44924f8d6b8cb4c86e59785e') pkgver() { cd "${srcdir}/${_pkgname}-${pkgver}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { cd "${srcdir}/${_pkgname}-${pkgver}" # Fix GCC 6.1 errors sed -i 's|g++|g++ -std=gnu++98| ' shell/linux/Makefile # sed -i 's|[#]include[ ][<]stdint[.]h[>]|#include \n#include | # ' core/deps/libelf/elf32.cpp # sed -i 's||| # ' core/linux-dist/evdev.cpp # Remove nonfree fp.h header rm -v core/deps/libpng/fp.h # Add extra patches patch -Np1 -i "$srcdir"/fix-dyna-constprop.patch patch -Np1 -i "$srcdir"/futuristic-memops.patch patch -Np1 -i "$srcdir"/sh-block-graphs.patch # patch -Np1 -i "$srcdir"/no-buffer-overflows.patch # Experimental patch patch -Np1 -i "$srcdir"/fix-x11-keyboard-support.patch patch -Np1 -i "$srcdir"/update-softrend.patch # Enable Puru Puru Pack support (rumble) patch -Np1 -i "$srcdir"/purupuru.patch # Enable Multiplayer config support patch -Np1 -i "$srcdir"/multiplayer-config.patch # Remove unused libraries and headers files rm -rv shell/linux-deps # Add experimental shadow support: http://github.com/reicast-emulator/issues/94 sed -i 's|//DrawModVols|DrawModVols|' core/rend/gles/gldraw.cpp # Fix Xbox Input Axis sed -i 's|DC_AXIS_LT, 0, 0, DC_AXIS_RT|0, 0, DC_AXIS_RT, DC_AXIS_LT|' core/linux-dist/joystick.cpp sed -i 's|DC_AXIS_LT, 0, 0, DC_AXIS_RT|0, 0, DC_AXIS_RT, DC_AXIS_LT|' core/sdl/sdl.cpp # Enable Pulseaudio sed -i 's|#USE_PULSEAUDIO|USE_PULSEAUDIO|' shell/linux/Makefile # Enable SDL # sed -i 's|USE_JOYSTICK[ ][:][=][ ]1|USE_JOYSTICK := 1\nUSE_SDL := 1|' shell/linux/Makefile } build() { mkdir -vm 0755 "$srcdir"/pkgbuild-dir mkdir -vm 0755 "$srcdir"/purupuru-dir mkdir -vm 0755 "$srcdir"/microphone-dir if [ $CARCH == x86_64 ]; then make -C ${_pkgname}-${pkgver}/shell/linux platform=x64 PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-dir install # Enable Puru Puru Pack (rumble support) sed -i 's|SegaVMU[,]i[,]1|PurupuruPack,i,1|' ${_pkgname}-${pkgver}/core/hw/maple/maple_cfg.cpp make -C ${_pkgname}-${pkgver}/shell/linux platform=x64 PREFIX=/usr DESTDIR="$srcdir"/purupuru-dir install # Enable Microphone support sed -i 's|PurupuruPack[,]i[,]1|Microphone,i,1|' ${_pkgname}-${pkgver}/core/hw/maple/maple_cfg.cpp make -C ${_pkgname}-${pkgver}/shell/linux platform=x64 PREFIX=/usr DESTDIR="$srcdir"/microphone-dir install # Disabled, due is unsupported code with gnu++11 or gnu++98 # mkdir -vm 0755 "$srcdir"/pkgbuild-cpp-dir # make -C ${_pkgname}-${pkgver}/shell/linux platform=lincpp PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-cpp-dir install # Enable Naomi support sed -i 's|USE_JOYSTICK[ ][:][=][ ]1|USE_JOYSTICK := 1\nNAOMI := 1|' ${_pkgname}-${pkgver}/shell/linux/Makefile make -C ${_pkgname}-${pkgver}/shell/linux platform=x64 PREFIX=/usr DESTDIR="$srcdir"/naomi-dir install # Disabled, due is unsupported code with gnu++11 or gnu++98 # mkdir -vm 0755 "$srcdir"/naomi-cpp-dir # make -C ${_pkgname}-${pkgver}/shell/linux platform=lincpp PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-cpp-dir install elif [ $CARCH == i686 ]; then make -C ${_pkgname}-${pkgver}/shell/linux platform=x86 PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-dir install # Enable Puru Puru Pack (rumble support) sed -i 's|SegaVMU[,]i[,]1|PurupuruPack,i,1|' ${_pkgname}-${pkgver}/core/hw/maple/maple_cfg.cpp make -C ${_pkgname}-${pkgver}/shell/linux platform=x86 PREFIX=/usr DESTDIR="$srcdir"/purupuru-dir install # Enable Microphone support sed -i 's|PurupuruPack[,]i[,]1|Microphone,i,1|' ${_pkgname}-${pkgver}/core/hw/maple/maple_cfg.cpp make -C ${_pkgname}-${pkgver}/shell/linux platform=x86 PREFIX=/usr DESTDIR="$srcdir"/microphone-dir install # Enable Naomi support sed -i 's|USE_JOYSTICK[ ][:][=][ ]1|USE_JOYSTICK := 1\nNAOMI := 1|' ${_pkgname}-${pkgver}/shell/linux/Makefile make -C ${_pkgname}-${pkgver}/shell/linux platform=x86 PREFIX=/usr DESTDIR="$srcdir"/naomi-dir install elif [ $CARCH == armv7h ]; then make -C ${_pkgname}-${pkgver}/shell/linux platform=armv7h PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-dir install # Enable Puru Puru Pack (rumble support) sed -i 's|SegaVMU[,]i[,]1|PurupuruPack,i,1|' ${_pkgname}-${pkgver}/core/hw/maple/maple_cfg.cpp make -C ${_pkgname}-${pkgver}/shell/linux platform=armv7h PREFIX=/usr DESTDIR="$srcdir"/purupuru-dir install # Enable Microphone support sed -i 's|PurupuruPack[,]i[,]1|Microphone,i,1|' ${_pkgname}-${pkgver}/core/hw/maple/maple_cfg.cpp make -C ${_pkgname}-${pkgver}/shell/linux platform=armv7h PREFIX=/usr DESTDIR="$srcdir"/microphone-dir install # Enable Naomi support sed -i 's|USE_JOYSTICK[ ][:][=][ ]1|USE_JOYSTICK := 1\nNAOMI := 1|' ${_pkgname}-${pkgver}/shell/linux/Makefile make -C ${_pkgname}-${pkgver}/shell/linux platform=armv7h PREFIX=/usr DESTDIR="$srcdir"/naomi-dir install fi } package() { cp -va "$srcdir"/pkgbuild-dir/* "$pkgdir" cp -va "$srcdir"/purupuru-dir/usr/bin/${_pkgname} "$pkgdir"/usr/bin/${_pkgname}-purupuru cp -va "$srcdir"/microphone-dir/usr/bin/${_pkgname} "$pkgdir"/usr/bin/${_pkgname}-microphone cp -va "$srcdir"/naomi-dir/usr/bin/${_pkgname}-naomi "$pkgdir"/usr/bin/${_pkgname}-naomi cp -va "$srcdir"/purupuru-dir/usr/share/applications/${_pkgname}.desktop "$pkgdir"/usr/share/applications/${_pkgname}-purupuru.desktop cp -va "$srcdir"/microphone-dir/usr/share/applications/${_pkgname}.desktop "$pkgdir"/usr/share/applications/${_pkgname}-microphone.desktop cp -va "$srcdir"/naomi-dir/usr/share/applications/${_pkgname}.desktop "$pkgdir"/usr/share/applications/${_pkgname}-naomi.desktop cp -va "$srcdir"/purupuru-dir/usr/share/man/man1/${_pkgname}.1 "$pkgdir"/usr/share/man/man1/${_pkgname}-purupuru.1 cp -va "$srcdir"/microphone-dir/usr/share/man/man1/${_pkgname}.1 "$pkgdir"/usr/share/man/man1/${_pkgname}-microphone.1 cp -va "$srcdir"/naomi-dir/usr/share/man/man1/${_pkgname}.1 "$pkgdir"/usr/share/man/man1/${_pkgname}-naomi.1 sed -i '\|Name| s|Reicast|Reicast with Puru Puru Pack support| \|Exec| s|reicast|reicast-purupuru| ' "$pkgdir"/usr/share/applications/${_pkgname}-purupuru.desktop sed -i '\|Name| s|Reicast|Reicast with Microphone support| \|Exec| s|reicast|reicast-microphone| ' "$pkgdir"/usr/share/applications/${_pkgname}-microphone.desktop sed -i '\|Name| s|Reicast|Reicast NAOMI| \|Exec| s|reicast|reicast-naomi| s|Dreamcast|Naomi| s|dreamcast|naomi| ' "$pkgdir"/usr/share/applications/${_pkgname}-naomi.desktop \ "$pkgdir"/usr/share/man/man1/${_pkgname}-naomi.1 if [ -d "$srcdir"/pkgbuild-cpp-dir ]; then cp -va "$srcdir"/pkgbuild-cpp-dir/usr/bin/${_pkgname} "$pkgdir"/usr/bin/${_pkgname}-c++ cp -va "$srcdir"/pkgbuild-cpp-dir/usr/share/applications/${_pkgname}.desktop "$pkgdir"/usr/share/applications/${_pkgname}-c++.desktop cp -va "$srcdir"/pkgbuild-cpp-dir/usr/share/man/man1/${_pkgname}.1 "$pkgdir"/usr/share/man/man1/${_pkgname}-c++.1 sed -i '\|Name| s|Reicast|Reicast C++| \|Exec| s|reicast|reicast-c++| ' "$pkgdir"/usr/share/applications/${_pkgname}-c++.desktop elif [ -d "$srcdir"/naomi-cpp-dir ]; then cp -va "$srcdir"/naomi-cpp-dir/usr/bin/${_pkgname} "$pkgdir"/usr/bin/${_pkgname}-naomi-c++ cp -va "$srcdir"/naomi-cpp-dir/usr/share/applications/${_pkgname}.desktop "$pkgdir"/usr/share/applications/${_pkgname}-naomi-c++.desktop cp -va "$srcdir"/naomi-cpp-dir/usr/share/man/man1/${_pkgname}.1 "$pkgdir"/usr/share/man/man1/${_pkgname}-naomi-c++.1 sed -i '\|Name| s|Reicast|Reicast NAOMI C++| \|Exec| s|reicast|reicast-naomi-c++| s|Dreamcast|Naomi| s|dreamcast|naomi| ' "$pkgdir"/usr/share/applications/${_pkgname}-naomi-c++.desktop \ "$pkgdir"/usr/share/man/man1/${_pkgname}-naomi-c++.1 fi install -Dm 644 ${_pkgname}-${pkgver}/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE }