summaryrefslogtreecommitdiff
path: root/pcr/reicast-git/PKGBUILD
blob: 6f4f6e9e2317adda6770a4eb751a2ffeb0078e66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Maintainer (Arch): carstene1ns <arch carsten-teibes de> - http://git.io/ctPKG
# Maintainer: André Silva <emulatorman@parabola.nu>
# Maintainer: Márcio Silva <coadde@parabola.nu>

# error: in fault_handler -> ../../core/linux/common.cpp : 99
# read: error-mem.txt

pkgname=reicast-git
pkgver=r1651.56f8ffa
pkgrel=2
pkgdesc="A multiplatform Sega Dreamcast emulator"
arch=('i686' 'x86_64')
url="http://reicast.com/"
license=('GPL2')
provides=('reicast')
conflicts=('reicast')
makedepends=('git')
depends=('libgl' 'alsa-plugins' 'libpulse' 'python-evdev' )
source=(reicast::"git+https://github.com/reicast/reicast-emulator.git"
        'enable_multiplayer_support.patch')
sha256sums=('SKIP'
            '12bfc58e12b3ee79b0c82159cdc70c76a4b6804f5c6986853156602bb0e6beb0')

pkgver() {
  cd reicast
  printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

prepare () {
  cd reicast

  # Remove nonfree fp.h header
  rm -v core/deps/libpng/fp.h

  # Add Multiplayer support
  patch -Np1 -i "$srcdir"/enable_multiplayer_support.patch

  # 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

  # Enable Pulseaudio
  sed -i 's|#USE_PULSEAUDIO|USE_PULSEAUDIO|' shell/linux/Makefile
}

build () {
  mkdir -vm 0755 "$srcdir"/pkgbuild-dir
  if [ $CARCH == x86_64 ]; then
    make -C reicast/shell/linux platform=x64 PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-dir install
    # Error in platform=lincpp:
    # ../../core/linux-dist/evdev.cpp:287:65:   required from here
    # /usr/include/c++/5.2.0/tuple:1172:70: error: use of deleted function 'EvdevControllerMapping::EvdevControllerMapping()'
    #          second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...)
    # mkdir -vm 0755 "$srcdir"/pkgbuild-cpp-dir
    # make -C reicast/shell/linux platform=lincpp PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-cpp-dir install
  elif [ $CARCH == i686 ]; then
    make -C reicast/shell/linux platform=x86 PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-dir install
  fi
}

package () {
  cp -va "$srcdir"/pkgbuild-dir/* "$pkgdir"
  if [ -d "$srcdir"/pkgbuild-cpp-dir ]; then
    cp -va "$srcdir"/pkgbuild-cpp-dir/usr/bin/reicast                        "$pkgdir"/usr/bin/reicast-c++
    cp -va "$srcdir"/pkgbuild-cpp-dir/usr/share/applications/reicast.desktop "$pkgdir"/usr/share/applications/reicast-c++.desktop
    cp -va "$srcdir"/pkgbuild-cpp-dir/usr/share/man/man1/reicast             "$pkgdir"/usr/share/man/man1/reicast-c++
    sed -i '\|Name| s|reicast|reicast-c++|
            \|Exec| s|reicast|reicast-c++|
           ' "$pkgdir"/usr/share/applications/reicast-c++.desktop
  fi
  install -Dm 644 reicast/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}