From cf0ec6c46efbf303207235ede8a9828b79037fb3 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Mon, 15 Jun 2015 06:00:01 -0500 Subject: gnu: scotch, pt-scotch: Build esmumps libraries. * gnu/packages/maths.scm (scotch)[arguments]: Add 'build-esmumps phase. Install esmumps libraries and headers in 'install phase. (pt-scotch)[arguments]: Build ptesmumps in 'build phase. Add make parallelism. --- gnu/packages/maths.scm | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index a3611cf055..05691b6a44 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -818,6 +818,7 @@ (define-public scotch MAKE = make AR = ar ARFLAGS = -ruv +CAT = cat CCS = gcc CCP = mpicc CCD = gcc @@ -835,10 +836,18 @@ (define-public scotch '("COMMON_FILE_COMPRESS_GZ" "COMMON_PTHREAD" "COMMON_RANDOM_FIXED_SEED" + ;; Prevents symbolc clashes with libesmumps + "SCOTCH_RENAME" ;; XXX: Causes invalid frees in superlu-dist tests ;; "SCOTCH_PTHREAD" ;; "SCOTCH_PTHREAD_NUMBER=2" "restrict=__restrict")))))) + (add-after + 'build 'build-esmumps + (lambda _ + (zero? (system* "make" + (format #f "-j~a" (parallel-job-count)) + "esmumps")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) @@ -846,7 +855,14 @@ (define-public scotch (mkdir out) (zero? (system* "make" (string-append "prefix=" out) - "install")))))))) + "install")) + ;; esmumps files are not installed with the above + (for-each (lambda (f) + (copy-file f (string-append out "/include/" f))) + (find-files "../include" ".*esmumps.h$")) + (for-each (lambda (f) + (copy-file f (string-append out "/lib/" f))) + (find-files "../lib" "^lib.*esmumps.*")))))))) (home-page "http://www.labri.fr/perso/pelegrin/scotch/") (synopsis "Programs and libraries for graph algorithms") (description "SCOTCH is a set of programs and libraries which implement @@ -870,10 +886,11 @@ (define-public pt-scotch `(modify-phases ,scotch-phases (replace 'build - ;; TODO: Would like to add parallelism here (lambda _ (and - (zero? (system* "make" "ptscotch")) + (zero? (system* "make" + (format #f "-j~a" (parallel-job-count)) + "ptscotch" "ptesmumps")) ;; Install the serial metis compatibility library (zero? (system* "make" "-C" "libscotchmetis" "install"))))) (replace -- cgit v1.2.3