1# 2# Copyright 2015, Daehwan Kim <infphilo@gmail.com> 3# 4# This file is part of HISAT2. 5# 6# HISAT 2 is free software: you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation, either version 3 of the License, or 9# (at your option) any later version. 10# 11# HISAT 2 is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15# 16# You should have received a copy of the GNU General Public License 17# along with HISAT. If not, see <http://www.gnu.org/licenses/>. 18# 19# 20# Makefile for hisat2-align, hisat2-build, hisat2-inspect 21# 22 23INC = 24GCC_PREFIX = $(shell dirname `which gcc`) 25GCC_SUFFIX = 26CC ?= $(GCC_PREFIX)/gcc$(GCC_SUFFIX) 27CPP ?= $(GCC_PREFIX)/g++$(GCC_SUFFIX) 28CXX ?= $(CPP) 29INSTALL ?= install 30 31HEADERS = $(wildcard *.h) 32BOWTIE_MM = 1 33BOWTIE_SHARED_MEM = 0 34 35# Detect Cygwin or MinGW 36WINDOWS = 0 37CYGWIN = 0 38MINGW = 0 39ifneq (,$(findstring CYGWIN,$(shell uname))) 40 WINDOWS = 1 41 CYGWIN = 1 42 # POSIX memory-mapped files not currently supported on Windows 43 BOWTIE_MM = 0 44 BOWTIE_SHARED_MEM = 0 45else 46 ifneq (,$(findstring MINGW,$(shell uname))) 47 WINDOWS = 1 48 MINGW = 1 49 # POSIX memory-mapped files not currently supported on Windows 50 BOWTIE_MM = 0 51 BOWTIE_SHARED_MEM = 0 52 endif 53endif 54 55MACOS = 0 56ifneq (,$(findstring Darwin,$(shell uname))) 57 MACOS = 1 58endif 59 60EXTRA_FLAGS += -std=c++11 61INC += -I. -I third_party 62 63MM_DEF = 64 65ifeq (1,$(BOWTIE_MM)) 66 MM_DEF = -DBOWTIE_MM 67endif 68 69SHMEM_DEF = 70 71ifeq (1,$(BOWTIE_SHARED_MEM)) 72 SHMEM_DEF = -DBOWTIE_SHARED_MEM 73endif 74 75PTHREAD_PKG = 76PTHREAD_LIB = 77 78ifeq (1,$(MINGW)) 79 PTHREAD_LIB = 80else 81 PTHREAD_LIB = -lpthread 82endif 83 84SEARCH_LIBS = 85BUILD_LIBS = 86INSPECT_LIBS = 87 88ifeq (1,$(MINGW)) 89 BUILD_LIBS = 90 INSPECT_LIBS = 91endif 92 93USE_SRA = 0 94SRA_DEF = 95SRA_LIB = 96SERACH_INC = 97ifeq (1,$(USE_SRA)) 98 SRA_DEF = -DUSE_SRA 99 SRA_LIB = -lncbi-ngs-c++-static -lngs-c++-static -lncbi-vdb-static -ldl 100 SEARCH_INC += -I$(NCBI_NGS_DIR)/include -I$(NCBI_VDB_DIR)/include 101 SEARCH_LIBS += -L$(NCBI_NGS_DIR)/lib64 -L$(NCBI_VDB_DIR)/lib64 102endif 103 104LIBS = $(PTHREAD_LIB) 105 106SHARED_CPPS = ccnt_lut.cpp ref_read.cpp alphabet.cpp shmem.cpp \ 107 edit.cpp gfm.cpp \ 108 reference.cpp ds.cpp multikey_qsort.cpp limit.cpp \ 109 random_source.cpp tinythread.cpp 110SEARCH_CPPS = qual.cpp pat.cpp \ 111 read_qseq.cpp aligner_seed_policy.cpp \ 112 aligner_seed.cpp \ 113 aligner_seed2.cpp \ 114 aligner_sw.cpp \ 115 aligner_sw_driver.cpp aligner_cache.cpp \ 116 aligner_result.cpp ref_coord.cpp mask.cpp \ 117 pe.cpp aln_sink.cpp dp_framer.cpp \ 118 scoring.cpp presets.cpp unique.cpp \ 119 simple_func.cpp \ 120 random_util.cpp \ 121 aligner_bt.cpp sse_util.cpp \ 122 aligner_swsse.cpp outq.cpp \ 123 aligner_swsse_loc_i16.cpp \ 124 aligner_swsse_ee_i16.cpp \ 125 aligner_swsse_loc_u8.cpp \ 126 aligner_swsse_ee_u8.cpp \ 127 aligner_driver.cpp \ 128 splice_site.cpp 129 130BUILD_CPPS = diff_sample.cpp 131 132REPEAT_CPPS = \ 133 mask.cpp \ 134 qual.cpp \ 135 aligner_bt.cpp \ 136 scoring.cpp \ 137 simple_func.cpp \ 138 dp_framer.cpp \ 139 aligner_result.cpp \ 140 aligner_sw_driver.cpp \ 141 aligner_sw.cpp \ 142 aligner_swsse_ee_i16.cpp \ 143 aligner_swsse_ee_u8.cpp \ 144 aligner_swsse_loc_i16.cpp \ 145 aligner_swsse_loc_u8.cpp \ 146 aligner_swsse.cpp \ 147 bit_packed_array.cpp \ 148 repeat_builder.cpp 149 150HISAT2_CPPS_MAIN = $(SEARCH_CPPS) hisat2_main.cpp 151HISAT2_BUILD_CPPS_MAIN = $(BUILD_CPPS) hisat2_build_main.cpp 152HISAT2_REPEAT_CPPS_MAIN = $(REPEAT_CPPS) $(BUILD_CPPS) hisat2_repeat_main.cpp 153 154SEARCH_FRAGMENTS = $(wildcard search_*_phase*.c) 155VERSION = $(shell cat VERSION) 156 157DEBUG_FLAGS = -O0 -g3 $(BITS_FLAG) $(SSE_FLAG) 158DEBUG_DEFS = -DCOMPILER_OPTIONS="\"$(DEBUG_FLAGS) $(EXTRA_FLAGS)\"" 159RELEASE_FLAGS = $(CXXFLAGS) 160RELEASE_DEFS = -DCOMPILER_OPTIONS="\"$(RELEASE_FLAGS) $(EXTRA_FLAGS)\"" 161NOASSERT_FLAGS = -DNDEBUG 162FILE_FLAGS = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE 163 164ifeq (1,$(USE_SRA)) 165 ifeq (1, $(MACOS)) 166 SRA_LIB += -stdlib=libc++ 167 DEBUG_FLAGS += -mmacosx-version-min=10.10 168 RELEASE_FLAGS += -mmacosx-version-min=10.10 169 endif 170endif 171 172 173HISAT2_BIN_LIST = hisat2-build-s \ 174 hisat2-build-l \ 175 hisat2-align-s \ 176 hisat2-align-l \ 177 hisat2-inspect-s \ 178 hisat2-inspect-l \ 179 hisat2-repeat 180HISAT2_BIN_LIST_AUX = hisat2-build-s-debug \ 181 hisat2-build-l-debug \ 182 hisat2-align-s-debug \ 183 hisat2-align-l-debug \ 184 hisat2-inspect-s-debug \ 185 hisat2-inspect-l-debug \ 186 hisat2-repeat-debug 187 188HT2LIB_DIR = hisat2lib 189HT2LIB_SRCS = $(SHARED_CPPS) \ 190 $(HT2LIB_DIR)/ht2_init.cpp \ 191 $(HT2LIB_DIR)/ht2_repeat.cpp \ 192 $(HT2LIB_DIR)/ht2_index.cpp 193 194HT2LIB_OBJS = $(HT2LIB_SRCS:.cpp=.o) 195 196HT2LIB_DEBUG_OBJS = $(addprefix .ht2lib-obj-debug/,$(HT2LIB_OBJS)) 197HT2LIB_RELEASE_OBJS = $(addprefix .ht2lib-obj-release/,$(HT2LIB_OBJS)) 198HT2LIB_SHARED_DEBUG_OBJS = $(addprefix .ht2lib-obj-debug-shared/,$(HT2LIB_OBJS)) 199HT2LIB_SHARED_RELEASE_OBJS = $(addprefix .ht2lib-obj-release-shared/,$(HT2LIB_OBJS)) 200 201HT2LIB_PKG_SRC = \ 202 $(HT2LIB_DIR)/ht2_init.cpp \ 203 $(HT2LIB_DIR)/ht2_repeat.cpp \ 204 $(HT2LIB_DIR)/ht2_index.cpp \ 205 $(HT2LIB_DIR)/ht2.h \ 206 $(HT2LIB_DIR)/ht2_handle.h \ 207 $(HT2LIB_DIR)/java_jni/Makefile \ 208 $(HT2LIB_DIR)/java_jni/ht2module.c \ 209 $(HT2LIB_DIR)/java_jni/HT2Module.java \ 210 $(HT2LIB_DIR)/java_jni/HT2ModuleExample.java \ 211 $(HT2LIB_DIR)/pymodule/Makefile \ 212 $(HT2LIB_DIR)/pymodule/ht2module.c \ 213 $(HT2LIB_DIR)/pymodule/setup.py \ 214 $(HT2LIB_DIR)/pymodule/ht2example.py 215 216 217GENERAL_LIST = $(wildcard scripts/*.sh) \ 218 $(wildcard scripts/*.pl) \ 219 $(wildcard *.py) \ 220 $(wildcard example/index/*.ht2) \ 221 $(wildcard example/reads/*.fa) \ 222 example/reference/22_20-21M.fa \ 223 example/reference/22_20-21M.snp \ 224 $(PTHREAD_PKG) \ 225 hisat2 \ 226 hisat2-build \ 227 hisat2-inspect \ 228 AUTHORS \ 229 LICENSE \ 230 NEWS \ 231 MANUAL \ 232 MANUAL.markdown \ 233 TUTORIAL \ 234 VERSION 235 236ifeq (1,$(WINDOWS)) 237 HISAT2_BIN_LIST := $(HISAT2_BIN_LIST) hisat2.bat hisat2-build.bat hisat2-inspect.bat 238endif 239 240# This is helpful on Windows under MinGW/MSYS, where Make might go for 241# the Windows FIND tool instead. 242FIND=$(shell which find) 243 244SRC_PKG_LIST = $(wildcard *.h) \ 245 $(wildcard *.hh) \ 246 $(wildcard *.c) \ 247 $(wildcard *.cpp) \ 248 $(HT2LIB_PKG_SRC) \ 249 Makefile \ 250 CMakeLists.txt \ 251 $(GENERAL_LIST) 252 253BIN_PKG_LIST = $(GENERAL_LIST) 254 255.PHONY: all allall both both-debug 256 257all: $(HISAT2_BIN_LIST) 258 259allall: $(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX) 260 261both: hisat2-align-s hisat2-align-l hisat2-build-s hisat2-build-l 262 263both-debug: hisat2-align-s-debug hisat2-align-l-debug hisat2-build-s-debug hisat2-build-l-debug 264 265repeat: hisat2-repeat 266 267repeat-debug: hisat2-repeat-debug 268 269DEFS=-fno-strict-aliasing \ 270 -DHISAT2_VERSION="\"`cat VERSION`\"" \ 271 -DBUILD_HOST="\"`hostname`\"" \ 272 -DBUILD_TIME="\"`date`\"" \ 273 -DCOMPILER_VERSION="\"`$(CXX) -v 2>&1 | tail -1`\"" \ 274 $(FILE_FLAGS) \ 275 $(PREF_DEF) \ 276 $(MM_DEF) \ 277 $(SHMEM_DEF) 278 279# 280# hisat-bp targets 281# 282 283hisat-bp-bin: hisat_bp.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS) 284 $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) \ 285 $(DEFS) -DBOWTIE2 $(NOASSERT_FLAGS) -Wall \ 286 $(INC) \ 287 -o $@ $< \ 288 $(SHARED_CPPS) $(HISAT_CPPS_MAIN) \ 289 $(LIBS) $(SEARCH_LIBS) 290 291hisat-bp-bin-debug: hisat_bp.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS) 292 $(CXX) $(DEBUG_FLAGS) \ 293 $(DEBUG_DEFS) $(EXTRA_FLAGS) \ 294 $(DEFS) -DBOWTIE2 -Wall \ 295 $(INC) \ 296 -o $@ $< \ 297 $(SHARED_CPPS) $(HISAT_CPPS_MAIN) \ 298 $(LIBS) $(SEARCH_LIBS) 299 300# 301# hisat2-repeat targets 302# 303 304hisat2-repeat: hisat2_repeat.cpp $(REPEAT_CPPS) $(SHARED_CPPS) $(HEADERS) 305 $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) \ 306 $(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX $(NOASSERT_FLAGS) -Wall \ 307 $(INC) \ 308 -o $@ $< \ 309 $(SHARED_CPPS) $(HISAT2_REPEAT_CPPS_MAIN) \ 310 $(LIBS) $(BUILD_LIBS) 311 312hisat2-repeat-debug: hisat2_repeat.cpp $(REPEAT_CPPS) $(SHARED_CPPS) $(HEADERS) 313 $(CXX) $(DEBUG_FLAGS) $(DEBUG_DEFS) $(EXTRA_FLAGS) \ 314 $(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX -Wall \ 315 $(INC) \ 316 -o $@ $< \ 317 $(SHARED_CPPS) $(HISAT2_REPEAT_CPPS_MAIN) \ 318 $(LIBS) $(BUILD_LIBS) 319 320 321# 322# hisat2-build targets 323# 324 325hisat2-build-s: hisat2_build.cpp $(SHARED_CPPS) $(HEADERS) 326 $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) \ 327 $(DEFS) -DBOWTIE2 $(NOASSERT_FLAGS) -Wall -DMASSIVE_DATA_RLCSA \ 328 $(INC) \ 329 -o $@ $< \ 330 $(SHARED_CPPS) $(HISAT2_BUILD_CPPS_MAIN) \ 331 $(LIBS) $(BUILD_LIBS) 332 333hisat2-build-l: hisat2_build.cpp $(SHARED_CPPS) $(HEADERS) 334 $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) \ 335 $(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX $(NOASSERT_FLAGS) -Wall \ 336 $(INC) \ 337 -o $@ $< \ 338 $(SHARED_CPPS) $(HISAT2_BUILD_CPPS_MAIN) \ 339 $(LIBS) $(BUILD_LIBS) 340 341hisat2-build-s-debug: hisat2_build.cpp $(SHARED_CPPS) $(HEADERS) 342 $(CXX) $(DEBUG_FLAGS) $(DEBUG_DEFS) $(EXTRA_FLAGS) \ 343 $(DEFS) -DBOWTIE2 -Wall -DMASSIVE_DATA_RLCSA \ 344 $(INC) \ 345 -o $@ $< \ 346 $(SHARED_CPPS) $(HISAT2_BUILD_CPPS_MAIN) \ 347 $(LIBS) $(BUILD_LIBS) 348 349hisat2-build-l-debug: hisat2_build.cpp $(SHARED_CPPS) $(HEADERS) 350 $(CXX) $(DEBUG_FLAGS) $(DEBUG_DEFS) $(EXTRA_FLAGS) \ 351 $(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX -Wall \ 352 $(INC) \ 353 -o $@ $< \ 354 $(SHARED_CPPS) $(HISAT2_BUILD_CPPS_MAIN) \ 355 $(LIBS) $(BUILD_LIBS) 356 357# 358# hisat2 targets 359# 360 361hisat2-align-s: hisat2.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS) 362 $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) \ 363 $(DEFS) $(SRA_DEF) -DBOWTIE2 $(NOASSERT_FLAGS) -Wall \ 364 $(INC) $(SEARCH_INC) \ 365 -o $@ $< \ 366 $(SHARED_CPPS) $(HISAT2_CPPS_MAIN) \ 367 $(LIBS) $(SRA_LIB) $(SEARCH_LIBS) 368 369hisat2-align-l: hisat2.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS) 370 $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) \ 371 $(DEFS) $(SRA_DEF) -DBOWTIE2 -DBOWTIE_64BIT_INDEX $(NOASSERT_FLAGS) -Wall \ 372 $(INC) $(SEARCH_INC) \ 373 -o $@ $< \ 374 $(SHARED_CPPS) $(HISAT2_CPPS_MAIN) \ 375 $(LIBS) $(SRA_LIB) $(SEARCH_LIBS) 376 377hisat2-align-s-debug: hisat2.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS) 378 $(CXX) $(DEBUG_FLAGS) \ 379 $(DEBUG_DEFS) $(EXTRA_FLAGS) \ 380 $(DEFS) $(SRA_DEF) -DBOWTIE2 -Wall \ 381 $(INC) $(SEARCH_INC) \ 382 -o $@ $< \ 383 $(SHARED_CPPS) $(HISAT2_CPPS_MAIN) \ 384 $(LIBS) $(SRA_LIB) $(SEARCH_LIBS) 385 386hisat2-align-l-debug: hisat2.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS) 387 $(CXX) $(DEBUG_FLAGS) \ 388 $(DEBUG_DEFS) $(EXTRA_FLAGS) \ 389 $(DEFS) $(SRA_DEF) -DBOWTIE2 -DBOWTIE_64BIT_INDEX -Wall \ 390 $(INC) $(SEARCH_INC) \ 391 -o $@ $< \ 392 $(SHARED_CPPS) $(HISAT2_CPPS_MAIN) \ 393 $(LIBS) $(SRA_LIB) $(SEARCH_LIBS) 394 395# 396# hisat2-inspect targets 397# 398 399hisat2-inspect-s: hisat2_inspect.cpp $(HEADERS) $(SHARED_CPPS) 400 $(CXX) $(RELEASE_FLAGS) \ 401 $(RELEASE_DEFS) $(EXTRA_FLAGS) \ 402 $(DEFS) -DBOWTIE2 -DHISAT2_INSPECT_MAIN -Wall \ 403 $(INC) -I . \ 404 -o $@ $< \ 405 $(SHARED_CPPS) \ 406 $(LIBS) $(INSPECT_LIBS) 407 408hisat2-inspect-l: hisat2_inspect.cpp $(HEADERS) $(SHARED_CPPS) 409 $(CXX) $(RELEASE_FLAGS) \ 410 $(RELEASE_DEFS) $(EXTRA_FLAGS) \ 411 $(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX -DHISAT2_INSPECT_MAIN -Wall \ 412 $(INC) -I . \ 413 -o $@ $< \ 414 $(SHARED_CPPS) \ 415 $(LIBS) $(INSPECT_LIBS) 416 417hisat2-inspect-s-debug: hisat2_inspect.cpp $(HEADERS) $(SHARED_CPPS) 418 $(CXX) $(DEBUG_FLAGS) \ 419 $(DEBUG_DEFS) $(EXTRA_FLAGS) \ 420 $(DEFS) -DBOWTIE2 -DHISAT2_INSPECT_MAIN -Wall \ 421 $(INC) -I . \ 422 -o $@ $< \ 423 $(SHARED_CPPS) \ 424 $(LIBS) $(INSPECT_LIBS) 425 426hisat2-inspect-l-debug: hisat2_inspect.cpp $(HEADERS) $(SHARED_CPPS) 427 $(CXX) $(DEBUG_FLAGS) \ 428 $(DEBUG_DEFS) $(EXTRA_FLAGS) \ 429 $(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX -DHISAT2_INSPECT_MAIN -Wall \ 430 $(INC) -I . \ 431 -o $@ $< \ 432 $(SHARED_CPPS) \ 433 $(LIBS) $(INSPECT_LIBS) 434 435# 436# HT2LIB targets 437# 438 439ht2lib: libhisat2lib-debug.a libhisat2lib.a libhisat2lib-debug.so libhisat2lib.so 440 441libhisat2lib-debug.a: $(HT2LIB_DEBUG_OBJS) 442 ar rc $@ $(HT2LIB_DEBUG_OBJS) 443 444libhisat2lib.a: $(HT2LIB_RELEASE_OBJS) 445 ar rc $@ $(HT2LIB_RELEASE_OBJS) 446 447libhisat2lib-debug.so: $(HT2LIB_SHARED_DEBUG_OBJS) 448 $(CXX) $(DEBUG_FLAGS) $(DEBUG_DEFS) $(EXTRA_FLAGS) $(DEFS) $(SRA_DEF) -DBOWTIE2 -Wall $(INC) $(SEARCH_INC) \ 449 -shared -o $@ $(HT2LIB_SHARED_DEBUG_OBJS) $(LIBS) $(SRA_LIB) $(SEARCH_LIBS) 450 451libhisat2lib.so: $(HT2LIB_SHARED_RELEASE_OBJS) 452 $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) $(DEFS) $(SRA_DEF) -DBOWTIE2 $(NOASSERT_FLAGS) -Wall $(INC) $(SEARCH_INC)\ 453 -shared -o $@ $(HT2LIB_SHARED_RELEASE_OBJS) $(LIBS) $(SRA_LIB) $(SEARCH_LIBS) 454 455.ht2lib-obj-debug/%.o: %.cpp 456 @mkdir -p $(dir $@)/$(dir $<) 457 $(CXX) -fPIC $(DEBUG_FLAGS) $(DEBUG_DEFS) $(EXTRA_FLAGS) $(DEFS) $(SRA_DEF) -DBOWTIE2 -Wall $(INC) $(SEARCH_INC) \ 458 -c -o $@ $< 459 460.ht2lib-obj-release/%.o: %.cpp 461 @mkdir -p $(dir $@)/$(dir $<) 462 $(CXX) -fPIC $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) $(DEFS) $(SRA_DEF) -DBOWTIE2 $(NOASSERT_FLAGS) -Wall $(INC) $(SEARCH_INC) \ 463 -c -o $@ $< 464 465.ht2lib-obj-debug-shared/%.o: %.cpp 466 @mkdir -p $(dir $@)/$(dir $<) 467 $(CXX) -fPIC $(DEBUG_FLAGS) $(DEBUG_DEFS) $(EXTRA_FLAGS) $(DEFS) $(SRA_DEF) -DBOWTIE2 -Wall $(INC) $(SEARCH_INC) \ 468 -c -o $@ $< 469 470.ht2lib-obj-release-shared/%.o: %.cpp 471 @mkdir -p $(dir $@)/$(dir $<) 472 $(CXX) -fPIC $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) $(DEFS) $(SRA_DEF) -DBOWTIE2 $(NOASSERT_FLAGS) -Wall $(INC) $(SEARCH_INC) \ 473 -c -o $@ $< 474 475# 476# repeatexp 477# 478repeatexp: 479 g++ -o repeatexp repeatexp.cpp -I hisat2lib libhisat2lib.a 480 481hisat2: ; 482 483hisat2.bat: 484 echo "@echo off" > hisat2.bat 485 echo "perl %~dp0/hisat2 %*" >> hisat2.bat 486 487hisat2-build.bat: 488 echo "@echo off" > hisat2-build.bat 489 echo "python %~dp0/hisat2-build %*" >> hisat2-build.bat 490 491hisat2-inspect.bat: 492 echo "@echo off" > hisat2-inspect.bat 493 echo "python %~dp0/hisat2-inspect %*" >> hisat2-inspect.bat 494 495 496.PHONY: hisat2-src 497hisat2-src: $(SRC_PKG_LIST) 498 chmod a+x scripts/*.sh scripts/*.pl 499 mkdir .src.tmp 500 mkdir .src.tmp/hisat2-$(VERSION) 501 zip tmp.zip $(SRC_PKG_LIST) 502 mv tmp.zip .src.tmp/hisat2-$(VERSION) 503 cd .src.tmp/hisat2-$(VERSION) ; unzip tmp.zip ; rm -f tmp.zip 504 cd .src.tmp ; zip -r hisat2-$(VERSION)-source.zip hisat2-$(VERSION) 505 cp .src.tmp/hisat2-$(VERSION)-source.zip . 506 rm -rf .src.tmp 507 508.PHONY: hisat2-bin 509hisat2-bin: $(BIN_PKG_LIST) $(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX) 510 chmod a+x scripts/*.sh scripts/*.pl 511 rm -rf .bin.tmp 512 mkdir .bin.tmp 513 mkdir .bin.tmp/hisat2-$(VERSION) 514 if [ -f hisat2.exe ] ; then \ 515 zip tmp.zip $(BIN_PKG_LIST) $(addsuffix .exe,$(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX)) ; \ 516 else \ 517 zip tmp.zip $(BIN_PKG_LIST) $(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX) ; \ 518 fi 519 mv tmp.zip .bin.tmp/hisat2-$(VERSION) 520 cd .bin.tmp/hisat2-$(VERSION) ; unzip tmp.zip ; rm -f tmp.zip 521 cd .bin.tmp ; zip -r hisat2-$(VERSION)-$(BITS).zip hisat2-$(VERSION) 522 cp .bin.tmp/hisat2-$(VERSION)-$(BITS).zip . 523 rm -rf .bin.tmp 524 525.PHONY: doc 526doc: doc/manual.inc.html MANUAL 527 528doc/manual.inc.html: MANUAL.markdown 529 pandoc -T "HISAT2 Manual" -o $@ \ 530 --from markdown --to HTML --toc $^ 531 perl -i -ne \ 532 '$$w=0 if m|^</body>|;print if $$w;$$w=1 if m|^<body>|;' $@ 533 534MANUAL: MANUAL.markdown 535 perl doc/strip_markdown.pl < $^ > $@ 536 537# Install per filesystem hierarchy standard: 538# https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard 539 540.PHONY: install 541install: 542 mkdir -p ${DESTDIR}${PREFIX}/bin 543 ${INSTALL} -c -s ${HISAT2_BIN_LIST} ${DESTDIR}${PREFIX}/bin 544 ${INSTALL} -c hisat2 hisat2-build hisat2-inspect \ 545 ${DESTDIR}${PREFIX}/bin 546 547 mkdir -p ${DESTDIR}${PREFIX}/libexec/hisat2 548 ${INSTALL} -c scripts/*.sh scripts/*.pl scripts/*.py *.py \ 549 ${DESTDIR}${PREFIX}/libexec/hisat2 550 551.PHONY: clean 552clean: 553 rm -f $(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX) \ 554 $(addsuffix .exe,$(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX)) \ 555 hisat2-src.zip hisat2-bin.zip 556 rm -f core.* .tmp.head 557 rm -rf *.dSYM 558 rm -rf .ht2lib-obj* 559 rm -f libhisat2lib*.a libhisat2lib*.so 560 561 562.PHONY: push-doc 563push-doc: doc/manual.inc.html 564 scp doc/*.*html doc/indexes.txt salz-dmz:/ccb/salz7-data/www/ccb.jhu.edu/html/software/hisat2/ 565