File: Makefile

package info (click to toggle)
uncalled 2.2%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 944 kB
  • sloc: cpp: 5,226; python: 1,994; sh: 125; makefile: 68
file content (87 lines) | stat: -rw-r--r-- 2,592 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
CC=gcc
CFLAGS=-Wall -std=c++11 -g -fPIC -O3 $(FLAGS)

LIBHDF5=$(shell pkg-config  --libs-only-L hdf5-serial | sed 's/^-L//')
HDF5_LIB=$(shell pkg-config  --libs hdf5-serial)
HDF5_INCLUDE=$(shell pkg-config  --cflags hdf5-serial)

LIBBWA=/usr/lib/libbwa.a
BWA_LIB=$(LIBBWA)
BWA_INCLUDE=-I/usr/include/bwa

LIBS=$(HDF5_LIB) $(BWA_LIB) -lstdc++ -lz -ldl -pthread -lm 
INCLUDE= -I/usr/include/fast5/ $(shell pybind11-config --includes) $(HDF5_INCLUDE) $(BWA_INCLUDE)

SRC=src
BUILD=build
BIN=bin
LIB=lib
#INCLUDE=include

_COMMON_OBJS=mapper.o seed_tracker.o range.o event_detector.o normalizer.o chunk.o read_buffer.o fast5_reader.o event_profiler.o #sync_out.o

_MAP_ORD_OBJS=$(_COMMON_OBJS) realtime_pool.o map_pool_ord.o uncalled_map_ord.o 
_MAP_OBJS=$(_COMMON_OBJS) map_pool.o uncalled_map.o 
_SIM_OBJS=$(_COMMON_OBJS) realtime_pool.o client_sim.o uncalled_sim.o 
_DTW_OBJS=dtw_test.o fast5_reader.o read_buffer.o normalizer.o chunk.o event_detector.o range.o

_ALL_OBJS=$(_COMMON_OBJS) realtime_pool.o map_pool.o uncalled_map.o uncalled_map_ord.o client_sim.o uncalled_sim.o dtw_test.o

MAP_OBJS = $(patsubst %, $(BUILD)/%, $(_MAP_OBJS))
MAP_ORD_OBJS = $(patsubst %, $(BUILD)/%, $(_MAP_ORD_OBJS))
SIM_OBJS = $(patsubst %, $(BUILD)/%, $(_SIM_OBJS))
DTW_OBJS = $(patsubst %, $(BUILD)/%, $(_DTW_OBJS))
ALL_OBJS = $(patsubst %, $(BUILD)/%, $(_ALL_OBJS))

DEPENDS := $(patsubst %.o, %.d, $(ALL_OBJS))

MAP_BIN = $(BIN)/uncalled_map
MAP_ORD_BIN = $(BIN)/uncalled_map_ord
SIM_BIN = $(BIN)/uncalled_sim
DTW_BIN = $(BIN)/dtw_test

all: dirs $(MAP_BIN) $(MAP_ORD_BIN) $(SIM_BIN) $(DTW_BIN)

#$(BIN)/%.o:src/%.c
#	$(CC) -c $< -o $@

$(MAP_BIN): $(MAP_OBJS) $(LIBHDF5) $(LIBBWA)
	$(CC) $(CFLAGS) $(MAP_OBJS) -o $@ $(LIBS)

$(MAP_ORD_BIN): $(MAP_ORD_OBJS) $(LIBHDF5) $(LIBBWA)
	$(CC) $(CFLAGS) $(MAP_ORD_OBJS) -o $@ $(LIBS)

$(SIM_BIN): $(SIM_OBJS) $(LIBHDF5) $(LIBBWA)
	$(CC) $(CFLAGS) $(SIM_OBJS) -o $@ $(LIBS)

$(DTW_BIN): $(DTW_OBJS) $(LIBHDF5) $(LIBBWA)
	$(CC) $(CFLAGS) $(DTW_OBJS) -o $@ $(LIBS)
	
#inspired by https://github.com/jts/nanopolish/blob/master/Makefile
$(LIBHDF5):
	cd submods/hdf5 && \
		./configure --enable-threadsafe --disable-hl --prefix=`pwd` --enable-shared=no --with-pic=yes || exit 255
	make -j 8 -C submods/hdf5 && make -C submods/hdf5 install
#--CFLAGS="-fPIC"

$(LIBBWA):
	make -C submods/bwa -f ../../src/Makefile_bwa

-include $(DEPENDS)

$(BUILD)/%.o: $(SRC)/%.cpp $(LIBHDF5) $(LIBBWA)
	$(CC) $(CFLAGS) -MMD -MP -c $< -o $@ $(INCLUDE)

DIRS: $(BIN) $(BUILD)

.PHONY: dirs
dirs: $(BIN)/ $(BUILD)/

$(BIN)/:
	mkdir -p $@

$(BUILD)/:
	mkdir -p $@

clean:
	rm -rf $(BUILD)