mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: Add scotch and pt-scotch with shared libraries
* gnu/packages/maths.scm (scotch-shared, pt-scotch-shared): New variables. Signed-off-by: Leo Famulari <leo@famulari.name>
This commit is contained in:
parent
1467080de4
commit
5fd046cbfd
1 changed files with 80 additions and 0 deletions
|
@ -43,6 +43,7 @@
|
|||
;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
|
||||
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
|
||||
;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com>
|
||||
;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -3246,6 +3247,63 @@ (define-public scotch32
|
|||
(synopsis
|
||||
"Programs and libraries for graph algorithms (32-bit integers)")))
|
||||
|
||||
(define-public scotch-shared
|
||||
(package (inherit scotch)
|
||||
(name "scotch-shared")
|
||||
(native-inputs
|
||||
`(("gcc" ,gcc)
|
||||
("flex" ,flex)
|
||||
("bison" ,bison)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments scotch)
|
||||
((#:phases scotch-shared-phases)
|
||||
`(modify-phases ,scotch-shared-phases
|
||||
(replace
|
||||
'configure
|
||||
(lambda _
|
||||
;; Otherwise, the RUNPATH will lack the final path component.
|
||||
(setenv "RPATHFLAGS" (string-append "-Wl,-rpath="
|
||||
(assoc-ref %outputs "out") "/lib"))
|
||||
(call-with-output-file "Makefile.inc"
|
||||
(lambda (port)
|
||||
(format port "
|
||||
EXE =
|
||||
LIB = .so
|
||||
OBJ = .o
|
||||
MAKE = make
|
||||
AR = gcc
|
||||
ARFLAGS = -shared -o
|
||||
CAT = cat
|
||||
CCS = gcc
|
||||
CCP = mpicc
|
||||
CCD = gcc
|
||||
CPPFLAGS =~{ -D~a~}
|
||||
CFLAGS = -O2 -g -fPIC $(CPPFLAGS) $(RPATHFLAGS)
|
||||
CLIBFLAGS = -shared -fPIC
|
||||
LDFLAGS = -lz -lm -lrt -lpthread -Xlinker --no-as-needed
|
||||
CP = cp
|
||||
LEX = flex -Pscotchyy -olex.yy.c
|
||||
LN = ln
|
||||
MKDIR = mkdir
|
||||
MV = mv
|
||||
RANLIB = echo
|
||||
YACC = bison -pscotchyy -y -b y
|
||||
"
|
||||
'("COMMON_FILE_COMPRESS_GZ"
|
||||
"COMMON_PTHREAD"
|
||||
"COMMON_RANDOM_FIXED_SEED"
|
||||
"INTSIZE64" ;use 'int64_t'
|
||||
;; Prevents symbolc clashes with libesmumps
|
||||
"SCOTCH_RENAME"
|
||||
;; XXX: Causes invalid frees in superlu-dist tests
|
||||
;; "SCOTCH_PTHREAD"
|
||||
;; "SCOTCH_PTHREAD_NUMBER=2"
|
||||
"restrict=__restrict"
|
||||
))))#t))
|
||||
(delete 'check)))))
|
||||
(synopsis
|
||||
"Programs and libraries for graph algorithms (shared libraries version)")))
|
||||
|
||||
(define-public pt-scotch
|
||||
(package (inherit scotch)
|
||||
(name "pt-scotch")
|
||||
|
@ -3293,6 +3351,28 @@ (define-public pt-scotch32
|
|||
(synopsis
|
||||
"Programs and libraries for graph algorithms (with MPI and 32-bit integers)")))
|
||||
|
||||
(define-public pt-scotch-shared
|
||||
(package (inherit scotch-shared)
|
||||
(name "pt-scotch-shared")
|
||||
(propagated-inputs
|
||||
`(("openmpi" ,openmpi))) ;Headers include MPI headers
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments scotch-shared)
|
||||
((#:phases scotch-shared-phases)
|
||||
`(modify-phases ,scotch-shared-phases
|
||||
(replace
|
||||
'build
|
||||
(lambda _
|
||||
(invoke "make" (format #f "-j~a" (parallel-job-count))
|
||||
"ptscotch" "ptesmumps")
|
||||
|
||||
;; Install the serial metis compatibility library
|
||||
(invoke "make" "-C" "libscotchmetis" "install")))
|
||||
(add-before 'check 'mpi-setup
|
||||
,%openmpi-setup)))))
|
||||
(synopsis "Graph algorithms (shared libraries version, with MPI)")))
|
||||
|
||||
|
||||
(define-public metis
|
||||
(package
|
||||
(name "metis")
|
||||
|
|
Loading…
Reference in a new issue