summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/mpi.scm33
-rw-r--r--gnu/packages/parallel.scm2
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)