2018-06-20 03:26:58 +08:00
|
|
|
CFLAGS= -g -Wall -O2 -Wc++-compat #-Wextra
|
2017-06-27 03:41:55 +08:00
|
|
|
CPPFLAGS= -DHAVE_KALLOC
|
2017-09-04 02:29:49 +08:00
|
|
|
INCLUDES=
|
2018-07-15 00:15:10 +08:00
|
|
|
OBJS= kthread.o kalloc.o misc.o bseq.o sketch.o sdust.o options.o index.o chain.o align.o hit.o map.o format.o pe.o esterr.o splitidx.o ksw2_ll_sse.o
|
2017-04-08 03:30:30 +08:00
|
|
|
PROG= minimap2
|
2017-07-19 02:48:46 +08:00
|
|
|
PROG_EXTRA= sdust minimap2-lite
|
2017-04-08 03:30:30 +08:00
|
|
|
LIBS= -lm -lz -lpthread
|
|
|
|
|
|
2018-02-26 22:51:01 +08:00
|
|
|
ifeq ($(arm_neon),) # if arm_neon is not defined
|
|
|
|
|
ifeq ($(sse2only),) # if sse2only is not defined
|
2017-09-04 02:29:49 +08:00
|
|
|
OBJS+=ksw2_extz2_sse41.o ksw2_extd2_sse41.o ksw2_exts2_sse41.o ksw2_extz2_sse2.o ksw2_extd2_sse2.o ksw2_exts2_sse2.o ksw2_dispatch.o
|
2018-02-26 22:51:01 +08:00
|
|
|
else # if sse2only is defined
|
2017-09-04 02:29:49 +08:00
|
|
|
OBJS+=ksw2_extz2_sse.o ksw2_extd2_sse.o ksw2_exts2_sse.o
|
|
|
|
|
endif
|
2018-06-11 12:23:03 +08:00
|
|
|
else # if arm_neon is defined
|
|
|
|
|
OBJS+=ksw2_extz2_neon.o ksw2_extd2_neon.o ksw2_exts2_neon.o
|
2018-02-26 22:51:01 +08:00
|
|
|
INCLUDES+=-Isse2neon
|
2018-06-11 12:23:03 +08:00
|
|
|
ifeq ($(aarch64),) #if aarch64 is not defined
|
|
|
|
|
CFLAGS+=-D_FILE_OFFSET_BITS=64 -mfpu=neon -fsigned-char
|
|
|
|
|
else #if aarch64 is defined
|
|
|
|
|
CFLAGS+=-D_FILE_OFFSET_BITS=64 -fsigned-char
|
2018-06-20 22:26:29 +08:00
|
|
|
endif
|
2017-12-15 14:42:19 +08:00
|
|
|
endif
|
2017-07-19 01:56:51 +08:00
|
|
|
|
2019-12-24 06:33:10 +08:00
|
|
|
ifneq ($(asan),)
|
|
|
|
|
CFLAGS+=-fsanitize=address
|
|
|
|
|
LIBS+=-fsanitize=address
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifneq ($(tsan),)
|
|
|
|
|
CFLAGS+=-fsanitize=thread
|
|
|
|
|
LIBS+=-fsanitize=thread
|
|
|
|
|
endif
|
|
|
|
|
|
2017-12-31 09:54:11 +08:00
|
|
|
.PHONY:all extra clean depend
|
2017-04-08 03:30:30 +08:00
|
|
|
.SUFFIXES:.c .o
|
|
|
|
|
|
|
|
|
|
.c.o:
|
|
|
|
|
$(CC) -c $(CFLAGS) $(CPPFLAGS) $(INCLUDES) $< -o $@
|
|
|
|
|
|
|
|
|
|
all:$(PROG)
|
|
|
|
|
|
|
|
|
|
extra:all $(PROG_EXTRA)
|
|
|
|
|
|
2018-09-02 09:15:43 +08:00
|
|
|
minimap2:main.o libminimap2.a
|
|
|
|
|
$(CC) $(CFLAGS) main.o -o $@ -L. -lminimap2 $(LIBS)
|
2017-04-08 03:30:30 +08:00
|
|
|
|
2017-07-19 02:43:43 +08:00
|
|
|
minimap2-lite:example.o libminimap2.a
|
|
|
|
|
$(CC) $(CFLAGS) $< -o $@ -L. -lminimap2 $(LIBS)
|
|
|
|
|
|
2017-04-08 03:30:30 +08:00
|
|
|
libminimap2.a:$(OBJS)
|
|
|
|
|
$(AR) -csru $@ $(OBJS)
|
|
|
|
|
|
2018-09-02 09:15:43 +08:00
|
|
|
sdust:sdust.c kalloc.o kalloc.h kdq.h kvec.h kseq.h ketopt.h sdust.h
|
|
|
|
|
$(CC) -D_SDUST_MAIN $(CFLAGS) $< kalloc.o -o $@ -lz
|
2017-04-08 03:30:30 +08:00
|
|
|
|
2017-12-31 09:54:11 +08:00
|
|
|
# SSE-specific targets on x86/x86_64
|
|
|
|
|
|
2018-02-26 22:51:01 +08:00
|
|
|
ifeq ($(arm_neon),) # if arm_neon is defined, compile this target with the default setting (i.e. no -msse2)
|
|
|
|
|
ksw2_ll_sse.o:ksw2_ll_sse.c ksw2.h kalloc.h
|
|
|
|
|
$(CC) -c $(CFLAGS) -msse2 $(CPPFLAGS) $(INCLUDES) $< -o $@
|
|
|
|
|
endif
|
|
|
|
|
|
2017-09-04 02:29:49 +08:00
|
|
|
ksw2_extz2_sse41.o:ksw2_extz2_sse.c ksw2.h kalloc.h
|
2018-02-26 22:51:01 +08:00
|
|
|
$(CC) -c $(CFLAGS) -msse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH $(INCLUDES) $< -o $@
|
2017-09-04 02:29:49 +08:00
|
|
|
|
|
|
|
|
ksw2_extz2_sse2.o:ksw2_extz2_sse.c ksw2.h kalloc.h
|
2018-02-26 22:51:01 +08:00
|
|
|
$(CC) -c $(CFLAGS) -msse2 -mno-sse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH -DKSW_SSE2_ONLY $(INCLUDES) $< -o $@
|
2017-09-04 02:29:49 +08:00
|
|
|
|
|
|
|
|
ksw2_extd2_sse41.o:ksw2_extd2_sse.c ksw2.h kalloc.h
|
2018-02-26 22:51:01 +08:00
|
|
|
$(CC) -c $(CFLAGS) -msse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH $(INCLUDES) $< -o $@
|
2017-09-04 02:29:49 +08:00
|
|
|
|
|
|
|
|
ksw2_extd2_sse2.o:ksw2_extd2_sse.c ksw2.h kalloc.h
|
2018-02-26 22:51:01 +08:00
|
|
|
$(CC) -c $(CFLAGS) -msse2 -mno-sse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH -DKSW_SSE2_ONLY $(INCLUDES) $< -o $@
|
2017-09-04 02:29:49 +08:00
|
|
|
|
|
|
|
|
ksw2_exts2_sse41.o:ksw2_exts2_sse.c ksw2.h kalloc.h
|
2018-02-26 22:51:01 +08:00
|
|
|
$(CC) -c $(CFLAGS) -msse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH $(INCLUDES) $< -o $@
|
2017-09-04 02:29:49 +08:00
|
|
|
|
|
|
|
|
ksw2_exts2_sse2.o:ksw2_exts2_sse.c ksw2.h kalloc.h
|
2018-02-26 22:51:01 +08:00
|
|
|
$(CC) -c $(CFLAGS) -msse2 -mno-sse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH -DKSW_SSE2_ONLY $(INCLUDES) $< -o $@
|
2017-09-04 02:29:49 +08:00
|
|
|
|
|
|
|
|
ksw2_dispatch.o:ksw2_dispatch.c ksw2.h
|
2018-02-26 22:51:01 +08:00
|
|
|
$(CC) -c $(CFLAGS) -msse4.1 $(CPPFLAGS) -DKSW_CPU_DISPATCH $(INCLUDES) $< -o $@
|
2017-12-31 09:54:11 +08:00
|
|
|
|
|
|
|
|
# NEON-specific targets on ARM
|
2017-12-15 14:42:19 +08:00
|
|
|
|
|
|
|
|
ksw2_extz2_neon.o:ksw2_extz2_sse.c ksw2.h kalloc.h
|
|
|
|
|
$(CC) -c $(CFLAGS) $(CPPFLAGS) -DKSW_SSE2_ONLY -D__SSE2__ $(INCLUDES) $< -o $@
|
|
|
|
|
|
|
|
|
|
ksw2_extd2_neon.o:ksw2_extd2_sse.c ksw2.h kalloc.h
|
|
|
|
|
$(CC) -c $(CFLAGS) $(CPPFLAGS) -DKSW_SSE2_ONLY -D__SSE2__ $(INCLUDES) $< -o $@
|
|
|
|
|
|
|
|
|
|
ksw2_exts2_neon.o:ksw2_exts2_sse.c ksw2.h kalloc.h
|
|
|
|
|
$(CC) -c $(CFLAGS) $(CPPFLAGS) -DKSW_SSE2_ONLY -D__SSE2__ $(INCLUDES) $< -o $@
|
2017-12-31 09:54:11 +08:00
|
|
|
|
|
|
|
|
# other non-file targets
|
2017-09-04 02:29:49 +08:00
|
|
|
|
2017-04-08 03:30:30 +08:00
|
|
|
clean:
|
2018-02-02 01:27:15 +08:00
|
|
|
rm -fr gmon.out *.o a.out $(PROG) $(PROG_EXTRA) *~ *.a *.dSYM build dist mappy*.so mappy.c python/mappy.c mappy.egg*
|
2017-04-08 03:30:30 +08:00
|
|
|
|
|
|
|
|
depend:
|
2017-07-08 22:26:00 +08:00
|
|
|
(LC_ALL=C; export LC_ALL; makedepend -Y -- $(CFLAGS) $(CPPFLAGS) -- *.c)
|
2017-04-08 03:30:30 +08:00
|
|
|
|
|
|
|
|
# DO NOT DELETE
|
|
|
|
|
|
2017-07-08 22:26:00 +08:00
|
|
|
align.o: minimap.h mmpriv.h bseq.h ksw2.h kalloc.h
|
2017-09-26 23:03:36 +08:00
|
|
|
bseq.o: bseq.h kvec.h kalloc.h kseq.h
|
2017-06-26 04:13:54 +08:00
|
|
|
chain.o: minimap.h mmpriv.h bseq.h kalloc.h
|
2017-12-13 22:01:48 +08:00
|
|
|
esterr.o: mmpriv.h minimap.h bseq.h
|
2017-07-19 02:48:46 +08:00
|
|
|
example.o: minimap.h kseq.h
|
2017-08-11 03:04:59 +08:00
|
|
|
format.o: kalloc.h mmpriv.h minimap.h bseq.h
|
2017-10-06 04:15:14 +08:00
|
|
|
hit.o: mmpriv.h minimap.h bseq.h kalloc.h khash.h
|
2017-06-06 22:16:33 +08:00
|
|
|
index.o: kthread.h bseq.h minimap.h mmpriv.h kvec.h kalloc.h khash.h
|
2017-04-08 03:30:30 +08:00
|
|
|
kalloc.o: kalloc.h
|
2017-07-08 22:26:00 +08:00
|
|
|
ksw2_extd2_sse.o: ksw2.h kalloc.h
|
2017-08-13 06:54:32 +08:00
|
|
|
ksw2_exts2_sse.o: ksw2.h kalloc.h
|
2017-07-08 22:26:00 +08:00
|
|
|
ksw2_extz2_sse.o: ksw2.h kalloc.h
|
2017-07-30 11:52:30 +08:00
|
|
|
ksw2_ll_sse.o: ksw2.h kalloc.h
|
2018-01-26 21:38:37 +08:00
|
|
|
kthread.o: kthread.h
|
2018-09-02 09:15:43 +08:00
|
|
|
main.o: bseq.h minimap.h mmpriv.h ketopt.h
|
2017-10-06 04:15:14 +08:00
|
|
|
map.o: kthread.h kvec.h kalloc.h sdust.h mmpriv.h minimap.h bseq.h khash.h
|
2018-01-26 21:38:37 +08:00
|
|
|
map.o: ksort.h
|
|
|
|
|
misc.o: mmpriv.h minimap.h bseq.h ksort.h
|
|
|
|
|
options.o: mmpriv.h minimap.h bseq.h
|
2017-10-06 04:15:14 +08:00
|
|
|
pe.o: mmpriv.h minimap.h bseq.h kvec.h kalloc.h ksort.h
|
2018-09-02 09:15:43 +08:00
|
|
|
sdust.o: kalloc.h kdq.h kvec.h ketopt.h sdust.h
|
2018-01-26 21:38:37 +08:00
|
|
|
sketch.o: kvec.h kalloc.h mmpriv.h minimap.h bseq.h
|
2018-09-02 09:15:43 +08:00
|
|
|
splitidx.o: mmpriv.h minimap.h bseq.h
|