# $Id: PKGBUILD 133684 2015-05-18 03:05:44Z anatolik $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Anders Bergh <anders1@gmail.com>

pkgbase=luasocket
pkgname=(lua-socket lua51-socket lua52-socket)
pkgver=3.0rc1
pkgrel=7
pkgdesc='Networking support library for the Lua language'
arch=('i686' 'x86_64')
url='https://github.com/diegonehab/luasocket'
license=('MIT')
makedepends=('lua' 'lua51' 'lua52')
source=("$pkgbase-$pkgver.tar.gz::https://github.com/diegonehab/luasocket/archive/v${pkgver/rc/-rc}.tar.gz"
	"https://github.com/diegonehab/luasocket/commit/396e9e5.patch")
md5sums=('08bd2f265b244eb4bf5c2c36bf89b759'
         '7936d598ea91632e7dcc7aebc93c7300')

prepare() {
  cd "${srcdir}/luasocket-${pkgver/rc/-rc}"
  patch -p1 < ${srcdir}/396e9e5.patch

  # Partially apply https://github.com/diegonehab/luasocket/commit/ddf429282460323e24652e6beec8e750f8e4a958
  # it replaces deprecated Lua functions.
  sed 's/\bluaL_checkint\b/(int)luaL_checkinteger/g' -i src/{mime,luasocket}.c
}

build() {
  cp -a luasocket-${pkgver/rc/-rc} luasocket-${pkgver/rc/-rc}-52
  cp -a luasocket-${pkgver/rc/-rc} luasocket-${pkgver/rc/-rc}-51

  msg2 'Building with lua 5.3'
  cd "$srcdir"/luasocket-${pkgver/rc/-rc}
  make LUAV=5.3

  msg2 'Building with lua 5.1'
  cd "$srcdir"/luasocket-${pkgver/rc/-rc}-51
  find . -type f -name \*.[ch] -exec sed -i \
    -e 's|include "lua.h|include "lua5.1/lua.h|g' \
    -e 's|include "lualib.h|include "lua5.1/lualib.h|g' \
    -e 's|include "luaconf.h|include "lua5.1/luaconf.h|g' \
    -e 's|include "lauxlib.h|include "lua5.1/lauxlib.h|g' \
    {} \;
  make LUAV=5.1

  msg2 'Building with lua 5.2'
  cd "$srcdir"/luasocket-${pkgver/rc/-rc}-52
  find . -type f -name \*.[ch] -exec sed -i \
    -e 's|include "lua.h|include "lua5.2/lua.h|g' \
    -e 's|include "lualib.h|include "lua5.2/lualib.h|g' \
    -e 's|include "luaconf.h|include "lua5.2/luaconf.h|g' \
    -e 's|include "lauxlib.h|include "lua5.2/lauxlib.h|g' \
    {} \;
  make LUAV=5.2
}

package_lua-socket() {
  depends=('lua')
  cd luasocket-${pkgver/rc/-rc}
  make DESTDIR="$pkgdir/" LUAV=5.3 prefix=/usr install-unix
  install -D -m0644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

package_lua51-socket() {
  depends=('lua51')
  replaces=('luasocket')
  conflicts=('luasocket')

  cd luasocket-${pkgver/rc/-rc}-51
  make DESTDIR="$pkgdir/" LUAV=5.1 prefix=/usr install-unix
  install -D -m0644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

package_lua52-socket() {
  depends=('lua52')

  cd luasocket-${pkgver/rc/-rc}-52
  make DESTDIR="$pkgdir/" LUAV=5.2 prefix=/usr install-unix
  install -D -m0644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
