mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: lapack: Augment library rpath
* gnu/packages/maths.scm (lapack) [arguments]: New post-installation phase to augment the rpath of installed libraries.
This commit is contained in:
parent
cb3da2339a
commit
57e544e8f7
1 changed files with 29 additions and 1 deletions
|
@ -28,6 +28,7 @@ (define-module (gnu packages maths)
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages fltk)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gettext)
|
||||
|
@ -185,12 +186,18 @@ (define-public lapack
|
|||
"0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s"))))
|
||||
(build-system cmake-build-system)
|
||||
(home-page "http://www.netlib.org/lapack/")
|
||||
(native-inputs `(("patchelf" ,patchelf))) ;for augment-rpath
|
||||
(inputs `(("fortran" ,gfortran-4.8)
|
||||
("python" ,python-2)))
|
||||
(arguments
|
||||
`(#:modules ((guix build cmake-build-system)
|
||||
(guix build utils)
|
||||
(guix build rpath)
|
||||
(srfi srfi-1))
|
||||
#:imported-modules ((guix build cmake-build-system)
|
||||
(guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(guix build rpath))
|
||||
#:configure-flags '("-DBUILD_SHARED_LIBS:BOOL=YES")
|
||||
#:phases (alist-cons-before
|
||||
'check 'patch-python
|
||||
|
@ -198,7 +205,28 @@ (define-public lapack
|
|||
(let ((python (assoc-ref inputs "python")))
|
||||
(substitute* "lapack_testing.py"
|
||||
(("/usr/bin/env python") python))))
|
||||
%standard-phases)))
|
||||
(alist-cons-after
|
||||
'strip 'add-libs-to-runpath
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(fortran (assoc-ref inputs "fortran"))
|
||||
(libc (assoc-ref inputs "libc"))
|
||||
(rpaths `(,(string-append fortran "/lib64")
|
||||
,(string-append fortran "/lib")
|
||||
,(string-append libc "/lib")
|
||||
,(string-append out "/lib"))))
|
||||
;; Set RUNPATH for all libraries
|
||||
(with-directory-excursion out
|
||||
(for-each
|
||||
(lambda (lib)
|
||||
(let ((lib-rpaths (file-rpath lib)))
|
||||
(for-each
|
||||
(lambda (dir)
|
||||
(or (member dir lib-rpaths)
|
||||
(augment-rpath lib dir)))
|
||||
rpaths)))
|
||||
(find-files "lib" ".*so$")))))
|
||||
%standard-phases))))
|
||||
(synopsis "Library for numerical linear algebra")
|
||||
(description
|
||||
"LAPACK is a Fortran 90 library for solving the most commonly occurring
|
||||
|
|
Loading…
Reference in a new issue