diff --git a/Makefile b/Makefile index 540f16d6..4cc1f2eb 100644 --- a/Makefile +++ b/Makefile @@ -138,6 +138,11 @@ BITS=32 ifeq (x86_64,$(shell uname -m)) BITS=64 endif + +ifeq (aarch64,$(shell uname -m)) +BITS=64 +endif + # msys will always be 32 bit so look at the cpu arch instead. ifneq (,$(findstring AMD64,$(PROCESSOR_ARCHITEW6432))) ifeq (1,$(MINGW)) @@ -155,6 +160,11 @@ ifeq (64,$(BITS)) endif SSE_FLAG=-msse2 +ifeq (aarch64,$(shell uname -m)) + BITS_FLAG = + SSE_FLAG = +endif + DEBUG_FLAGS = -O0 -g3 $(BIToS_FLAG) $(SSE_FLAG) DEBUG_DEFS = -DCOMPILER_OPTIONS="\"$(DEBUG_FLAGS) $(EXTRA_FLAGS)\"" RELEASE_FLAGS = -O3 $(BITS_FLAG) $(SSE_FLAG) -funroll-loops -g3 diff --git a/aligner_sw.h b/aligner_sw.h index add5c87d..e6a5cc71 100644 --- a/aligner_sw.h +++ b/aligner_sw.h @@ -70,7 +70,13 @@ #include #include #include "threading.h" + +#ifdef __aarch64__ +#include "SSE2NEON.h" +#else #include +#endif + #include "aligner_sw_common.h" #include "aligner_sw_nuc.h" #include "ds.h" diff --git a/sse_util.h b/sse_util.h index b5781f1a..45645718 100644 --- a/sse_util.h +++ b/sse_util.h @@ -24,7 +24,13 @@ #include "ds.h" #include "limit.h" #include + +#ifdef __aarch64__ +#include "SSE2NEON.h" +#else #include +#endif + class EList_m128i { public: