-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
145 lines (122 loc) · 2.98 KB
/
Makefile
File metadata and controls
145 lines (122 loc) · 2.98 KB
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
# Makefile
# rules (always with .out)
# SRC-X.out += abc # extra source: abc.c
# MOD-X.out += abc # extra module: abc.c abc.h
# ASM-X.out += abc # extra assembly: abc.S
# DEP-X.out += abc # extra dependency: abc
# FLG-X.out += -finline # extra flags
# LIB-X.out += abc # extra -labc options
# X.out : xyz.h xyz.c # for extra dependences that are to be compiled/linked.
# X => X.out
TARGETS += libtest
# X => X.c only
SOURCES +=
SOURCES += $(EXTRASRC)
# X => X.S only
ASSMBLY +=
ASSMBLY += $(EXTRAASM)
# X => X.c X.h
MODULES += lib kv wh
MODULES += $(EXTRAMOD)
# X => X.h
HEADERS += ctypes
HEADERS += $(EXTRAHDR)
# EXTERNSRC/EXTERNDEP do not belong to this repo.
# extern-src will be linked
EXTERNSRC +=
# extern-dep will not be linked
EXTERNDEP +=
FLG +=
LIB += m
MOD-libtest.out += ht ord
#### all
# tools without external deps
TGT-all += $(TARGETS)
.PHONY : all
#all : $(addsuffix .out,$(TGT-all))
all : bin wh xdb bench
#### wh
TGT-wh += whdemo whdbg
.PHONY : wh
wh : $(addsuffix .out,$(TGT-wh))
LIB-whdbg.out += readline
FLG-whdbg.out += -DWORMHOLE_DEBUG
FLG-whu64test.out += -DWORMHOLE_DEBUG
#### xdb
TGT-xdb += mssttest msstztest sstdump xdbtest xdbdemo
.PHONY : xdb
xdb : $(addsuffix .out,$(TGT-xdb))
MOD-REMIX = blkio sst xdb
MOD-mssttest.out += $(MOD-REMIX)
MOD-msstztest.out += $(MOD-REMIX)
MOD-sstdump.out += $(MOD-REMIX)
MOD-xdbtest.out += $(MOD-REMIX)
MOD-xdbdemo.out += $(MOD-REMIX)
MOD-xdbexit.out += $(MOD-REMIX)
#### bench
TGT-bench += maptest1 maptestx dbtest1 dbtestx dbcdf ycsbtest
.PHONY : bench
bench : $(addsuffix .out,$(TGT-bench))
#### ib
LIB-ibkvser.out += ibverbs
MOD-ibkvser.out += ib
LIB-ibkvcli.out += ibverbs
MOD-ibkvcli.out += ib
LIB-ibperfser.out += ibverbs
MOD-ibperfser.out += ib
LIB-ibperfcli.out += ibverbs
MOD-ibperfcli.out += ib
TGT-ib += ibkvser ibkvcli ibperfser ibperfcli
.PHONY : ib
ib : $(addsuffix .out,$(TGT-ib))
#### more
# collections
MOD-blkiotest.out += blkio
MOD-coqtest1.out += blkio
#sdl
FLG-sdltest.out += -I/usr/include/SDL2
LIB-sdltest.out += SDL2
# papi spdk uring CORR
TGT-more += misctest blkiotest
.PHONY : more
more : $(addsuffix .out,$(TGT-more))
# when $ make FORKER_PAPI=y
ifeq ($(FORKER_PAPI),y)
LIB += papi
FLG += -DFORKER_PAPI
else ifeq ($(PAPI),y) # just PAPI
LIB += papi
FLG += -DPAPI
endif
# DB
ifeq ($(REMIXDB),y)
MODULES += $(MOD-REMIX)
endif
ifeq ($(LEVELDB),y)
MODULES += ord
FLG += -DLEVELDB
LIB += leveldb
endif
ifeq ($(ROCKSDB),y)
MODULES += ord
FLG += -DROCKSDB
LIB += rocksdb
endif
ifeq ($(LMDB),y)
MODULES += ord
FLG += -DLMDB
LIB += lmdb
endif
ifeq ($(KVELL),y)
MODULES += ord
FLG += -DKVELL
LIB += kvell
endif
ifeq ($(SPDK),y)
FLG += -DSPDK
LIB += spdk spdk_env_dpdk rte_bus_pci rte_bus_vdev rte_mempool_ring rte_vhost rte_security rte_reorder
LIB += rte_power rte_cryptodev rte_compressdev rte_timer rte_hash rte_cmdline rte_pci rte_ethdev
LIB += rte_meter rte_net rte_mbuf rte_mempool rte_rcu rte_ring rte_eal rte_telemetry rte_kvargs
endif
# append common rules (have to do it here)
include Makefile.common