about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner2023-09-20 10:18:06 +0300
committerEfraim Flashner2023-09-20 10:18:06 +0300
commit9fd1f19078f055144f1192534d6f32eb26eb32f1 (patch)
treef5892260afaf377b4c87468ab905f07cdcbce3b6
parent29839033efcc894718b1596e66bcea811da19d7a (diff)
downloadguix-bioinformatics-9fd1f19078f055144f1192534d6f32eb26eb32f1.tar.gz
Add wfmash with glibc-hwcap libraries.
-rw-r--r--gn/packages/bioinformatics.scm93
1 files changed, 93 insertions, 0 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index 75449f3..a303baf 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -195,6 +195,99 @@ accurately delineate genomic rearrangements throughout the genome.  Structural
 variants can be visualized using Delly-maze and Delly-suave.")
     (license license:gpl3)))
 
+(define-public wfmash-x86-64-v2
+  (package/inherit wfmash
+    (name "wfmash-x86-64-v2")
+    (arguments
+     (substitute-keyword-arguments (package-arguments wfmash)
+       ((#:configure-flags flags #~())
+        #~(append (list "-DEXTRA_FLAGS=-march=x86-64-v2"
+                        "-DCMAKE_INSTALL_LIBDIR=lib/glibc-hwcaps/x86-64-v2"
+                        (string-append "-DCMAKE_INSTALL_RPATH=" #$output
+                                       "/lib/glibc-hwcaps/x86-64-v2"))
+                  #$flags))
+       ;; The building machine can't necessarily run the code produced.
+       ((#:tests? _ #t) #f)
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases #$phases
+            (add-after 'install 'remove-binary
+              (lambda _
+                (delete-file-recursively (string-append #$output "/bin"))))))))
+    (supported-systems '("x86_64-linux"))
+    (properties `((hidden? . #t)))))
+
+(define-public wfmash-x86-64-v3
+  (package/inherit wfmash
+    (name "wfmash-x86-64-v3")
+    (arguments
+     (substitute-keyword-arguments (package-arguments wfmash)
+       ((#:configure-flags flags #~())
+        #~(append (list "-DEXTRA_FLAGS=-march=x86-64-v3"
+                        "-DCMAKE_INSTALL_LIBDIR=lib/glibc-hwcaps/x86-64-v3"
+                        (string-append "-DCMAKE_INSTALL_RPATH=" #$output
+                                       "/lib/glibc-hwcaps/x86-64-v3"))
+                  #$flags))
+       ;; The building machine can't necessarily run the code produced.
+       ((#:tests? _ #t) #f)
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases #$phases
+            (add-after 'install 'remove-binary
+              (lambda _
+                (delete-file-recursively (string-append #$output "/bin"))))))))
+    (supported-systems '("x86_64-linux"))
+    #;(properties `((hidden? . #t)))))
+
+(define-public wfmash-x86-64-v4
+  (package/inherit wfmash
+    (name "wfmash-x86-64-v4")
+    (arguments
+     (substitute-keyword-arguments (package-arguments wfmash)
+       ((#:configure-flags flags #~())
+        #~(append (list "-DEXTRA_FLAGS=-march=x86-64-v4"
+                        "-DCMAKE_INSTALL_LIBDIR=lib/glibc-hwcaps/x86-64-v4"
+                        (string-append "-DCMAKE_INSTALL_RPATH=" #$output
+                                       "/lib/glibc-hwcaps/x86-64-v4"))
+                  #$flags))
+       ;; The building machine can't necessarily run the code produced.
+       ((#:tests? _ #t) #f)
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases #$phases
+            (add-after 'install 'remove-binary
+              (lambda _
+                (delete-file-recursively (string-append #$output "/bin"))))))))
+    (supported-systems '("x86_64-linux"))
+    (properties `((hidden? . #t)))))
+
+;; This copy of wfmash will automatically use the libraries that target the
+;; x86_64 psABI which the hardware supports.
+(define-public wfmash-hwcaps
+  (package/inherit wfmash
+    (name "wfmash-hwcaps")
+    (arguments
+     (substitute-keyword-arguments (package-arguments wfmash)
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases #$phases
+            (add-after 'install 'install-optimized-libraries
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let ((hwcaps "/lib/glibc-hwcaps"))
+                  (copy-recursively
+                    (string-append (assoc-ref inputs "wfmash-x86-64-v2")
+                                   hwcaps "/x86-64-v2")
+                    (string-append #$output hwcaps "/x86-64-v2"))
+                  (copy-recursively
+                    (string-append (assoc-ref inputs "wfmash-x86-64-v3")
+                                   hwcaps "/x86-64-v3")
+                    (string-append #$output hwcaps "/x86-64-v3"))
+                  (copy-recursively
+                    (string-append (assoc-ref inputs "wfmash-x86-64-v4")
+                                   hwcaps "/x86-64-v4")
+                    (string-append #$output hwcaps "/x86-64-v4")))))))))
+    (native-inputs
+     (modify-inputs (package-native-inputs wfmash)
+                    (append wfmash-x86-64-v2
+                            wfmash-x86-64-v3
+                            wfmash-x86-64-v4)))))
+
 (define-public freec
   (package
     (name "control-freec")