-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathMakefile
107 lines (90 loc) · 3.2 KB
/
Makefile
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
K?=31
L?=15
U?=35
LOG?=2
D?=0
COMPILE_TIME_PARAMETERS=-DKMER_SIZE=$(K) -DLOWER_KMER_FREQ=$(L) -DUPPER_KMER_FREQ=$(U) -DLOG_LEVEL=$(LOG)
OPT=
ifeq ($(D), 1)
OPT+=-g -O2 -fsanitize=address -fno-omit-frame-pointer
else
OPT+=-O3
endif
MPICH=/usr/local/opt/mpich/
MPICH_INC=-I$(MPICH)/include
MPICH_LIB=-L$(MPICH)/lib
MPICH_FLAGS=
FLAGS=$(OPT) $(COMPILE_TIME_PARAMETERS) -DTHREADED -fopenmp -Wno-maybe-uninitialized -Wno-deprecated -Wno-stringop-overflow -std=c++17 -I./include -I./src
COMBBLAS=./CombBLAS
COMBBLAS_INC=$(COMBBLAS)/include/CombBLAS
COMBBLAS_SRC=$(COMBBLAS)/src
INCADD=-I$(COMBBLAS)/include/ -I$(COMBBLAS)/psort-1.0/include/ -I$(COMBBLAS)/usort/include/ -I$(COMBBLAS)/graph500-1.2/generator/include/
UNAME_S:=$(shell uname -s)
ifeq ($(UNAME_S),Linux)
COMPILER=CC
else ifeq ($(UNAME_S),Darwin)
COMPILER=g++-13
FLAGS+=$(MPICH_INC)
MPICH_FLAGS+=$(MPICH_LIB) -L/usr/local/opt/libevent/lib -lmpi
endif
OBJECTS=obj/Logger.o \
obj/ELBALogger.o \
obj/FastaIndex.o \
obj/DistributedFastaData.o \
obj/DnaSeq.o \
obj/DnaBuffer.o \
obj/HashFuncs.o \
obj/HyperLogLog.o \
obj/Bloom.o \
obj/KmerOps.o \
obj/SharedSeeds.o \
obj/Overlap.o \
obj/PairwiseAlignment.o \
obj/XDropAligner.o \
obj/TransitiveReduction.o \
obj/ContigGeneration.o \
obj/PruneChimeras.o \
obj/CommGrid.o \
obj/MPIType.o \
obj/MPIOp.o
all: elba
install: elba
cp elba $(HOME)/bin
test: elba
./runtests.sh
elba: obj/main.o $(OBJECTS)
@echo CXX -c -o $@ $^
@$(COMPILER) $(FLAGS) $(INCADD) -o $@ $^ $(MPICH_FLAGS) -lz
obj/%.o: src/%.cpp
@mkdir -p $(@D)
@echo CXX $(COMPILE_TIME_PARAMETERS) -c -o $@ $<
@$(COMPILER) $(FLAGS) $(INCADD) -c -o $@ $<
obj/main.o: src/main.cpp include/common.h src/Kmer.cpp include/Kmer.hpp src/KmerOps.cpp include/KmerOps.hpp include/SharedSeeds.hpp
obj/Logger.o: src/Logger.cpp include/Logger.hpp
obj/ELBALogger.o: src/Logger.cpp include/Logger.hpp
obj/FastaIndex.o: src/FastaIndex.cpp include/FastaIndex.hpp
obj/DistributedFastaData.o: src/DistributedFastaData.cpp include/DistributedFastaData.hpp
obj/KmerOps.o: src/KmerOps.cpp include/KmerOps.hpp
obj/SharedSeeds.o: src/SharedSeeds.cpp include/SharedSeeds.hpp
obj/Overlap.o: src/Overlap.cpp include/Overlap.hpp
obj/PairwiseAlignment.o: src/PairwiseAlignment.cpp include/PairwiseAlignment.hpp
obj/XDropAligner.o: src/XDropAligner.cpp include/XDropAligner.hpp
obj/TransitiveReduction.o: src/TransitiveReduction.cpp include/TransitiveReduction.hpp
obj/ContigGeneration.o: src/ContigGeneration.cpp include/ContigGeneration.hpp include/CC.hpp
obj/PruneChimeras.o: src/PruneChimeras.cpp include/PruneChimeras.hpp
obj/DnaSeq.o: src/DnaSeq.cpp include/DnaSeq.hpp
obj/DnaBuffer.o: src/DnaBuffer.cpp include/DnaBuffer.hpp
obj/HashFuncs.o: src/HashFuncs.cpp include/HashFuncs.hpp
obj/CommGrid.o: $(COMBBLAS_SRC)/CommGrid.cpp $(COMBBLAS_INC)/CommGrid.h
@echo CXX -c -o $@ $<
@$(COMPILER) $(FLAGS) $(INCADD) -c -o $@ $<
obj/MPIType.o: $(COMBBLAS_SRC)/MPIType.cpp $(COMBBLAS_INC)/MPIType.h
@echo CXX -c -o $@ $<
@$(COMPILER) $(FLAGS) $(INCADD) -c -o $@ $<
obj/MPIOp.o: $(COMBBLAS_SRC)/MPIOp.cpp $(COMBBLAS_INC)/MPIOp.h
@echo CXX -c -o $@ $<
@$(COMPILER) $(FLAGS) $(INCADD) -c -o $@ $<
clean:
rm -rf *.o obj/*.o *.dSYM *.out *.mtx $(HOME)/bin/elba elba
gitclean: clean
git clean -f