diff options
author | Ludovic Courtès <ludovic.courtes@inria.fr> | 2017-06-30 17:55:41 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-06-30 18:44:41 +0200 |
commit | 798b7678a08f11ce8648facbf0b866996ce85b9e (patch) | |
tree | bda7e77a18fc2316c8b12dde11a975c3276e39aa | |
parent | 7eb9f31cd9bda7c8293f0a8a35d68f8ecf323b7e (diff) | |
download | guix-798b7678a08f11ce8648facbf0b866996ce85b9e.tar guix-798b7678a08f11ce8648facbf0b866996ce85b9e.tar.gz |
gnu: hwloc: Add "lib" and "debug" outputs.
* gnu/packages/mpi.scm (hwloc)[outputs]: New field.
[arguments]: Add 'avoid-circular-references' phase.
(openmpi)[inputs]: Use the "lib" output of HWLOC.
* gnu/packages/parallel.scm (slurm)[inputs]: Likewise.
-rw-r--r-- | gnu/packages/mpi.scm | 33 | ||||
-rw-r--r-- | gnu/packages/parallel.scm | 2 |
2 files changed, 23 insertions, 12 deletions
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 277a2d5f58..3b1ba003c6 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -51,6 +51,9 @@ (base32 "0acph1mf7588hfx8ds26ncr6nw5fd9x92adm11fwin7f93i10sdb")))) (build-system gnu-build-system) + (outputs '("out" ;'lstopo' & co., depends on Cairo, libx11, etc. + "lib" ;small closure + "debug")) (inputs `(("libx11" ,libx11) ("cairo" ,cairo) @@ -70,16 +73,24 @@ `(#:configure-flags '("--localstatedir=/var") #:phases (modify-phases %standard-phases - (add-after - 'install 'refine-libnuma - ;; Give -L arguments for libraries to avoid propagation - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (numa (assoc-ref inputs "numactl"))) - (substitute* (map (lambda (f) (string-append out "/" f)) - '("lib/pkgconfig/hwloc.pc" "lib/libhwloc.la")) - (("-lnuma" lib) - (string-append "-L" numa "/lib " lib))))))))) + (add-after 'install 'refine-libnuma + ;; Give -L arguments for libraries to avoid propagation + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "lib")) + (numa (assoc-ref inputs "numactl"))) + (substitute* (map (lambda (f) (string-append out "/" f)) + '("lib/pkgconfig/hwloc.pc" "lib/libhwloc.la")) + (("-lnuma" lib) + (string-append "-L" numa "/lib " lib)))))) + (add-after 'install 'avoid-circular-references + (lambda* (#:key outputs #:allow-other-keys) + (let ((lib (assoc-ref outputs "lib"))) + ;; Suppress the 'prefix=' and 'exec_prefix=' lines so that the + ;; "lib" output doesn't refer to "out". + (substitute* (string-append lib "/lib/pkgconfig/hwloc.pc") + (("^.*prefix=.*$") + "")) + #t)))))) (home-page "https://www.open-mpi.org/projects/hwloc/") (synopsis "Abstraction of hardware architectures") (description @@ -111,7 +122,7 @@ bind processes, and much more.") "0k95ri9f8kzx5vhzrdbzn59rn2324fs4a96w5v8jy20j8dkbp13l")))) (build-system gnu-build-system) (inputs - `(("hwloc" ,hwloc) + `(("hwloc" ,hwloc "lib") ("gfortran" ,gfortran) ("valgrind" ,valgrind))) (native-inputs diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index c1f962a4b6..37126040af 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -113,7 +113,7 @@ and they are executed on lists of files, hosts, users or other items.") ;; in particular mysql and gtk+. (inputs `(("expect" ,expect) ("freeipmi" ,freeipmi) - ("hwloc" ,hwloc) + ("hwloc" ,hwloc "lib") ("json-c" ,json-c) ("linux-pam" , linux-pam) ("munge" ,munge) |