# Contributor: Oleg A. Khlybov <fougas@mail.ru>

_realname=scotch

pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgdesc='Graph partitioning and sparse matrix ordering package (mingw-w64)'
pkgver=6.1.0
pkgrel=1
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-msmpi")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libgnurx")
options=('strip' 'staticlibs')
license=('CeCILL-C')
url="http://www.labri.fr/perso/pelegrin/scotch/"
source=("https://gforge.inria.fr/frs/download.php/file/38352/${_realname}_${pkgver}.tar.gz"
		"0001-makefile.inc.patch"
		"0002-pipe-fix.patch"
		"0003-thread-fix.patch"
		"0004-dummysizes-regex.patch"
)
sha256sums=('a3bc3fa3b243fcb52f8d68de4272562a0328afb18a96f535724d284e36730485'
            '2c55b1e99a8d40c976e7147aa9102db2d1c489da1b760e526b424bf5ffd12716'
            '49d87533321504a9594d7bb4659fbced5afadd2fc0d73f0577b0b3ad47cc7d0f'
            '8a02cea7cdc3c685776012b2bb42cec8c5e98c435bdf1ffd62abf5ab6def9fbb'
            '92908a6598d333a35a3b76650c111a082304e9dfff7c9bc0667d6af62de47c14')

prepare() {
  cd "${srcdir}/${_realname}_${pkgver}"
  for p in ${source[*]:1}; do
	patch -p1 -i "$srcdir/$p"
  done
}

build() {
  cd "${srcdir}/${_realname}_${pkgver}/src"
  make -j1 scotch ptscotch esmumps ptesmumps
  cd ../lib
  gcc -shared -o lib${_realname}.dll -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--output-def,lib${_realname}.def -Wl,--out-implib,lib${_realname}.dll.a -Wl,--whole-archive lib${_realname}.a lib${_realname}err.a -Wl,--no-whole-archive
  mpicc -shared -o libpt${_realname}.dll -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--output-def,libpt${_realname}.def -Wl,--out-implib,libpt${_realname}.dll.a -Wl,--whole-archive libpt${_realname}.a libpt${_realname}err.a -Wl,--no-whole-archive -L. -l${_realname}
}

package() {
  cd "${srcdir}/${_realname}_${pkgver}"
  mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,include}
  mkdir -p "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig"
  echo "
	prefix=${MINGW_PREFIX}
	libdir=\${prefix}/lib
	includedir=\${prefix}/include
	Name: scotch
	URL: ${url}
	Version: ${pkgver}
	Description: Serial graph partitioning and sparse matrix ordering package
	Cflags: -I\${includedir}
	Libs.private: -lscotcherr
	Libs: -L\${libdir} -lscotch
  " | sed '/^\s*$/d;s/^\s*//' > "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/scotch.pc"
  echo "
	prefix=${MINGW_PREFIX}
	libdir=\${prefix}/lib
	includedir=\${prefix}/include
	Name: ptscotch
	URL: ${url}
	Version: ${pkgver}
	Description: Parallel graph partitioning and sparse matrix ordering package
	Requires: scotch
	Requires.private: msmpi
	Cflags: -I\${includedir}
	Libs.private: -lptscotcherr
	Libs: -L\${libdir} -lptscotch
  " | sed '/^\s*$/d;s/^\s*//' > "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/ptscotch.pc"
  (
    cd include
	install -m644 *.h "${pkgdir}${MINGW_PREFIX}/include"
	cd "${pkgdir}${MINGW_PREFIX}/include"
	mv metis.h scotchmetis.h
	mv parmetis.h ptscotchparmetis.h
  )
  (
    cd lib
	install -m644 lib*.a "${pkgdir}${MINGW_PREFIX}/lib"
	install -m644 lib*.dll  "${pkgdir}${MINGW_PREFIX}/bin"
  )
}
