gnu: Add suitesparse-config.

The suitesparse-source variable contains the entire SuiteSparse source code,
which is used for all subpackages.

* gnu/packages/maths.scm (suitesparse-version, suitesparse-source,
suitesparse-config): New variables.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
David Elsing 2023-10-05 21:34:45 +00:00 committed by Ludovic Courtès
parent 4a368c3a8b
commit a6fc1164c4
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -5039,6 +5039,87 @@ (define-public openspecfun
;; public domain software.
(license (list license:expat license:public-domain))))
;; Source for the modular SuiteSparse packages. When updating, also update the
;; (different) versions of the subpackages.
(define suitesparse-version "7.2.0")
(define suitesparse-source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/DrTimothyAldenDavis/SuiteSparse")
(commit (string-append "v" suitesparse-version))))
(file-name (git-file-name "suitesparse" suitesparse-version))
(sha256
(base32
"1draljn8i46862drc6008cnb2zjpklf74j8c34jirjazzpf53kaa"))
(modules '((guix build utils)))
(snippet
#~(begin
;; Delete autogenerated and bundled files
(for-each delete-file (find-files "." "\\.pdf$"))
;; ssget
(delete-file-recursively "ssget")
;; SuiteSparse_config
(delete-file "SuiteSparse_config/SuiteSparse_config.h")
;; CHOLMOD
(delete-file-recursively "CHOLMOD/SuiteSparse_metis")
; GraphBLAS
(delete-file "GraphBLAS/README.md")
(delete-file "GraphBLAS/Config/GB_config.h")
(delete-file "GraphBLAS/Config/GB_prejit.c")
(delete-file-recursively "GraphBLAS/cpu_features")
(delete-file "GraphBLAS/CUDA/GB_cuda_common_jitFactory.hpp")
(delete-file "GraphBLAS/JITpackage/GB_JITpackage.c")
(delete-file-recursively "GraphBLAS/lz4/lz4.c")
(delete-file-recursively "GraphBLAS/lz4/lz4.h")
(delete-file-recursively "GraphBLAS/lz4/lz4hc.c")
(delete-file-recursively "GraphBLAS/lz4/lz4hc.h")
(delete-file "GraphBLAS/GraphBLAS/Config/GB_config.h")
(delete-file "GraphBLAS/Tcov/PreJIT/GB_prejit.c")
(delete-file-recursively "GraphBLAS/Source/FactoryKernels")
(delete-file "GraphBLAS/Source/GB_AxB__include1.h")
(delete-file "GraphBLAS/xxHash/xxhash.h")
(delete-file-recursively "GraphBLAS/zstd/zstd_subset")
;; KLU
(delete-file "KLU/Include/klu.h")
(delete-file "KLU/Doc/klu_version.tex")
;; LDL
(delete-file "LDL/Include/ldl.h")
(delete-file "LDL/Doc/ldl_version.tex")
;; RBio
(delete-file "RBio/Include/RBio.h")
;; SPEX
(delete-file "SPEX/Include/SPEX.h")
(delete-file "SPEX/Doc/SPEX_version.tex")
;; SPQR
(delete-file "SPQR/Include/SuiteSparseQR_definitions.h")
(delete-file "SPQR/Doc/spqr_version.tex")
;; UMFPACK
(delete-file "UMFPACK/Include/umfpack.h")
(delete-file "UMFPACK/Doc/umfpack_version.tex")))))
(define-public suitesparse-config
(package
(name "suitesparse-config")
(version suitesparse-version)
(source suitesparse-source)
(build-system cmake-build-system)
(arguments
(list
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "SuiteSparse_config"))))))
(inputs (list openblas))
(native-inputs (list pkg-config))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Configuration for all SuiteSparse packages")
(description "SuiteSparse is a suite of sparse matrix algorithms. This
package contains a library with common configuration options.")
(license license:bsd-3)))
(define-public suitesparse
(package
(name "suitesparse")