-
Notifications
You must be signed in to change notification settings - Fork 7
/
MakeRules
156 lines (118 loc) · 6.41 KB
/
MakeRules
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
ifndef CODE_DIR
$(error no CODE_DIR)
endif
OS := $(shell uname -s)
WarningCPPFLAGS =
ifdef AT_NCBI
WarningCPPFLAGS = \
-Waddress -Wbool-operation -Wchar-subscripts -Wcomment \
-Wformat -Wint-in-bool-context -Winit-self -Wlogical-not-parentheses -Wmemset-transposed-args \
-Wnarrowing -Wnonnull -Wparentheses -Wreorder -Wreturn-type \
-Wsequence-point -Wsign-compare -Wsizeof-pointer-memaccess -Wstrict-aliasing -Wstrict-overflow=1 -Wswitch -Wtautological-compare \
-Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wvolatile-register-var \
-Wextra \
-Wcast-align -Wdeprecated-declarations \
-Wmissing-braces -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs \
-Woverloaded-virtual -Wpointer-arith -Wshadow -Wsign-conversion -Wunused \
-pedantic
# -Wuseless-cast
ifeq ($(OS),Linux)
# Do not work on Darwin
WarningCPPFLAGS += -Wbool-compare -Wc++11-compat -Wc++14-compat -Wconversion -Wmaybe-uninitialized -Wmemset-elt-size -Wnonnull-compare \
-Wopenmp-simd -Wlogical-op -Wsuggest-attribute=format
endif
endif
SimpleCPPFLAGS = -std=gnu++17 -pthread -malign-double -fno-math-errno -fdiagnostics-color=always $(WarningCPPFLAGS)
# -Werror # Will break NCBI Makefiles
# -Wunreachable-code # Wrongly reports virtual functions
# -Woverloaded-virtual -Wpointer-arith -Wwrite-strings
# -Wenum-clash -Wnested-externs -Wstrict-prototypes -Winline -Wredundant-decls -Wtraditional
# -ffloat-store # slows down two-fold
# -ffinite-math-only # NAN problem
OptCPPFLAGS = $(SimpleCPPFLAGS) -O3
DebugCPPFLAGS = $(SimpleCPPFLAGS) -g
CXX=g++
COMPILE.cpp= $(CXX) $(CPPFLAGS) -c
LIBS=-pthread
ifdef AT_NCBI
ECHO = @echo ""; echo ""
else
ECHO = @echo ""
endif
CPP_DIR = $(CODE_DIR)/cpp
COMMON_RAW_HPP = $(CPP_DIR)/common.hpp $(CPP_DIR)/common.inc
COMMON_HPP = $(COMMON_RAW_HPP) $(CPP_DIR)/version.inc
COMMON = $(CPP_DIR)/common
$(CPP_DIR)/common.o: $(COMMON_RAW_HPP)
$(CPP_DIR)/graph.o: $(CPP_DIR)/graph.hpp $(COMMON_RAW_HPP)
$(CPP_DIR)/combinatorics.o: $(CPP_DIR)/combinatorics.hpp $(COMMON_RAW_HPP)
$(CPP_DIR)/ncurses.o: $(CPP_DIR)/ncurses.hpp $(COMMON_RAW_HPP)
$(CPP_DIR)/curl_easy.o: $(CPP_DIR)/curl_easy.hpp $(COMMON_RAW_HPP)
TSV_DIR=$(CPP_DIR)/tsv
$(TSV_DIR)/tsv.o: $(TSV_DIR)/tsv.hpp $(COMMON_RAW_HPP)
XML_DIR=$(CPP_DIR)/xml
$(XML_DIR)/xml.o: $(XML_DIR)/xml.hpp $(COMMON_RAW_HPP) $(TSV_DIR)/tsv.hpp
XML_OBJ = $(XML_DIR)/xml.o $(TSV_DIR)/tsv.o
DM_DIR = $(CPP_DIR)/dm
NUMERIC_HPP = $(DM_DIR)/numeric.hpp $(COMMON_HPP)
$(DM_DIR)/numeric.o: $(NUMERIC_HPP)
NUMERIC_OBJ = $(DM_DIR)/numeric.o $(CPP_DIR)/common.o
NUMERIC = $(DM_DIR)/numeric $(COMMON)
$(DM_DIR)/matrix.o: $(DM_DIR)/matrix.hpp $(NUMERIC_HPP)
$(DM_DIR)/optim.o: $(DM_DIR)/optim.hpp $(DM_DIR)/matrix.hpp $(NUMERIC_HPP)
MATRIX = $(DM_DIR)/matrix $(NUMERIC)
DM_HPP = $(NUMERIC_HPP) $(DM_DIR)/matrix.hpp $(DM_DIR)/dataset.hpp
$(DM_DIR)/dataset.o: $(DM_HPP) $(TSV_DIR)/tsv.hpp $(DM_DIR)/optim.hpp
DM_OBJ = $(NUMERIC_OBJ) $(DM_DIR)/matrix.o $(DM_DIR)/optim.o $(DM_DIR)/dataset.o
DM = $(NUMERIC) $(DM_DIR)/matrix $(DM_DIR)/optim $(DM_DIR)/dataset
PREDICT_HPP = $(DM_DIR)/prediction.hpp $(DM_HPP)
$(DM_DIR)/prediction.o: $(PREDICT_HPP)
PREDICT_OBJ = $(DM_DIR)/prediction.o $(DM_OBJ)
PREDICT = $(DM_DIR)/prediction $(DM)
PHYL_DIR = $(CPP_DIR)/phylogeny
DISTTREE_HPP = $(PHYL_DIR)/distTree.hpp $(PREDICT_HPP) $(CPP_DIR)/graph.hpp
$(PHYL_DIR)/distTree.o: $(DISTTREE_HPP)
DISTTREE_OBJ = $(PHYL_DIR)/distTree.o $(PREDICT_OBJ) $(CPP_DIR)/graph.o
DISTTREE = $(PHYL_DIR)/distTree $(PREDICT) $(CPP_DIR)/graph
$(PHYL_DIR)/featureTree.o: $(PHYL_DIR)/featureTree.hpp $(DM_HPP) $(CPP_DIR)/graph.hpp
FEATURE_TREE_OBJ = $(PHYL_DIR)/featureTree.o $(DM_OBJ) $(CPP_DIR)/graph.o
FEATURE_TREE = $(PHYL_DIR)/featureTree $(DM) $(CPP_DIR)/graph
GEN_DIR = $(CPP_DIR)/genetics
$(GEN_DIR)/genbank_text.o: $(GEN_DIR)/genbank_text.hpp $(COMMON_RAW_HPP)
$(GEN_DIR)/seq.o: $(GEN_DIR)/seq.hpp $(COMMON_RAW_HPP)
SEQ_OBJ = $(GEN_DIR)/seq.o $(CPP_DIR)/common.o
$(GEN_DIR)/hmm.o: $(GEN_DIR)/hmm.hpp $(GEN_DIR)/seq.hpp $(DM_DIR)/matrix.hpp $(DM_DIR)/numeric.hpp $(COMMON_RAW_HPP)
HMM_OBJ = $(GEN_DIR)/hmm.o $(GEN_DIR)/seq.o $(DM_DIR)/matrix.o $(NUMERIC_OBJ)
$(GEN_DIR)/gff.o: $(GEN_DIR)/gff.hpp $(COMMON_RAW_HPP)
DISSIM_DIR = $(CPP_DIR)/dissim
$(DISSIM_DIR)/evolution.o: $(DISSIM_DIR)/evolution.hpp $(NUMERIC_HPP)
EVOLUTION_OBJ = $(NUMERIC_OBJ) $(DM_DIR)/optim.o $(DM_DIR)/matrix.o $(DISSIM_DIR)/evolution.o
NW_DIR = $(DISSIM_DIR)/nw
$(NW_DIR)/nw_aligner.o: $(NW_DIR)/nw_aligner.hpp
$(NW_DIR)/nw_band_aligner.o: $(NW_DIR)/nw_band_aligner.hpp
$(NW_DIR)/raw_scoremat.o:
cc -malign-double -fno-math-errno -fdiagnostics-color=always -O3 -c -o $(NW_DIR)/raw_scoremat.o $(NW_DIR)/raw_scoremat.c
$(DISSIM_DIR)/align.o: $(DISSIM_DIR)/align.hpp $(GEN_DIR)/seq.hpp $(DM_DIR)/numeric.hpp $(NW_DIR)/nw_aligner.hpp $(NW_DIR)/nw_band_aligner.hpp $(DISSIM_DIR)/evolution.hpp $(COMMON_RAW_HPP)
ALIGN_OBJ = $(DISSIM_DIR)/align.o $(SEQ_OBJ) $(DM_DIR)/numeric.o $(NW_DIR)/nw_aligner.o $(NW_DIR)/nw_band_aligner.o $(NW_DIR)/raw_scoremat.o $(DISSIM_DIR)/evolution.o $(DM_DIR)/optim.o $(DM_DIR)/matrix.o
WEB_DIR=$(CPP_DIR)/web
$(WEB_DIR)/cgi.o: $(WEB_DIR)/cgi.hpp $(COMMON_HPP)
WEB_OBJ = $(WEB_DIR)/cgi.o $(CPP_DIR)/common.o
WEB = $(WEB_DIR)/cgi $(COMMON)
ifdef AT_NCBI
AMRFINDER_DIR=$(CODE_DIR)/amrfinder
$(AMRFINDER_DIR)/alignment.o: $(AMRFINDER_DIR)/alignment.hpp $(COMMON_RAW_HPP)
STXTYPER_DIR=$(CODE_DIR)/stxtyper
DATABASE_DIR = $(CODE_DIR)/database
COMMON = $(CPP_DIR)/common $(DATABASE_DIR)/application
$(DATABASE_DIR)/application.o: $(DATABASE_DIR)/application.hpp $(COMMON_RAW_HPP)
$(DATABASE_DIR)/db.o: $(DATABASE_DIR)/db.hpp $(COMMON_RAW_HPP)
$(DATABASE_DIR)/pig.o: $(DATABASE_DIR)/pig.hpp $(COMMON_RAW_HPP) $(DATABASE_DIR)/db.hpp
$(DATABASE_DIR)/genbank.o: $(DATABASE_DIR)/genbank.hpp $(COMMON_RAW_HPP) $(DATABASE_DIR)/db.hpp $(GEN_DIR)/seq.hpp
GENBANK = $(DATABASE_DIR)/genbank $(GEN_DIR)/seq
GenBank_LIB = xncbi xobjutil taxon1 $(OBJMGR_LIBS) ncbi_xloader_asn_cache asn_cache bdb $(SDBAPI_LIB) xconnect xutil ncbi_xdbapi_ctlib$(STATIC) xid_utils$(STATIC) xxconnect
# $(SRAREAD_LIBS) $(XFORMAT_LIBS)
# ncbi_xloader_sra xid_wgs ncbi_id2proc_wgs
GenBank_LIBS = $(DL_LIBS) -lz $(BERKELEYDB_LIBS) -lxutil $(SDBAPI_LIBS) $(SYBASE_LIBS) $(PSG_CLIENT_LIBS)
PHYLOGENY_DIR = $(CODE_DIR)/phylogeny
$(PHYLOGENY_DIR)/dbPhyl.o: $(PHYLOGENY_DIR)/dbPhyl.hpp $(DATABASE_DIR)/db.hpp $(COMMON_RAW_HPP)
endif