# Maintainer: Antonio Rojas <arojas@archlinux.org>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: robb_force <robb_force@holybuffalo.net>
# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - install 'mame' instead of 'mame64'

highmem=1

pkgname=mame
pkgver=0.226
pkgrel=1
pkgdesc="A port of the popular Multiple Arcade Machine Emulator using SDL with OpenGL support."
url="https://mamedev.org/"
license=(GPL2)
arch=(x86_64)
depends=(sdl2_ttf qt5-base lua53 libutf8proc pugixml portmidi portaudio flac)
makedepends=(nasm python asio rapidjson glm libxinerama)
conflicts=(sdlmame)
replaces=(sdlmame)
source=("https://github.com/mamedev/mame/archive/mame${pkgver/./}.tar.gz"
         mame.sh mame.desktop mame.svg)
sha256sums=('7c4c9ec232ba988e65fd29665c9b8e40b5ac3aa9f561eeb107cebbf08ba94baf'
            'ee1c59bafc5e5441e99fa4c58108a3e18048e60672f34de865c8a5a976094dba'
            '0e5e93f84673c2d17a1bf7a6b256cfa54ef89a086a828df19bc054c12776d821'
            '17c442c933d764175e4ce1de50a80c0c2ddd5d733caf09c3cd5e6ba697ac43f4')


prepare() {
  cd mame-mame${pkgver/./}

# 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
}

build() {
  cd mame-mame${pkgver/./}
  export CFLAGS+=" -I/usr/include/lua5.3/"
  export CXXFLAGS+=" -I/usr/include/lua5.3/"

# Hack to force linking to lua5.3
  mkdir lib
  ln -s /usr/lib/liblua5.3.so lib/liblua.so
  export LDFLAGS+=" -L${PWD}/lib"

  make \
    NOWERROR=1 \
    OPTIMIZE=2 \
    TOOLS=1 \
    ARCHOPTS=-flifetime-dse=1
}

package() {
  cd mame-mame${pkgver/./}

  # Install the mame script
  install -Dm755 "$srcdir"/$pkgname.sh "$pkgdir"/usr/bin/$pkgname

  # Install the binaries
  install -Dm755 mame "$pkgdir"/usr/lib/mame/mame
  for _i in castool chdman floptool imgtool jedutil ldresample ldverify nltool nlwav pngcmp regrep romcmp \
            split srcclean testkeys unidasm; do
    install -m755 $_i -t "$pkgdir"/usr/lib/mame
    ln -s /usr/lib/mame/$_i "$pkgdir"/usr/bin/mame-$_i
  done

  # Install the extra bits
  install -Dm644 src/osd/modules/opengl/shader/glsl*.*h -t "$pkgdir"/usr/lib/$pkgname/shader/
  cp -ar {artwork,bgfx,plugins,language,ctrlr,keymaps,hash} "$pkgdir"/usr/lib/$pkgname/

  # Include the license
  install -Dm644 docs/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE

  # FS#28203
  sed -i 's|KEYCODE_2_PAD|KEYCODE_2PAD|' "$pkgdir"/usr/lib/mame/ctrlr/*.cfg
  sed -i 's|KEYCODE_4_PAD|KEYCODE_4PAD|' "$pkgdir"/usr/lib/mame/ctrlr/*.cfg
  sed -i 's|KEYCODE_6_PAD|KEYCODE_6PAD|' "$pkgdir"/usr/lib/mame/ctrlr/*.cfg
  sed -i 's|KEYCODE_8_PAD|KEYCODE_8PAD|' "$pkgdir"/usr/lib/mame/ctrlr/*.cfg

  # documentation
  install -dm0755 "$pkgdir"/usr/share/doc
  cp -a docs "$pkgdir"/usr/share/doc/$pkgname
  rm -r "$pkgdir"/usr/share/doc/$pkgname/man
  install -d "$pkgdir"/usr/share/man/man{1,6}
  install -m644 docs/man/*.1* "$pkgdir"/usr/share/man/man1/
  install -m644 docs/man/*.6* "$pkgdir"/usr/share/man/man6/

  # install desktop file and icon
  install -Dm644 "$srcdir"/mame.desktop -t "$pkgdir"/usr/share/applications
  install -Dm644 "$srcdir"/mame.svg -t "$pkgdir"/usr/share/icons/hicolor/scalable/apps
}