summaryrefslogtreecommitdiff
path: root/pcr/scotch/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'pcr/scotch/PKGBUILD')
-rw-r--r--pcr/scotch/PKGBUILD72
1 files changed, 72 insertions, 0 deletions
diff --git a/pcr/scotch/PKGBUILD b/pcr/scotch/PKGBUILD
new file mode 100644
index 000000000..5d614dac8
--- /dev/null
+++ b/pcr/scotch/PKGBUILD
@@ -0,0 +1,72 @@
+# Maintainer (Arch): Samuel Williams <ioquatix>
+
+pkgname=scotch
+pkgver=6.0.4
+_downloadnum=34618 # gforge is insane
+pkgrel=2
+pkgdesc="Software package and libraries for graph, mesh and hypergraph partitioning, static mapping, and sparse matrix block ordering. This is the all-inclusive version (MPI/serial/esmumps)."
+url="http://www.labri.fr/perso/pelegrin/scotch/"
+license=("custom:CeCILL-C")
+depends=('zlib' 'openmpi' 'bzip2')
+provides=('ptscotch' 'ptscotch-openmpi' 'scotch_esmumps' 'scotch_ptesmumps')
+conflicts=('ptscotch-openmpi' 'scotch_esmumps' 'scotch_esmumps5')
+arch=('i686' 'x86_64' 'armv7h')
+source=("http://gforge.inria.fr/frs/download.php/file/${_downloadnum}/${pkgname}_${pkgver}.tar.gz")
+sha256sums=('f53f4d71a8345ba15e2dd4e102a35fd83915abf50ea73e1bf6efe1bc2b4220c7')
+
+prepare() {
+ cd "${srcdir}/${pkgname}_${pkgver}/src"
+
+ # Apply patch to fix shared library ldflags
+ sed -i 's/$(AR) $(ARFLAGS) $(@) $(?)/$(AR) $(ARFLAGS) $(@) $(?) $(LDFLAGS)/g' libscotch/Makefile
+
+ [ -e Makefile.inc ] && rm Makefile.inc
+ cp "Make.inc/Makefile.inc.${CARCH/_/-}_pc_linux2.shlib" Makefile.inc
+
+ # Use the CFLAGS defined /etc/makepkg.conf
+ sed -i "s/-O3/${CFLAGS} -fPIC/g" Makefile.inc
+
+ # Fix C compiler
+ sed -i "s/CCD\t.*=.*gcc/CCD = mpicc/" Makefile.inc
+
+ # Also enable bzip2 compression
+ sed -i "s/-DCOMMON_FILE_COMPRESS_GZ/-DCOMMON_FILE_COMPRESS_GZ -DCOMMON_FILE_COMPRESS_BZ2/" Makefile.inc
+ sed -i "s/-lz/-lz -lbz2/" Makefile.inc
+
+ # Fix the creation of directories
+ sed -i "s/mkdir/mkdir\ -p/" Makefile.inc
+
+ # To install headers and libs also for esmumps
+ sed -i 's/scotch\*/{scotch,esmumps}\*/g' Makefile
+}
+
+build() {
+ cd "${srcdir}/${pkgname}_${pkgver}/src"
+
+ make scotch
+ make -j1 esmumps
+
+ # MPI implementation is not thread-safe: compile the parallel versions without SCOTCH_PTHREAD
+ sed -i "s/-DSCOTCH_PTHREAD//" Makefile.inc
+
+ make ptscotch
+ make -j1 ptesmumps
+}
+
+check() {
+ cd "${srcdir}/${pkgname}_${pkgver}/src"
+
+ make check LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:../../lib"
+ make ptcheck LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:../../lib"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}_${pkgver}/src"
+
+ make install prefix="${pkgdir}/usr" includedir="${pkgdir}/usr/include/scotch"
+
+ # To avoid conflict with extra/gpart, maybe move the package to /opt/scotch ?
+ mv "${pkgdir}/usr/bin/gpart" "${pkgdir}/usr/bin/gpart-scotch"
+
+ install -m 644 -D "${srcdir}/scotch_${pkgver}/doc/CeCILL-C_V1-en.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}