aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/bioinformatics.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2020-08-27 18:15:05 +0300
committerEfraim Flashner <efraim@flashner.co.il>2020-08-27 18:18:55 +0300
commit6d8dd5bad773a9bc4eaf0b3c13dd9c373c3546c3 (patch)
tree27cb328e22c4cd46b6b4a2b0f363329e12a6a181 /gnu/packages/bioinformatics.scm
parent4bbcbe93cd7e65b8e6ceba8988365d3c1a05a867 (diff)
downloadguix-6d8dd5bad773a9bc4eaf0b3c13dd9c373c3546c3.tar.gz
guix-6d8dd5bad773a9bc4eaf0b3c13dd9c373c3546c3.zip
gnu: vcflib: Use shared libraries.
* gnu/packages/bioinformatics.scm (vcflib)[source]: Add patch. Add snippet to adjust files for new locations. [inputs]: Add fastahack, smithwaterman, tabixpp, xz. [native-inputs]: Add pkg-config. Remove the package-source of fastahack, fsom, smithwaterman, tabixpp. [arguments]: Remove make-flags. Add custom phase to add the output lib directory to the rpath. Adjust custom 'unpack-submodule-sources for the change in native-inputs. Adjust custom 'install phase to also install libraries and headers. * gnu/packages/patches/vcflib-use-shared-libraries.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r--gnu/packages/bioinformatics.scm70
1 files changed, 33 insertions, 37 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index afade365ca..db69819055 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -15641,9 +15641,16 @@ library automatically handles index file generation and use.")
"/vcflib-" version "-src.tar.gz"))
(sha256
(base32 "14zzrg8hg8cq9cvq2wdvp21j7nmxxkjrbagw2apd2yqv2kyx42lm"))
+ (patches (search-patches "vcflib-use-shared-libraries.patch"))
(modules '((guix build utils)))
(snippet
`(begin
+ (substitute* (find-files "." "\\.(h|c)(pp)?$")
+ (("\"SmithWatermanGotoh.h\"") "<smithwaterman/SmithWatermanGotoh.h>")
+ (("\"convert.h\"") "<smithwaterman/convert.h>")
+ (("\"disorder.h\"") "<smithwaterman/disorder.h>")
+ (("\"tabix.hpp\"") "<tabix.hpp>")
+ (("\"Fasta.h\"") "<fastahack/Fasta.h>"))
(for-each delete-file-recursively
'("fastahack" "filevercmp" "fsom" "googletest" "intervaltree"
"libVCFH" "multichoose" "smithwaterman" "tabixpp"))
@@ -15651,34 +15658,34 @@ library automatically handles index file generation and use.")
(build-system gnu-build-system)
(inputs
`(("htslib" ,htslib)
+ ("fastahack" ,fastahack)
("perl" ,perl)
("python" ,python)
+ ("smithwaterman" ,smithwaterman)
+ ("tabixpp" ,tabixpp)
+ ("xz" ,xz)
("zlib" ,zlib)))
(native-inputs
- `(;; Submodules.
+ `(("pkg-config" ,pkg-config)
+ ;; Submodules.
;; This package builds against the .o files so we need to extract the source.
- ("fastahack-src" ,(package-source fastahack))
("filevercmp-src" ,(package-source filevercmp))
- ("fsom-src" ,(package-source fsom))
("intervaltree-src" ,(package-source intervaltree))
- ("multichoose-src" ,(package-source multichoose))
- ("smithwaterman-src" ,(package-source smithwaterman))
- ("tabixpp-src" ,(package-source tabixpp))))
+ ("multichoose-src" ,(package-source multichoose))))
(arguments
`(#:tests? #f ; no tests
- #:make-flags (list (string-append "HTS_LIB="
- (assoc-ref %build-inputs "htslib")
- "/lib/libhts.a")
- (string-append "HTS_INCLUDES= -I"
- (assoc-ref %build-inputs "htslib")
- "/include/htslib")
- (string-append "HTS_LDFLAGS= -L"
- (assoc-ref %build-inputs "htslib")
- "/include/htslib" " -lhts"))
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'set-flags
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("LDFLAGS =")
+ (string-append "LDFLAGS = -Wl,-rpath="
+ (assoc-ref outputs "out") "/lib ")))
+ (substitute* "filevercmp/Makefile"
+ (("-c") "-c -fPIC"))
+ #t))
(delete 'configure)
- (delete 'check)
(add-after 'unpack 'unpack-submodule-sources
(lambda* (#:key inputs #:allow-other-keys)
(let ((unpack (lambda (source target)
@@ -15690,34 +15697,23 @@ library automatically handles index file generation and use.")
(assoc-ref inputs source)
"--strip-components=1"))))))
(and
- (unpack "fastahack-src" "fastahack")
(unpack "filevercmp-src" "filevercmp")
- (unpack "fsom-src" "fsom")
(unpack "intervaltree-src" "intervaltree")
- (unpack "multichoose-src" "multichoose")
- (unpack "smithwaterman-src" "smithwaterman")
- (unpack "tabixpp-src" "tabixpp")))))
- (replace 'build
- (lambda* (#:key inputs make-flags #:allow-other-keys)
- (let ((htslib (assoc-ref inputs "htslib")))
- (with-directory-excursion "tabixpp"
- (substitute* "Makefile"
- (("-Ihtslib") (string-append "-I" htslib "/include/htslib"))
- (("-Lhtslib") (string-append "-L" htslib "/lib/htslib"))
- (("htslib/htslib") (string-append htslib "/include/htslib")))
- (invoke "make"
- (string-append "HTS_LIB=" htslib "/lib/libhts.a")))
- (apply invoke "make" "CC=gcc" "CFLAGS=-Itabixpp" make-flags))))
+ (unpack "multichoose-src" "multichoose")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
- (lib (string-append (assoc-ref outputs "out") "/lib")))
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (lib (string-append out "/lib")))
(for-each (lambda (file)
(install-file file bin))
(find-files "bin" ".*"))
- ;; The header files in src/ do not interface libvcflib,
- ;; therefore they are left out.
- (install-file "libvcflib.a" lib))
+ (install-file "libvcflib.so" lib)
+ (install-file "libvcflib.a" lib)
+ (for-each
+ (lambda (file)
+ (install-file file (string-append out "/include")))
+ (find-files "include" "\\.h(pp)?$")))
#t)))))
(home-page "https://github.com/vcflib/vcflib/")
(synopsis "Library for parsing and manipulating VCF files")