编译和安装
操作步骤
- 使用PuTTY工具,以root用户登录服务器。
- 执行以下命令解压HISAT2安装包。
cd /path/to/HISAT2 tar -xvf hisat2-2.1.0.tar.gz cd hisat2-2.1.0
- 执行以下命令设置环境变量。
export NO_TBB=1 export POPCNT_CAPABILITY=0
- 执行以下命令修改“Makefile”文件。
- 打开“Makefile”文件。
vi Makefile
- 按“i”进入编辑模式,修改文件的“BITS=64 aarch64”分支,在第140和141行之间插入以下粗体部分内容。
目前“BITS=64”只支持x86,不支持aarch64,需要新增一个aarch64的分支。
修改前: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
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“Makefile”文件。
- 执行以下命令修改“Makfile”文件。
- 打开“Makefile”文件。
vi Makefile
- 按“i”进入编辑模式,修改文件的-m64以及-msse2的aarch64分支,在第159和160行之间插入以下粗体部分内容。
“Makefile”编译选项-m64/-msse2只支持x86,不支持aarch64,需要增加aarch64分支。
修改前(源文件149 ~156行):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
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“Makefile”文件。
- 执行以下命令修改“Makefile”文件。
- 打开“Makefile”文件。
vi Makefile
- 按“i”进入编辑模式,修改文件的FLAGS参数。修改前:
EXTRA_FLAGS += -DPOPCNT_CAPABILITY 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 RELEASE_DEFS = -DCOMPILER_OPTIONS="\"$(RELEASE_FLAGS) $(EXTRA_FLAGS)\"" NOASSERT_FLAGS = -DNDEBUG FILE_FLAGS = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
修改后:EXTRA_FLAGS += DEBUG_FLAGS = -O0 -g3 $(BIToS_FLAG) $(SSE_FLAG) -funroll-loops -std=c++98 DEBUG_DEFS = -DCOMPILER_OPTIONS="\"$(DEBUG_FLAGS) $(EXTRA_FLAGS)\"" RELEASE_FLAGS = -O3 $(BITS_FLAG) $(SSE_FLAG) -funroll-loops -g3 -std=c++98 -Xlinker --allow-multiple-definition RELEASE_DEFS = -DCOMPILER_OPTIONS="\"$(RELEASE_FLAGS) $(EXTRA_FLAGS)\"" NOASSERT_FLAGS = -DNDEBUG FILE_FLAGS = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“Makefile”文件。
- 执行以下命令修改“Makefile”文件。
- 执行以下命令修改“aligner_sw.h”和“sse_util.h”头文件。
- 执行以下命令下载“sse2neon.h”头文件。
wget https://raw.githubusercontent.com/DLTcollab/sse2neon/master/sse2neon.h
- 执行以下命令进行编译安装。
make