>From 936d49e8b0651a0e3b4674fcd34308c1d396de72 Mon Sep 17 00:00:00 2001 From: Eric Bavier <bav...@member.fsf.org> Date: Sat, 17 May 2014 00:31:59 -0500 Subject: [PATCH 3/4] gnu: Add pt-scotch package.
* gnu/packages/maths.scm (pt-scotch): New variable. --- gnu/packages/maths.scm | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 0366385..d9f846e 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -663,3 +663,69 @@ partitioning, static mapping, and sparse matrix ordering, in application domains ranging from structural mechanics to operating systems or bio-chemistry.") (license (license:fsf-free "file://LICENSE_en.txt")))) + +(define-public pt-scotch + (package (inherit scotch) + (name "pt-scotch") + (inputs + `(("openmpi" ,openmpi) + ,@(package-inputs scotch))) + (arguments + `(#:phases + (alist-cons-after + 'unpack 'chdir-to-src + (lambda _ (chdir "src")) + (alist-replace + 'configure + (lambda _ + (call-with-output-file "Makefile.inc" + (lambda (port) + (format port " +EXE = +LIB = .a +OBJ = .o +MAKE = make +AR = ar +ARFLAGS = -ruv +CCS = gcc +CCP = mpicc +CCD = gcc +CPPFLAGS =~{ -D~a~} +CFLAGS = -O2 -g $(CPPFLAGS) +LDFLAGS = -lz -lm -lrt -lpthread +CP = cp +LEX = flex -Pscotchyy -olex.yy.c +LN = ln +MKDIR = mkdir +MV = mv +RANLIB = ranlib +YACC = bison -pscotchyy -y -b y +" + '("COMMON_FILE_COMPRESS_GZ" + "COMMON_PTHREAD" + "COMMON_RANDOM_FIXED_SEED" + ;; TODO: Define once our MPI supports MPI_THREAD_MULTIPLE + ;; "SCOTCH_PTHREAD" + ;; "SCOTCH_PTHREAD_NUMBER=2" + "restrict=__restrict"))))) + (alist-replace + 'build + ;; TODO: Would like to add parallelism here + (lambda _ + (and + (zero? (system* "make" "ptscotch")) + ;; Install the serial metis compatibility library + (zero? (system* "make" "-C" "libscotchmetis" "install")))) + (alist-replace + 'check + (lambda _ (zero? (system* "make" "ptcheck"))) + (alist-replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir out) + (zero? (system* "make" + (string-append "prefix=" out) + "install")))) + %standard-phases))))))) + (synopsis "Programs and libraries for graph algorithms (with MPI)"))) -- 1.7.9.5
-- Eric Bavier Please avoid sending me Word or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html