aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gn/packages/bioinformatics.scm20
-rw-r--r--plink-ng-Makefile-zlib.patch127
2 files changed, 129 insertions, 18 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index f30266d..2f588d8 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -22,6 +22,7 @@
#:use-module (gnu packages databases)
#:use-module (gnu packages cpio)
#:use-module (gnu packages file)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages java)
#:use-module (gnu packages linux)
@@ -173,30 +174,27 @@ confidence region for the location of a putative QTL.")
(patches (list (search-patch "plink-ng-Makefile-zlib.patch")))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #t ;no "check" target
- #:make-flags (list (string-append "LIB_LAPACK="
- (assoc-ref %build-inputs "lapack")
- "/lib/liblapack.so")
- "WITH_LAPACK=1"
- "FORCE_DYNAMIC=1"
- ;; disable phoning home
- "WITH_WEBCHECK=")
+ '(#:tests? #f ;no "check" target
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda _
- (system* "make" "-f" "Makefile.std")
+ (zero? (system* "make" "-f" "Makefile.std"))
))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out")
"/bin/")))
- (install-file "plink" bin)
+ (install-file "plink2" bin)
#t))))))
(inputs
`(("zlib" ,zlib)
- ("lapack" ,lapack)))
+ ("openblas" ,openblas)
+ ("atlas" ,atlas)
+ ("lapack" ,lapack)
+ ("gfortran" ,gfortran)
+ ))
(native-inputs
`(("unzip" ,unzip)))
(home-page "https://www.cog-genomics.org/plink2")
diff --git a/plink-ng-Makefile-zlib.patch b/plink-ng-Makefile-zlib.patch
index 6c1f62e..f3bb269 100644
--- a/plink-ng-Makefile-zlib.patch
+++ b/plink-ng-Makefile-zlib.patch
@@ -1,13 +1,126 @@
diff --git a/Makefile.std b/Makefile.std
-index 95b0940..630188a 100644
+index 95b0940..30206be 100644
--- a/Makefile.std
+++ b/Makefile.std
-@@ -22,7 +22,7 @@ endif
- CFLAGS=-Wall -O2
- BLASFLAGS=-L/usr/lib64/atlas -llapack -lcblas -latlas
- LINKFLAGS=-lm -lpthread
+@@ -1,62 +1,22 @@
+ # General-purpose Makefile for PLINK 1.90
+ #
+-# Compilation options:
+-# Do not link to LAPACK NO_LAPACK
+
+-# Leave blank after "=" to disable; put "= 1" to enable
+-# (when enabled, "#define NOLAPACK" must be uncommented in plink_common.h)
+-NO_LAPACK =
+-
+-
+-# should autodetect system
+-SYS = UNIX
+-ifdef SystemRoot
+- SYS = WIN
+-else
+- UNAME := $(shell uname)
+- ifeq ($(UNAME), Darwin)
+- SYS = MAC
+- endif
+-endif
+-
+-CFLAGS=-Wall -O2
+-BLASFLAGS=-L/usr/lib64/atlas -llapack -lcblas -latlas
+-LINKFLAGS=-lm -lpthread
-ZLIB=zlib-1.2.8/libz.so.1.2.8
+-
+-ifeq ($(SYS), MAC)
+- GCC_GTEQ_43 := $(shell expr `g++ -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/'` \>= 40300)
+- ifeq "$(GCC_GTEQ_43)" "1"
+- CFLAGS=-Wall -O2 -flax-vector-conversions
+- endif
+- BLASFLAGS=-framework Accelerate
+- LINKFLAGS=
+- ZLIB=zlib-1.2.8/libz.1.2.8.dylib
+-endif
+-
+-ifeq ($(SYS), WIN)
+-# Note that, unlike the Linux and Mac build processes, this STATICALLY links
+-# LAPACK, since we have not gotten around to trying dynamically-linked LAPACK
+-# on Windows.
+-# If you don't already have LAPACK built, you'll probably want to turn on
+-# NO_LAPACK.
+- BLASFLAGS=-L. lapack/liblapack.a -L. lapack/librefblas.a
+- LINKFLAGS=-lm -static-libgcc
+- ZLIB=zlib-1.2.8/libz.a
+-endif
+-
+-ifdef NO_LAPACK
+- BLASFLAGS=
+-endif
++# CFLAGS=-Wall -O2
++# BLASFLAGS=-lblas -llapack -latlas
++LINKFLAGS=-lm -lpthread -lopenblas -llapack -latlas -lstdc++
+ZLIB=-lz
- ifeq ($(SYS), MAC)
- GCC_GTEQ_43 := $(shell expr `g++ -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/'` \>= 40300)
+ SRC = plink.c plink_assoc.c plink_calc.c plink_cluster.c plink_cnv.c plink_common.c plink_data.c plink_dosage.c plink_family.c plink_filter.c plink_glm.c plink_help.c plink_homozyg.c plink_lasso.c plink_ld.c plink_matrix.c plink_misc.c plink_set.c plink_stats.c SFMT.c dcdflib.c pigz.c yarn.c
+
++OBJ = plink.o plink_assoc.o plink_calc.o plink_cluster.o plink_cnv.o plink_common.o plink_data.o plink_dosage.o plink_family.o plink_filter.o plink_glm.o plink_help.o plink_homozyg.o plink_lasso.o plink_ld.o plink_matrix.o plink_misc.o plink_set.o plink_stats.o SFMT.o dcdflib.o pigz.o yarn.o
++
+ # In the likely event that you are concurrently using PLINK 1.07, we suggest
+ # either renaming that binary to "plink1" or this one to "plink2".
+
+-plink: $(SRC)
+- g++ $(CFLAGS) $(SRC) -o plink $(BLASFLAGS) $(LINKFLAGS) -L. $(ZLIB)
++# plink: $(SRC)
++# g++ $(CFLAGS) $(SRC) -o plink $(BLASFLAGS) $(LINKFLAGS) -L. $(ZLIB)
+
+-plinkw: $(SRC)
++plink: $(SRC)
+ g++ $(CFLAGS) $(SRC) -c
+- gfortran -O2 $(OBJ) -o plink -Wl,-Bstatic $(BLASFLAGS) $(LINKFLAGS) -L. $(ZLIB)
++ gfortran $(OBJ) -o plink2 $(BLASFLAGS) $(LINKFLAGS) -L. $(ZLIB)
++ # gfortran $^ -o plink2 -Wl,-Bstatic $(BLASFLAGS) $(LINKFLAGS) -L. $(ZLIB)
+diff --git a/dose2plink.c b/dose2plink.c
+index dc1f33a..ca2d31c 100644
+--- a/dose2plink.c
++++ b/dose2plink.c
+@@ -96,7 +96,7 @@
+ #endif
+ #endif
+
+-#include "zlib-1.2.8/zlib.h"
++#include "zlib.h"
+
+ #ifdef __APPLE__
+ #include <sys/sysctl.h>
+diff --git a/pigz.c b/pigz.c
+index 6605925..3f4ca54 100644
+--- a/pigz.c
++++ b/pigz.c
+@@ -303,7 +303,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <windows.h>
+-#include "zlib-1.2.8/zlib.h"
++#include "zlib.h"
+
+ void pigz_init(uint32_t setprocs) {
+ return;
+@@ -383,7 +383,7 @@ void parallel_compress(char* out_fname, uint32_t do_append, uint32_t(* emitn)(ui
+ # include <sys/pstat.h>
+ #endif
+
+-#include "zlib-1.2.8/zlib.h" /* deflateInit2(), deflateReset(), deflate(), */
++#include "zlib.h" /* deflateInit2(), deflateReset(), deflate(), */
+ /* deflateEnd(), deflateSetDictionary(), crc32(),
+ inflateBackInit(), inflateBack(), inflateBackEnd(),
+ Z_DEFAULT_COMPRESSION, Z_DEFAULT_STRATEGY,
+diff --git a/plink_common.h b/plink_common.h
+index 5dd77e8..4da9371 100644
+--- a/plink_common.h
++++ b/plink_common.h
+@@ -139,7 +139,7 @@
+
+ #endif // __LP64__
+
+-#include "zlib-1.2.8/zlib.h"
++#include "zlib.h"
+ #include "SFMT.h"
+
+ // 64MB of non-workspace memory guaranteed for now