On 21/06/15 03:17, Mark H Weaver wrote:
Hi Ben,
Instead of using 'trivial-build-system' for this, it would be better to
use 'gnu-build-system' and remove/replace the phases that aren't
appropriate. So, you'll probably want to remove the 'configure' phase
and replace the 'build' and 'install' phases.
Even so, there are many important phases and implicit inputs in
'gnu-build-system', notably setting the environment variables before the
build, and checking for missing rpaths in the installed binaries.
As you have it now, since you used bare 'binutils' and not our
'ld-wrapper' package, and you didn't add explicit rpaths options to the
linker, I guess that the produced executable won't be able to find the
specific shared libraries it was linked against without more help.
I'm sure you are right, though I tried a few things and cannot get it to
fail. Is there a way to ensure there is nothing amiss?
Updated patch attached.
In answer to my own question
> During development of this patch I noticed badly specified system*
does not throw an error - is there a way to do this so?
One way is to replace system* with (zero? (system* with that being the
return value of the lambda - there's an example in the attached patch.
>From d18f50e17547fa741569be109b31ef13c79b3d97 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrust...@gmail.com>
Date: Sun, 21 Jun 2015 09:02:26 +1000
Subject: [PATCH] gnu: Add fasttree
* gnu/packages/bioinformatics.scm (fasttree): New variable.
---
gnu/packages/bioinformatics.scm | 60 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 12c9175..0aacce7 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -780,6 +780,66 @@ analysis (from RNA-Seq), transcription factor binding quantification in
ChIP-Seq, and analysis of metagenomic data.")
(license license:artistic2.0)))
+(define-public fasttree
+ (package
+ (name "fasttree")
+ (version "2.1.8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.microbesonline.org/fasttree/FastTree-"
+ version ".c"
+ ))
+ (sha256
+ (base32
+ "0dzqc9vr9iiiw21y159xfjl2z90vw0y7r4x6456pcaxiy5hd2wmi"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no "check" target
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'unpack)
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key source #:allow-other-keys)
+ (and (zero? (system* "gcc"
+ "-O3"
+ "-finline-functions"
+ "-funroll-loops"
+ "-Wall"
+ "-o"
+ "FastTree"
+ source
+ "-lm"))
+ (zero? (system* "gcc"
+ "-DOPENMP"
+ "-fopenmp"
+ "-O3"
+ "-finline-functions"
+ "-funroll-loops"
+ "-Wall"
+ "-o"
+ "FastTreeMP"
+ source
+ "-lm")))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out")
+ "/bin")))
+ (mkdir-p bin)
+ (copy-file "FastTree"
+ (string-append bin "/FastTree"))
+ (copy-file "FastTreeMP"
+ (string-append bin "/FastTreeMP"))
+ #t))))))
+ (home-page "http://www.microbesonline.org/fasttree")
+ (synopsis "Infers approximately-maximum-likelihood phylogenetic trees")
+ (description
+ "FastTree can handle alignments with up to a million of sequences in a
+reasonable amount of time and memory. For large alignments, FastTree is
+100-1,000 times faster than PhyML 3.0 or RAxML 7.")
+ (license license:gpl2+)))
+
(define-public fastx-toolkit
(package
(name "fastx-toolkit")
--
2.1.4