forked from LPD-EPFL/ASCYLIB
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
277 lines (192 loc) · 6.93 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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
.PHONY: all
BENCHS = src/bst-aravind src/bst-bronson src/bst-drachsler src/bst-ellen src/bst-howley src/bst-seq_internal src/bst-tk src/hashtable-copy src/hashtable-coupling src/hashtable-harris src/hashtable-java src/hashtable-lazy src/hashtable-pugh src/hashtable-rcu src/hashtable-seq src/hashtable-tbb src/linkedlist-copy src/linkedlist-coupling src/linkedlist-harris src/linkedlist-harris_opt src/linkedlist-lazy src/linkedlist-michael src/linkedlist-pugh src/linkedlist-seq src/noise src/skiplist-fraser src/skiplist-herlihy_lb src/skiplist-herlihy_lf src/skiplist-pugh src/skiplist-pugh-string src/skiplist-seq
LBENCHS = src/linkedlist-coupling src/linkedlist-lazy src/linkedlist-pugh src/linkedlist-copy src/hashtable-pugh src/hashtable-coupling src/hashtable-lazy src/hashtable-java src/hashtable-copy src/skiplist-herlihy_lb src/skiplist-pugh src/skiplist-pugh-string src/bst-bronson src/bst-drachsler src/bst-tk/
LFBENCHS = src/linkedlist-harris src/linkedlist-harris_opt src/linkedlist-michael src/hashtable-harris src/skiplist-fraser src/skiplist-herlihy_lf src/bst-ellen src/bst-howley src/bst-aravind
SEQBENCHS = src/linkedlist-seq src/hashtable-seq src/skiplist-seq src/bst-seq_internal src/bst-seq_external
EXTERNALS = src/hashtable-rcu src/hashtable-tbb
NOISE = src/noise
TESTS = src/tests
BSTS = src/bst-bronson src/bst-drachsler src/bst-ellen src/bst-howley src/bst-aravind src/bst-tk/
.PHONY: clean all external $(BENCHS) $(LBENCHS) $(NOISE) $(TESTS) $(SEQBENCHS)
default: lockfree tas seq
all: lockfree tas seq external
mutex:
$(MAKE) "LOCK=MUTEX" $(LBENCHS)
spin:
$(MAKE) "LOCK=SPIN" $(LBENCHS)
tas:
$(MAKE) "LOCK=TAS" $(LBENCHS)
ticket:
$(MAKE) "LOCK=TICKET" $(LBENCHS)
hticket:
$(MAKE) "LOCK=HTICKET" $(LBENCHS)
clh:
$(MAKE) "LOCK=CLH" $(LBENCHS)
bst: seqbstint seqbstext
$(MAKE) $(BSTS)
bst_tk:
$(MAKE) "LOCK=TAS" src/bst-tk/
bst_aravind:
$(MAKE) "STM=LOCKFREE" src/bst-aravind
bst_howley:
$(MAKE) "STM=LOCKFREE" src/bst-howley
bst_ellen:
$(MAKE) "STM=LOCKFREE" src/bst
bst_drachsler:
$(MAKE) "LOCK=TAS" src/bst-drachsler
bst_drachsler_no_ro:
$(MAKE) "LOCK=TAS" "RO_FAIL=0" src/bst-drachsler
bst_bronson:
$(MAKE) "LOCK=TAS" src/bst-bronson
sequential:
$(MAKE) "STM=SEQUENTIAL" "SEQ_NO_FREE=1" $(SEQBENCHS)
seqgc:
$(MAKE) "STM=SEQUENTIAL" $(SEQBENCHS)
seq: sequential
seqht:
$(MAKE) "STM=SEQUENTIAL" "SEQ_NO_FREE=1" src/hashtable-seq
seqhtgc:
$(MAKE) "STM=SEQUENTIAL" "GC=1" src/hashtable-seq
seqsl:
$(MAKE) "STM=SEQUENTIAL" "SEQ_NO_FREE=1" src/skiplist-seq
seqslgc:
$(MAKE) "STM=SEQUENTIAL" "GC=1" src/skiplist-seq
lockfree:
$(MAKE) "STM=LOCKFREE" $(LFBENCHS)
noise:
$(MAKE) $(NOISE)
tests:
$(MAKE) $(TESTS)
tbb:
$(MAKE) "LOCK=TAS" src/hashtable-tbb
lfsl:
$(MAKE) "STM=LOCKFREE" src/skiplist
lfsl_fraser:
$(MAKE) "STM=LOCKFREE" src/skiplist-fraser
lfsl_herlihy_lf:
$(MAKE) "STM=LOCKFREE" src/skiplist-herlihy_lf
lbsl_pugh:
$(MAKE) "LOCK=TAS" src/skiplist-pugh
lbsl_pugh_string:
$(MAKE) "LOCK=TAS" src/skiplist-pugh-string
lbsl_herlihy_lb:
$(MAKE) "LOCK=TAS" src/skiplist-herlihy_lb
sl: seqsl lfsl_fraser lfsl_herlihy_lf lbsl_pugh lbsl_string_pugh lbsl_herlihy_lb
lfll_harris:
$(MAKE) "STM=LOCKFREE" src/linkedlist-harris
lfll_harris_opt:
$(MAKE) "STM=LOCKFREE" src/linkedlist-harris_opt
lfll_michael:
$(MAKE) "STM=LOCKFREE" src/linkedlist-michael
seqll:
$(MAKE) "STM=SEQUENTIAL" "SEQ_NO_FREE=1" src/linkedlist-seq
seqllgc:
$(MAKE) "STM=SEQUENTIAL" "GC=1" src/linkedlist-seq
lfll: lfll_harris lfll_michael lfll_harris_opt
# ll: seqll lfll lbll llcopy lbll_coupling lbll_pugh lbll_lazy
ll: seqll lfll lbll llcopy lbll_coupling lbll_pugh lbll_lazy lbll_lazy_no_ro llcopy_no_ro lbll_pugh_no_ro
lbht_coupling:
$(MAKE) "LOCK=TAS" src/hashtable-coupling
lbht_pugh:
$(MAKE) "LOCK=TAS" src/hashtable-pugh
lbht_lazy:
$(MAKE) "LOCK=TAS" src/hashtable-lazy
lbht_coupling_gl:
$(MAKE) "LOCK=TAS" "G=GL" src/hashtable-coupling
lbht_pugh_gl:
$(MAKE) "LOCK=TAS" "G=GL" src/hashtable-pugh
lbht_pugh_gl_no_ro:
$(MAKE) "LOCK=TAS" "G=GL" "RO_FAIL=0" src/hashtable-pugh
lbht_lazy_gl:
$(MAKE) "LOCK=TAS" "G=GL" src/hashtable-lazy
lbht_lazy_gl_no_ro:
$(MAKE) "LOCK=TAS" "G=GL" "RO_FAIL=0" src/hashtable-lazy
lbll_coupling:
$(MAKE) "LOCK=TAS" src/linkedlist-coupling
lbll_pugh:
$(MAKE) "LOCK=TAS" src/linkedlist-pugh
lbll_pugh_no_ro:
$(MAKE) "LOCK=TAS" "RO_FAIL=0" src/linkedlist-pugh
lbll_lazy:
$(MAKE) "LOCK=TAS" src/linkedlist-lazy
lbll_lazy_no_ro:
$(MAKE) "LOCK=TAS" "RO_FAIL=0" src/linkedlist-lazy
llcopy:
$(MAKE) "LOCK=CLH" src/linkedlist-copy
llcopy_no_ro:
$(MAKE) "LOCK=CLH" "RO_FAIL=0" src/linkedlist-copy
htcopy:
$(MAKE) "LOCK=TAS" src/hashtable-copy
htcopy_no_ro:
$(MAKE) "LOCK=TAS" "RO_FAIL=0" src/hashtable-copy
htcopygl:
$(MAKE) "LOCK=CLH" "G=GL" src/hashtable-copy
lfht:
$(MAKE) "STM=LOCKFREE" src/hashtable-harris
htjava:
$(MAKE) "LOCK=TAS" src/hashtable-java
htjava_no_ro:
$(MAKE) "LOCK=TAS" "RO_FAIL=0" src/hashtable-java
htrcu:
$(MAKE) "LOCK=TAS" "GC=0" src/hashtable-rcu
htrcugc:
$(MAKE) "LOCK=TAS" src/hashtable-rcu
ht: seqht lfht lbht htjava tbb htcopy htrcu lbht_coupling lbht_lazy lbht_pugh lbht_coupling_gl lbht_lazy_gl lbht_pugh_gl lbht_lazy_gl_no_ro lbht_pugh_gl_no_ro htcopy_no_ro htjava_no_ro
seqbstint:
$(MAKE) "STM=SEQUENTIAL" "SEQ_NO_FREE=1" src/bst-seq_internal
seqbstext:
$(MAKE) "STM=SEQUENTIAL" "SEQ_NO_FREE=1" src/bst-seq_external
seqbstintgc:
$(MAKE) "STM=SEQUENTIAL" "GC=1" src/bst-seq_internal
seqbstextgc:
$(MAKE) "STM=SEQUENTIAL" "GC=1" src/bst-seq_external
seqbstgc: seqbstextgc seqbstintgc
external:
$(MAKE) "STM=LOCKFREE" $(EXTERNALS)
clean:
$(MAKE) -C src/bst-aravind clean
$(MAKE) -C src/bst-bronson clean
$(MAKE) -C src/bst-drachsler clean
$(MAKE) -C src/bst-ellen clean
$(MAKE) -C src/bst-howley clean
$(MAKE) -C src/bst-seq_external clean
$(MAKE) -C src/bst-seq_internal clean
$(MAKE) -C src/bst-tk clean
$(MAKE) -C src/hashtable-copy clean
$(MAKE) -C src/hashtable-coupling clean
$(MAKE) -C src/hashtable-harris clean
$(MAKE) -C src/hashtable-java clean
$(MAKE) -C src/hashtable-lazy clean
$(MAKE) -C src/hashtable-pugh clean
$(MAKE) -C src/hashtable-rcu clean
$(MAKE) -C src/hashtable-seq clean
$(MAKE) -C src/hashtable-tbb clean
$(MAKE) -C src/linkedlist-copy clean
$(MAKE) -C src/linkedlist-coupling clean
$(MAKE) -C src/linkedlist-harris clean
$(MAKE) -C src/linkedlist-harris_opt clean
$(MAKE) -C src/linkedlist-lazy clean
$(MAKE) -C src/linkedlist-michael clean
$(MAKE) -C src/linkedlist-pugh clean
$(MAKE) -C src/linkedlist-seq clean
$(MAKE) -C src/noise clean
$(MAKE) -C src/skiplist-fraser clean
$(MAKE) -C src/skiplist-herlihy_lb clean
$(MAKE) -C src/skiplist-herlihy_lf clean
$(MAKE) -C src/skiplist-pugh clean
$(MAKE) -C src/skiplist-pugh-string clean
$(MAKE) -C src/skiplist-seq clean
$(MAKE) -C src/tests clean
rm -rf build
$(SEQBENCHS):
$(MAKE) -C $@ $(TARGET)
$(LBENCHS):
$(MAKE) -C $@ $(TARGET)
$(LFBENCHS):
$(MAKE) -C $@ $(TARGET)
$(NOISE):
$(MAKE) -C $@ $(TARGET)
$(TESTS):
$(MAKE) -C $@ $(TARGET)
$(EXTERNALS):
$(MAKE) -C $@ $(TARGET)