# Maintainer: Sven-Hendrik Haase <svenstaro@archlinux.org>
# Contributor: William Giokas <1007380@gmail.com>

pkgname=pypy
pkgver=7.3.16
pkgrel=1.1
pkgdesc="A Python implementation written in Python, JIT enabled"
url="https://pypy.org"
arch=('x86_64' 'aarch64')
depends=('expat' 'bzip2' 'gdbm' 'openssl' 'libffi' 'zlib' 'ncurses')
makedepends=('python2' 'tk' 'sqlite' 'mercurial' 'base-devel')
optdepends=('sqlite: sqlite module'
            'tk: tk module')
options=(!buildflags)
license=('MIT')
source=("https://downloads.python.org/pypy/pypy2.7-v${pkgver}-src.zip"
	'cparser-local-import.patch'
	'492a5c9bff48f25b0a62a4a15b32f6d3ec1223e5.patch'
)
sha512sums=('020a07188f63459a4046679e2e00e828d193e75e96ab35ab8174e08fea3eff0a5c2ea4d53f42fd373ac225b511bdf580e06474986306d2baa598d6729c272a9c'
	'SKIP'
	'SKIP'
)

prepare() {
	cd "$srcdir/pypy2.7-v${pkgver}-src/"
	patch -p1 < "$srcdir/cparser-local-import.patch"
	patch -p1 < "$srcdir/492a5c9bff48f25b0a62a4a15b32f6d3ec1223e5.patch"
}

build() {
  cd pypy2.7-v${pkgver}-src/pypy/goal

  # For some reason, PyPy wants to use their vendored dependencies when detecting linux.
  # Weird, we'll patch it out.
  sed -i "s/, 'linux', 'linux2'//" targetpypystandalone.py
  python2 ../../rpython/bin/rpython -Ojit --shared targetpypystandalone

  # Compile binary modules
  PYTHONPATH=../.. ./pypy-c ../../lib_pypy/pypy_tools/build_cffi_imports.py
}

package() {
  cd pypy2.7-v${pkgver}-src

  # Prepare installation
  python2 pypy/tool/release/package.py --archive-name pypy --targetdir .
  mkdir unpacked
  tar xf pypy.tar.bz2 -C unpacked

  # Install pypy
  cd unpacked
  install -Dm755 pypy/bin/pypy "${pkgdir}"/opt/pypy/bin/pypy
  install -Dm755 pypy/bin/libpypy-c.so "${pkgdir}"/opt/pypy/bin/libpypy-c.so
  cp -r pypy/include pypy/lib_pypy pypy/lib-python pypy/site-packages "${pkgdir}"/opt/pypy/
  cd ..

  # Install symlink
  mkdir -p "${pkgdir}"/usr/bin "${pkgdir}"/usr/lib
  ln -s /opt/pypy/bin/pypy "${pkgdir}"/usr/bin/pypy
  ln -s /opt/pypy/bin/libpypy-c.so "${pkgdir}"/usr/lib/libpypy-c.so

  # Install misc stuff
  install -Dm644 README.rst "${pkgdir}"/opt/pypy/README.rst
  install -Dm644 LICENSE "${pkgdir}"/opt/pypy/LICENSE
  install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/pypy/LICENSE
}
# vim: ts=2 sw=2 et:
