forked from tcp-acceleration-service/tas
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
118 lines (91 loc) · 2.54 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
-include Makefile.local
##############################################################################
# Compile, link, and install flags
CPPFLAGS += -Iinclude/
CPPFLAGS += $(EXTRA_CPPFLAGS)
CFLAGS += -std=gnu99 -O3 -g -Wall -Werror -march=native -fno-omit-frame-pointer
CFLAGS += $(EXTRA_CFLAGS)
CFLAGS_SHARED += $(CFLAGS) -fPIC
LDFLAGS += -pthread -g
LDFLAGS += $(EXTRA_LDFLAGS)
LDLIBS += -lm -lpthread -lrt -ldl
LDLIBS += $(EXTRA_LDLIBS)
PREFIX ?= /usr/local
SBINDIR ?= $(PREFIX)/sbin
LIBDIR ?= $(PREFIX)/lib
INCDIR ?= $(PREFIX)/include
##############################################################################
# DPDK configuration
# Prefix for dpdk
RTE_SDK ?= /usr/
# mpdts to compile
DPDK_PMDS ?= ixgbe i40e tap virtio
DPDK_CPPFLAGS += -I$(RTE_SDK)/include -I$(RTE_SDK)/include/dpdk \
-I$(RTE_SDK)/include/x86_64-linux-gnu/dpdk/
DPDK_LDFLAGS+= -L$(RTE_SDK)/lib/
DPDK_LDLIBS+= \
-Wl,--whole-archive \
$(addprefix -lrte_pmd_,$(DPDK_PMDS)) \
-lrte_eal \
-lrte_mempool \
-lrte_mempool_ring \
-lrte_hash \
-lrte_ring \
-lrte_kvargs \
-lrte_ethdev \
-lrte_mbuf \
-lnuma \
-lrte_bus_pci \
-lrte_pci \
-lrte_cmdline \
-lrte_timer \
-lrte_net \
-lrte_kni \
-lrte_bus_vdev \
-lrte_gso \
-Wl,--no-whole-archive \
-ldl \
$(EXTRA_LIBS_DPDK)
##############################################################################
include mk/recipes.mk
DEPS :=
CLEAN :=
DISTCLEAN :=
TARGETS :=
# Subdirectories
dir := lib
include $(dir)/rules.mk
dir := tas
include $(dir)/rules.mk
dir := tools
include $(dir)/rules.mk
dir := tests
include $(dir)/rules.mk
dir := doc
include $(dir)/rules.mk
##############################################################################
# Top level targets
all: $(TARGETS)
clean:
rm -rf $(CLEAN) $(DEPS)
distclean:
rm -rf $(DISTCLEAN) $(CLEAN) $(DEPS)
install: tas/tas lib/libtas_sockets.so lib/libtas_interpose.so \
lib/libtas.so tools/statetool
mkdir -p $(DESTDIR)$(SBINDIR)
cp tas/tas $(DESTDIR)$(SBINDIR)/tas
cp tools/statetool $(DESTDIR)$(SBINDIR)/tas-statetool
mkdir -p $(DESTDIR)$(LIBDIR)
cp lib/libtas_interpose.so $(DESTDIR)$(LIBDIR)/libtas_interpose.so
cp lib/libtas_sockets.so $(DESTDIR)$(LIBDIR)/libtas_sockets.so
cp lib/libtas.so $(DESTDIR)$(LIBDIR)/libtas.so
uninstall:
rm -f $(DESTDIR)$(SBINDIR)/tas
rm -f $(DESTDIR)$(SBINDIR)/tas-statetool
rm -f $(DESTDIR)$(LIBDIR)/libtas_interpose.so
rm -f $(DESTDIR)$(LIBDIR)/libtas_sockets.so
rm -f $(DESTDIR)$(LIBDIR)/libtas.so
.DEFAULT_GOAL := all
.PHONY: all distclean clean install uninstall
# Include dependencies
-include $(DEPS)