# Contributor: Myles English <myles at rockhead dot biz>
# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>

pkgname=scalapack
pkgver=2.2.3
pkgrel=1
arch=('aarch64' 'armv7h' 'i686' 'x86_64')
pkgdesc="subset of scalable LAPACK routines redesigned for distributed memory MIMD parallel computers."
url="http://www.netlib.org/scalapack/"
license=('custom')
depends=('glibc' 'openmpi' 'blas' 'lapack') # 'atlas-lapack' 'blacs-openmpi' )
makedepends=('git' 'cmake' 'gcc-fortran')
provides=('blacs')
source=("git+https://github.com/Reference-ScaLAPACK/scalapack#tag=v${pkgver}"
        http://www.netlib.org/scalapack/manpages.tgz
        Makefile
        example1.f)
options=(debug)
sha256sums=('a00eb6f2bf117407f874ac8ab9635a75f72d7b2a38ef207e3f183d7a50373d16'
            'a745c9f367d65e3c7611c126597a4681094b002552e47b621964d30a966aac7b'
            '5f7e81c1c76fc010677fd446bfc689c7f6af1a22a51093e8790e8a615159c541'
            'd9904ecb69f318c4782c0bd39ff2bff511af31960a2383a9d42d6620a266ea70')

build() {
  [[ -e build ]] && rm -rf build
  mkdir build
  cd build

  CFLAGS+=' -ffile-prefix-map=${srcdir}=${DBGSRCDIR:-/usr/src/debug} -fno-strict-aliasing -Wno-implicit-function-declaration'
  CXXFLAGS+=' -ffile-prefix-map=${srcdir}=${DBGSRCDIR:-/usr/src/debug} -fno-strict-aliasing'
  FFLAGS+=" -g -O3 -ffile-prefix-map=${srcdir}=${DBGSRCDIR:-/usr/src/debug} -fallow-argument-mismatch"
  export FFLAGS
  cmake ../scalapack \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_SHARED_LIBS=ON \
        -DSCALAPACK_BUILD_TESTS=OFF \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_CXX_COMPILER=/usr/bin/mpic++ \
        -DCMAKE_C_COMPILER=/usr/bin/mpicc
  make
}

package(){
  cd build
  make install DESTDIR="${pkgdir}"

  # Install headers
  install -m 755 -d "${pkgdir}"/usr/include
  install -m 644 -D "${srcdir}"/scalapack/PBLAS/SRC/*.h "${pkgdir}"/usr/include
  install -m 644 -D "${srcdir}"/scalapack/BLACS/SRC/*.h "${pkgdir}"/usr/include

  # Install man pages
  install -m 755 -d "${pkgdir}"/usr/share/man/manl
  install -m 644 "${srcdir}"/MANPAGES/man/manl/*.l "${pkgdir}"/usr/share/man/manl

  # Install examples
  install -m 755 -d "${pkgdir}"/usr/share/scalapack/examples
  install -m 644 "${srcdir}"/Makefile "${pkgdir}"/usr/share/scalapack/examples
  install -m 644 "${srcdir}"/example1.f "${pkgdir}"/usr/share/scalapack/examples

  # Install license
  install -m 644 -D "${srcdir}"/scalapack/LICENSE \
          "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE
}
