/
Makefile
177 lines (153 loc) · 5.82 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
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# use g++ compiler
CXX=g++
CXXFLAGS?=-Wall -pedantic -std=c++11
# output format
# -DOUTFAVITES for the FAVITES contact network format
# -DOUTCOMPACT for the compact output format
OUTFLAG=-DOUTFAVITES
# unsigned integer type
# -DNGG_UINT_8 for 8-bit
# -DNGG_UINT_16 for 16-bit
# -DNGG_UINT_32 for 32-bit
# -DNGG_UINT_64 for 64-bit
UINTFLAG=-DNGG_UINT_32
# flag specifications for release and debug
RELEASEFLAGS?=$(CXXFLAGS) $(OUTFLAG) $(UINTFLAG) -O3
DEBUGFLAGS?=$(CXXFLAGS) $(OUTFLAG) $(UINTFLAG) -O0 -g #-pg
# relevant constants
CPP_FILES=main.cpp common.cpp
HEADER_FILES=common.h
GLOBAL_DEPS=$(CPP_FILES) $(HEADER_FILES)
EXE_PREFIX=ngg
DEBUG_SUFFIX=debug
# Barabasi-Albert graph
BA=barabasi_albert
BA_EXE=$(EXE_PREFIX)_$(BA)
BA_DEBUG=$(BA)_$(DEBUG_SUFFIX)
BA_DEBUG_EXE=$(EXE_PREFIX)_$(BA_DEBUG)
BA_CPP=barabasi_albert.cpp
BA_H=barabasi_albert.h
BA_FILES=$(BA_CPP) $(BA_H)
# barbell graph
BARBELL=barbell
BARBELL_EXE=$(EXE_PREFIX)_$(BARBELL)
BARBELL_DEBUG=$(BARBELL)_$(DEBUG_SUFFIX)
BARBELL_DEBUG_EXE=$(EXE_PREFIX)_$(BARBELL_DEBUG)
BARBELL_CPP=barbell.cpp
BARBELL_H=barbell.h
BARBELL_FILES=$(BARBELL_CPP) $(BARBELL_H)
# complete graph
COMPLETE=complete
COMPLETE_EXE=$(EXE_PREFIX)_$(COMPLETE)
COMPLETE_DEBUG=$(COMPLETE)_$(DEBUG_SUFFIX)
COMPLETE_DEBUG_EXE=$(EXE_PREFIX)_$(COMPLETE_DEBUG)
COMPLETE_CPP=complete.cpp
COMPLETE_H=complete.h
COMPLETE_FILES=$(COMPLETE_CPP) $(COMPLETE_H)
# cycle graph
CYCLE=cycle
CYCLE_EXE=$(EXE_PREFIX)_$(CYCLE)
CYCLE_DEBUG=$(CYCLE)_$(DEBUG_SUFFIX)
CYCLE_DEBUG_EXE=$(EXE_PREFIX)_$(CYCLE_DEBUG)
CYCLE_CPP=cycle.cpp $(PATHGRAPH_CPP)
CYCLE_H=cycle.h
CYCLE_FILES=$(CYCLE_CPP) $(CYCLE_H)
# empty graph
EMPTY=empty
EMPTY_EXE=$(EXE_PREFIX)_$(EMPTY)
EMPTY_DEBUG=$(EMPTY)_$(DEBUG_SUFFIX)
EMPTY_DEBUG_EXE=$(EXE_PREFIX)_$(EMPTY_DEBUG)
# Erdos-Renyi graph
ER=erdos_renyi
ER_EXE=$(EXE_PREFIX)_$(ER)
ER_DEBUG=$(ER)_$(DEBUG_SUFFIX)
ER_DEBUG_EXE=$(EXE_PREFIX)_$(ER_DEBUG)
ER_CPP=erdos_renyi.cpp
ER_H=erdos_renyi.h
ER_FILES=$(ER_CPP) $(ER_H)
# Newman-Watts-Strogatz graph
NWS=newman_watts_strogatz
NWS_EXE=$(EXE_PREFIX)_$(NWS)
NWS_DEBUG=$(NWS)_$(DEBUG_SUFFIX)
NWS_DEBUG_EXE=$(EXE_PREFIX)_$(NWS_DEBUG)
NWS_CPP=newman_watts_strogatz.cpp $(RINGLATTICE_CPP)
NWS_H=newman_watts_strogatz.h
NWS_FILES=$(NWS_CPP) $(NWS_H)
# path graph
PATHGRAPH=path
PATHGRAPH_EXE=$(EXE_PREFIX)_$(PATHGRAPH)
PATHGRAPH_DEBUG=$(PATHGRAPH)_$(DEBUG_SUFFIX)
PATHGRAPH_DEBUG_EXE=$(EXE_PREFIX)_$(PATHGRAPH_DEBUG)
PATHGRAPH_CPP=path.cpp
PATHGRAPH_H=path.h
PATHGRAPH_FILES=$(PATHGRAPH_CPP) $(PATHGRAPH_H)
# ring lattice
RINGLATTICE=ring_lattice
RINGLATTICE_EXE=$(EXE_PREFIX)_$(RINGLATTICE)
RINGLATTICE_DEBUG=$(RINGLATTICE)_$(DEBUG_SUFFIX)
RINGLATTICE_DEBUG_EXE=$(EXE_PREFIX)_$(RINGLATTICE_DEBUG)
RINGLATTICE_CPP=ring_lattice.cpp
RINGLATTICE_H=ring_lattice.h
RINGLATTICE_FILES=$(RINGLATTICE_CPP) $(RINGLATTICE_H)
# compile all executables
RELEASE_EXES=$(BA_EXE) $(BARBELL_EXE) $(COMPLETE_EXE) $(CYCLE_EXE) $(EMPTY_EXE) $(ER_EXE) $(NWS_EXE) $(PATHGRAPH_EXE) $(RINGLATTICE_EXE)
DEBUG_EXES=$(BA_DEBUG_EXE) $(BARBELL_DEBUG_EXE) $(COMPLETE_DEBUG_EXE) $(CYCLE_DEBUG_EXE) $(EMPTY_DEBUG_EXE) $(ER_DEBUG_EXE) $(NWS_DEBUG_EXE) $(PATHGRAPH_DEBUG_EXE) $(RINGLATTICE_DEBUG_EXE)
all: $(RELEASE_EXES)
debug: $(DEBUG_EXES)
# Barabasi-Albert graph
BA_FLAG=-DBA
$(BA_EXE): $(GLOBAL_DEPS) $(BA_FILES)
$(CXX) $(RELEASEFLAGS) $(BA_FLAG) -o $(BA_EXE) $(CPP_FILES) $(BA_CPP)
$(BA_DEBUG_EXE): $(GLOBAL_DEPS) $(BA_FILES)
$(CXX) $(DEBUGFLAGS) $(BA_FLAG) -o $(BA_DEBUG_EXE) $(CPP_FILES) $(BA_CPP)
# barbell graph
BARBELL_FLAG=-DBARBELL
$(BARBELL_EXE): $(GLOBAL_DEPS) $(BARBELL_FILES)
$(CXX) $(RELEASEFLAGS) $(BARBELL_FLAG) -o $(BARBELL_EXE) $(CPP_FILES) $(BARBELL_CPP)
$(BARBELL_DEBUG_EXE): $(GLOBAL_DEPS) $(BARBELL_FILES)
$(CXX) $(DEBUGFLAGS) $(BARBELL_FLAG) -o $(BARBELL_DEBUG_EXE) $(CPP_FILES) $(BARBELL_CPP)
# complete graph
COMPLETE_FLAG=-DCOMPLETE
$(COMPLETE_EXE): $(GLOBAL_DEPS) $(COMPLETE_FILES)
$(CXX) $(RELEASEFLAGS) $(COMPLETE_FLAG) -o $(COMPLETE_EXE) $(CPP_FILES) $(COMPLETE_CPP)
$(COMPLETE_DEBUG_EXE): $(GLOBAL_DEPS) $(COMPLETE_FILES)
$(CXX) $(DEBUGFLAGS) $(COMPLETE_FLAG) -o $(COMPLETE_DEBUG_EXE) $(CPP_FILES) $(COMPLETE_CPP)
# cycle graph
CYCLE_FLAG=-DCYCLE
$(CYCLE_EXE): $(GLOBAL_DEPS) $(CYCLE_FILES)
$(CXX) $(RELEASEFLAGS) $(CYCLE_FLAG) -o $(CYCLE_EXE) $(CPP_FILES) $(CYCLE_CPP)
$(CYCLE_DEBUG_EXE): $(GLOBAL_DEPS) $(CYCLE_FILES)
$(CXX) $(DEBUGFLAGS) $(CYCLE_FLAG) -o $(CYCLE_DEBUG_EXE) $(CPP_FILES) $(CYCLE_CPP)
# empty graph
EMPTY_FLAG=-DEMPTY
$(EMPTY_EXE): $(GLOBAL_DEPS)
$(CXX) $(RELEASEFLAGS) $(EMPTY_FLAG) -o $(EMPTY_EXE) $(CPP_FILES)
$(EMPTY_DEBUG_EXE): $(GLOBAL_DEPS)
$(CXX) $(DEBUGFLAGS) $(EMPTY_FLAG) -o $(EMPTY_DEBUG_EXE) $(CPP_FILES)
# Erdos-Renyi graph
ER_FLAG=-DER
$(ER_EXE): $(GLOBAL_DEPS) $(ER_FILES)
$(CXX) $(RELEASEFLAGS) $(ER_FLAG) -o $(ER_EXE) $(CPP_FILES) $(ER_CPP)
$(ER_DEBUG_EXE): $(GLOBAL_DEPS) $(ER_FILES)
$(CXX) $(DEBUGFLAGS) $(ER_FLAG) -o $(ER_DEBUG_EXE) $(CPP_FILES) $(ER_CPP)
# Newman-Watts-Strogatz graph
NWS_FLAG=-DNWS
$(NWS_EXE): $(GLOBAL_DEPS) $(NWS_FILES)
$(CXX) $(RELEASEFLAGS) $(NWS_FLAG) -o $(NWS_EXE) $(CPP_FILES) $(NWS_CPP)
$(NWS_DEBUG_EXE): $(GLOBAL_DEPS) $(NWS_FILES)
$(CXX) $(DEBUGFLAGS) $(NWS_FLAG) -o $(NWS_DEBUG_EXE) $(CPP_FILES) $(NWS_CPP)
# path graph
PATHGRAPH_FLAG=-DPATHGRAPH
$(PATHGRAPH_EXE): $(GLOBAL_DEPS) $(PATHGRAPH_FILES)
$(CXX) $(RELEASEFLAGS) $(PATHGRAPH_FLAG) -o $(PATHGRAPH_EXE) $(CPP_FILES) $(PATHGRAPH_CPP)
$(PATHGRAPH_DEBUG_EXE): $(GLOBAL_DEPS) $(PATHGRAPH_FILES)
$(CXX) $(DEBUGFLAGS) $(PATHGRAPH_FLAG) -o $(PATHGRAPH_DEBUG_EXE) $(CPP_FILES) $(PATHGRAPH_CPP)
# ring lattice
RINGLATTICE_FLAG=-DRINGLATTICE
$(RINGLATTICE_EXE): $(GLOBAL_DEPS) $(RINGLATTICE_FILES)
$(CXX) $(RELEASEFLAGS) $(RINGLATTICE_FLAG) -o $(RINGLATTICE_EXE) $(CPP_FILES) $(RINGLATTICE_CPP)
$(RINGLATTICE_DEBUG_EXE): $(GLOBAL_DEPS) $(RINGLATTICE_FILES)
$(CXX) $(DEBUGFLAGS) $(RINGLATTICE_FLAG) -o $(RINGLATTICE_DEBUG_EXE) $(CPP_FILES) $(RINGLATTICE_CPP)
# clean things up
clean:
$(RM) $(RELEASE_EXES) $(DEBUG_EXES) *.o