鲲鹏服务器编译安装Hisat2-2.2.1

准备工作

源码修改

执行下列命令

unzip hisat2-2.2.1-source.zip
unzip sse2neon.zip
cp sse2neon-1.5.0/sse2neon.h hisat2-2.2.1
cd hisat2-2.2.1/

修改Makefile

  1. 修改前:
BITS=32
ifeq (x86_64,$(shell uname -m))
BITS=64
endif

修改后:

BITS=32
ifeq (x86_64,$(shell uname -m))
BITS=64
endif
ifeq (aarch64,$(shell uname -m))
BITS=64
endif
  1. 修改前:
ifeq (32,$(BITS))
        BITS_FLAG = -m32
endif

ifeq (64,$(BITS))
        BITS_FLAG = -m64
endif
SSE_FLAG=-msse2

修改后:

ifeq (32,$(BITS))
        BITS_FLAG = -m32
endif

ifeq (64,$(BITS))
        BITS_FLAG = -m64
endif
SSE_FLAG=-msse2

ifeq(aarch64,$(shell uname -m))
        BITS_FLAG = 
        SSE_FLAG = 
endif
  1. 修改前:
EXTRA_FLAGS += -DPOPCNT_CAPABILITY -std=c++11

修改后:

EXTRA_FLAGS += -std=c++11
  1. 修改前:
DEBUG_FLAGS    = -O0 -g3 $(BITS_FLAG) $(SSE_FLAG)
DEBUG_DEFS     = -DCOMPILER_OPTIONS="\"$(DEBUG_FLAGS) $(EXTRA_FLAGS)\""
RELEASE_FLAGS  = -O3 $(BITS_FLAG) $(SSE_FLAG) -funroll-loops -g3
RELEASE_DEFS   = -DCOMPILER_OPTIONS="\"$(RELEASE_FLAGS) $(EXTRA_FLAGS)\""
NOASSERT_FLAGS = -DNDEBUG
FILE_FLAGS     = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE

修改后:

DEBUG_FLAGS    = -O0 -g3 $(BITS_FLAG) $(SSE_FLAG) -funrool-loops -fsigned-char
DEBUG_DEFS     = -DCOMPILER_OPTIONS="\"$(DEBUG_FLAGS) $(EXTRA_FLAGS)\""
RELEASE_FLAGS  = -O3 $(BITS_FLAG) $(SSE_FLAG) -funroll-loops -g3 -Xlinker --allow-multiple-definition -fsigned-char
RELEASE_DEFS   = -DCOMPILER_OPTIONS="\"$(RELEASE_FLAGS) $(EXTRA_FLAGS)\""
NOASSERT_FLAGS = -DNDEBUG
FILE_FLAGS     = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE

修改源代码

  1. 修改aligner_sw.h
    修改前:
#include <emmintrin.h>

修改后:

#include "sse2neon.h"
  1. 修改sse_util.h
    修改前:
#include <emmintrin.h>

修改后:

#include "sse2neon.h"

编译

执行以下命令

make

注意事项

  • 由于arm下没有cpuid.h,所以EXTRA_FLAGS里的-DPOPCNT_CAPABILITY必须删除
  • 由于arm架构下char默认为unsigned,而x86架构下默认为signed,而hisat2-2.2.1里使用了signed char,因此需要加上-fsigned-char

参考资料

  1. HISAT2 2.1.0 移植指南(CentOS 7.6)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容