summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2015-03-12 08:49:45 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2015-03-12 08:49:45 -0700
commit32e2f21e8dc255caa2a756fc61d5994e62d68fe2 (patch)
tree7c961d27f22fdd709375c469573414e1e166ed06
parent81d518438c1de3fe4cb5ba4bed825e29cee30aee (diff)
downloadspack-32e2f21e8dc255caa2a756fc61d5994e62d68fe2.tar.gz
spack-32e2f21e8dc255caa2a756fc61d5994e62d68fe2.tar.bz2
spack-32e2f21e8dc255caa2a756fc61d5994e62d68fe2.tar.xz
spack-32e2f21e8dc255caa2a756fc61d5994e62d68fe2.zip
Working scotch package.
-rw-r--r--var/spack/packages/scotch/package.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/var/spack/packages/scotch/package.py b/var/spack/packages/scotch/package.py
new file mode 100644
index 0000000000..502d79f076
--- /dev/null
+++ b/var/spack/packages/scotch/package.py
@@ -0,0 +1,39 @@
+from spack import *
+import glob
+import os
+
+class Scotch(Package):
+ """Scotch is a software package for graph and mesh/hypergraph
+ partitioning, graph clustering, and sparse matrix ordering."""
+ homepage = "http://www.labri.fr/perso/pelegrin/scotch/"
+ url = "http://gforge.inria.fr/frs/download.php/file/34099/scotch_6.0.3.tar.gz"
+ list_url = "http://gforge.inria.fr/frs/?group_id=248"
+
+ version('6.0.3', '10b0cc0f184de2de99859eafaca83cfc')
+ depends_on('mpi')
+
+
+ def patch(self):
+ with working_dir('src/Make.inc'):
+ makefiles = glob.glob('Makefile.inc.x86-64_pc_linux2*')
+ filter_file(r'^CCS\s*=.*$', 'CCS = cc', *makefiles)
+ filter_file(r'^CCD\s*=.*$', 'CCD = cc', *makefiles)
+
+
+ def install(self, spec, prefix):
+ # Currently support gcc and icc on x86_64 (maybe others with
+ # vanilla makefile)
+ makefile = 'Make.inc/Makefile.inc.x86-64_pc_linux2'
+ if spec.satisfies('%icc'):
+ makefile += '.icc'
+
+ with working_dir('src'):
+ force_symlink(makefile, 'Makefile.inc')
+ for app in ('scotch', 'ptscotch'):
+ make(app)
+
+ install_tree('bin', prefix.bin)
+ install_tree('lib', prefix.lib)
+ install_tree('include', prefix.include)
+ install_tree('man/man1', prefix.share_man1)
+