mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: minimap2: Fix build on aarch64-linux.
* gnu/packages/bioinformatics.scm (minimap2)[arguments]: Adjust configure-flags to be better per-architecture. [source]: Add patch. * gnu/packages/patches/minimap2-aarch64-support.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
This commit is contained in:
parent
f48cd014f3
commit
3832704aff
3 changed files with 65 additions and 7 deletions
|
@ -1348,6 +1348,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/mingw-w64-6.0.0-gcc.patch \
|
%D%/packages/patches/mingw-w64-6.0.0-gcc.patch \
|
||||||
%D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch \
|
%D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch \
|
||||||
%D%/packages/patches/mingw-w64-reproducible-gendef.patch \
|
%D%/packages/patches/mingw-w64-reproducible-gendef.patch \
|
||||||
|
%D%/packages/patches/minimap2-aarch64-support.patch \
|
||||||
%D%/packages/patches/minisat-friend-declaration.patch \
|
%D%/packages/patches/minisat-friend-declaration.patch \
|
||||||
%D%/packages/patches/minisat-install.patch \
|
%D%/packages/patches/minisat-install.patch \
|
||||||
%D%/packages/patches/mit-krb5-hurd.patch \
|
%D%/packages/patches/mit-krb5-hurd.patch \
|
||||||
|
|
|
@ -13056,7 +13056,8 @@ (define-public minimap2
|
||||||
"minimap2-" version ".tar.bz2"))
|
"minimap2-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0hi7i9pzxhvjj44khzzzj1lrn5gb5837arr4wgln7k1k5n4ci2mn"))))
|
"0hi7i9pzxhvjj44khzzzj1lrn5gb5837arr4wgln7k1k5n4ci2mn"))
|
||||||
|
(patches (search-patches "minimap2-aarch64-support.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; there are none
|
`(#:tests? #f ; there are none
|
||||||
|
@ -13065,12 +13066,16 @@ (define-public minimap2
|
||||||
(let ((system ,(or (%current-target-system)
|
(let ((system ,(or (%current-target-system)
|
||||||
(%current-system))))
|
(%current-system))))
|
||||||
(cond
|
(cond
|
||||||
((string-prefix? "x86_64" system)
|
((string-prefix? "x86_64" system)
|
||||||
"all")
|
"all")
|
||||||
((or (string-prefix? "armhf" system)
|
((or (string-prefix? "i586" system)
|
||||||
(string-prefix? "aarch64" system))
|
(string-prefix? "i686" system))
|
||||||
"arm_neon=1")
|
"sse2only=1")
|
||||||
(else "sse2only=1"))))
|
((string-prefix? "armhf" system)
|
||||||
|
"arm_neon=1")
|
||||||
|
((string-prefix? "aarch64" system)
|
||||||
|
"aarch64=1")
|
||||||
|
(else ""))))
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(delete 'configure)
|
(delete 'configure)
|
||||||
|
|
52
gnu/packages/patches/minimap2-aarch64-support.patch
Normal file
52
gnu/packages/patches/minimap2-aarch64-support.patch
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
This patch should be removed with the next release. There is WIP upstream
|
||||||
|
support for proper support of more architectures, including aarch64 and powerpc64le.
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index ed341f6..94dbd85 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -6,20 +6,18 @@ PROG= minimap2
|
||||||
|
PROG_EXTRA= sdust minimap2-lite
|
||||||
|
LIBS= -lm -lz -lpthread
|
||||||
|
|
||||||
|
-ifeq ($(arm_neon),) # if arm_neon is not defined
|
||||||
|
-ifeq ($(sse2only),) # if sse2only is not defined
|
||||||
|
- OBJS+=ksw2_extz2_sse41.o ksw2_extd2_sse41.o ksw2_exts2_sse41.o ksw2_extz2_sse2.o ksw2_extd2_sse2.o ksw2_exts2_sse2.o ksw2_dispatch.o
|
||||||
|
-else # if sse2only is defined
|
||||||
|
- OBJS+=ksw2_extz2_sse.o ksw2_extd2_sse.o ksw2_exts2_sse.o
|
||||||
|
-endif
|
||||||
|
-else # if arm_neon is defined
|
||||||
|
+ifneq ($(arm_neon),) # if arm_neon is defined
|
||||||
|
OBJS+=ksw2_extz2_neon.o ksw2_extd2_neon.o ksw2_exts2_neon.o
|
||||||
|
- INCLUDES+=-Isse2neon
|
||||||
|
-ifeq ($(aarch64),) #if aarch64 is not defined
|
||||||
|
CFLAGS+=-D_FILE_OFFSET_BITS=64 -mfpu=neon -fsigned-char
|
||||||
|
-else #if aarch64 is defined
|
||||||
|
+ INCLUDES+=-Isse2neon
|
||||||
|
+else ifneq ($(aarch64),) #if aarch64 is defined
|
||||||
|
+ OBJS+=ksw2_extz2_neon.o ksw2_extd2_neon.o ksw2_exts2_neon.o
|
||||||
|
CFLAGS+=-D_FILE_OFFSET_BITS=64 -fsigned-char
|
||||||
|
-endif
|
||||||
|
+ INCLUDES+=-Isse2neon
|
||||||
|
+else ifneq ($(sse2only),) # if sse2only is defined
|
||||||
|
+ OBJS+=ksw2_extz2_sse.o ksw2_extd2_sse.o ksw2_exts2_sse.o
|
||||||
|
+else # none of the above
|
||||||
|
+ OBJS+=ksw2_extz2_sse41.o ksw2_extd2_sse41.o ksw2_exts2_sse41.o ksw2_extz2_sse2.o ksw2_extd2_sse2.o ksw2_exts2_sse2.o ksw2_dispatch.o
|
||||||
|
endif
|
||||||
|
|
||||||
|
.PHONY:all extra clean depend
|
||||||
|
@@ -46,9 +44,12 @@ sdust:sdust.c kalloc.o kalloc.h kdq.h kvec.h kseq.h ketopt.h sdust.h
|
||||||
|
|
||||||
|
# SSE-specific targets on x86/x86_64
|
||||||
|
|
||||||
|
-ifeq ($(arm_neon),) # if arm_neon is defined, compile this target with the default setting (i.e. no -msse2)
|
||||||
|
+ifneq ($(arm_neon),) # if arm_neon is defined, compile this target with the default setting (i.e. no -msse2)
|
||||||
|
+ksw2_ll_sse.o:ksw2_ll_sse.c ksw2.h kalloc.h
|
||||||
|
+else ifneq ($(aarch64),)
|
||||||
|
ksw2_ll_sse.o:ksw2_ll_sse.c ksw2.h kalloc.h
|
||||||
|
- $(CC) -c $(CFLAGS) -msse2 $(CPPFLAGS) $(INCLUDES) $< -o $@
|
||||||
|
+else
|
||||||
|
+ $(CC) -c $(CFLAGS) -msse2 $(CPPFLAGS) $(INCLUDES) $< -o $@
|
||||||
|
endif
|
||||||
|
|
||||||
|
ksw2_extz2_sse41.o:ksw2_extz2_sse.c ksw2.h kalloc.h
|
Loading…
Reference in a new issue