summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2020-08-27 18:05:20 +0300
committerEfraim Flashner <efraim@flashner.co.il>2020-08-27 18:05:20 +0300
commitafa352223f103388ddbc2d7aae82949a561ec4e1 (patch)
tree50bf673a19851fb0ad6faa2809e3d89d4c171ccc /gnu
parent261bc778b6b7970937bda6996972f27f996be4bd (diff)
downloadguix-afa352223f103388ddbc2d7aae82949a561ec4e1.tar.gz
gnu: smithwaterman: Build and install shared library and headers.
* gnu/packages/bioinformatics.scm (smithwaterman)[arguments]: Add custom
phase to build PIE objects. Add custom 'build-dynamic phase to build
dynamic library. Adjust custom 'install phase to install shared library
and headers.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/bioinformatics.scm17
1 files changed, 17 insertions, 0 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 53778675b9..49122aa714 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -15454,12 +15454,29 @@ some of the details of opening and jumping in tabix-indexed files.")
          #:phases
          (modify-phases %standard-phases
            (delete 'configure) ; There is no configure phase.
+           (add-after 'unpack 'patch-source
+             (lambda _
+               (substitute* "Makefile"
+                 (("-c ") "-c -fPIC "))
+               #t))
+           (add-after 'build 'build-dynamic
+             (lambda _
+               (invoke "g++"
+                       "-shared" "-o" "libsmithwaterman.so"
+                       "smithwaterman.o" "SmithWatermanGotoh.o"
+                       "disorder.o" "BandedSmithWaterman.o"
+                       "LeftAlign.o" "Repeats.o" "IndelAllele.o")))
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
                       (bin (string-append out "/bin"))
                       (lib (string-append out "/lib")))
                  (install-file "smithwaterman" bin)
+                 (for-each
+                   (lambda (file)
+                     (install-file file (string-append out "/include/smithwaterman")))
+                   (find-files "." "\\.h$"))
+                 (install-file "libsmithwaterman.so" lib)
                  (install-file "libsw.a" lib))
                #t)))))
       (home-page "https://github.com/ekg/smithwaterman")