ruanjue / smartdenovo

Ultra-fast de novo assembler using long noisy reads
GNU General Public License v3.0
127 stars 29 forks source link

aarch64 platform support #45

Open darmac opened 4 years ago

darmac commented 4 years ago

I want use it on my aarch64(arm64) platform. It means I must use SSE2NEON.h instead of emmintrin.h in ksw.c. and the arm version gcc cannot use "-mpopcnt" and "-mssse3".

So we need this patch for aarch64 platform:

diff --git a/Makefile b/Makefile
index 0802f65..3816b6e 100644
--- a/Makefile
+++ b/Makefile
@@ -2,9 +2,9 @@ VERSION=1.0.0
 MINOR_VER=20140314
 CC=gcc
 ifdef DEBUG
-CFLAGS=-g3 -W -Wall -O0 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -mpopcnt -mssse3
+CFLAGS=-g3 -W -Wall -O0 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
 else
-CFLAGS=-W -Wall -O4 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -mpopcnt -mssse3
+CFLAGS=-W -Wall -O4 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
 endif
 INSTALLDIR=/usr/local/bin
 GLIBS=-lm -lpthread
diff --git a/ksw.c b/ksw.c
index 15dd0f2..22641ed 100644
--- a/ksw.c
+++ b/ksw.c
@@ -25,7 +25,7 @@

 #include <stdlib.h>
 #include <stdint.h>
-#include <emmintrin.h>
+#include "SSE2NEON.h"
 #include "ksw.h"

 #ifdef USE_MALLOC_WRAPPERS

Is there any one can help us merge this feature to smartdenovo ?