diff options
-rw-r--r-- | gn/packages/bioinformatics.scm | 20 | ||||
-rw-r--r-- | plink-ng-Makefile-zlib.patch | 127 |
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 |