blob: 9458ec9bc2f0d845068d6cd009fcfeecdb9ae596 [file] [log] [blame]
# 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"
)
}