6ec1213d532bb43add3bd12689b08b14d2e45936
[vpp.git] / test / ext / Makefile
1 VAPI_BINDIR = $(TEST_DIR)/build/vapi_test/
2 VAPI_CBIN = $(addprefix $(VAPI_BINDIR), vapi_c_test)
3 VAPI_CPPBIN = $(addprefix $(VAPI_BINDIR), vapi_cpp_test)
4 VOM_BINDIR = $(TEST_DIR)/build/vom_test/
5 VOM_BIN = $(addprefix $(VOM_BINDIR), vom_test)
6
7 ifeq ($(filter rhel centos,$(OS_ID)),$(OS_ID))
8 VAPI_CPPBIN=
9 endif
10
11 ifeq ($(filter yes,$(EXTENDED_TESTS)),$(EXTENDED_TESTS))
12 VOM_BIN=
13 endif
14
15 VAPI_LIBS = \
16   -L$(VPP_INSTALL_PATH)/vpp/lib \
17   -lvppinfra -lvlibmemoryclient -lsvm -lpthread -lcheck -lrt -lm -lvapiclient
18
19 ifneq ($(filter centos opensuse opensuse-tumbleweed opensuse-leap,$(OS_ID)),$(OS_ID))
20 VAPI_LIBS += -lsubunit
21 endif
22
23 FLAGS = -g -Wall -lstdc++ -pthread -I$(WS_ROOT)/src -I$(VPP_INSTALL_PATH)/vpp/include -I$(VAPI_BINDIR)
24 CFLAGS = -std=gnu99 $(FLAGS)
25 CPPFLAGS = -std=c++11 $(FLAGS) -I$(WS_ROOT)/extras/vom
26
27 all: $(VAPI_CBIN) $(VAPI_CPPBIN) $(VOM_BIN)
28
29 $(VAPI_BINDIR):
30         mkdir -p $(VAPI_BINDIR)
31
32 CSRC = vapi_c_test.c
33
34 $(VAPI_BINDIR)/fake.api.vapi.h: fake.api.json $(WS_ROOT)/src/vpp-api/vapi/vapi_c_gen.py | $(VAPI_BINDIR)
35         $(WS_ROOT)/src/vpp-api/vapi/vapi_c_gen.py --prefix $(VAPI_BINDIR) $<
36
37 $(VAPI_BINDIR)/fake.api.vapi.hpp: fake.api.json $(WS_ROOT)/src/vpp-api/vapi/vapi_cpp_gen.py | $(VAPI_BINDIR)
38         $(WS_ROOT)/src/vpp-api/vapi/vapi_cpp_gen.py --prefix $(VAPI_BINDIR) $<
39
40 $(VAPI_CBIN): $(CSRC) $(VAPI_BINDIR)/fake.api.vapi.h
41         $(CC) -o $@ $(CFLAGS) $(CSRC) $(VAPI_LIBS)
42
43 $(VAPI_CBIN).d: $(CSRC) $(VAPI_BINDIR)/fake.api.vapi.h
44         $(CC) -o $@ $(CFLAGS) -MM -MT '$(VAPI_CBIN)' $(CSRC) > $@
45
46
47 CPPSRC = vapi_cpp_test.cpp
48
49 $(VAPI_CPPBIN): $(CPPSRC) $(VAPI_BINDIR)/fake.api.vapi.hpp
50         $(CXX) -o $@ $(CPPFLAGS) $(CPPSRC) $(VAPI_LIBS)
51
52 $(VAPI_CPPBIN).d: $(CPPSRC) $(VAPI_BINDIR)/fake.api.vapi.hpp
53         $(CXX) -o $@ $(CPPFLAGS) -MM -MT '$(VAPI_CPPBIN)' $(CPPSRC) > $@
54
55 VOM_CPPSRC = vom_test.cpp
56
57 $(VOM_BINDIR):
58         mkdir -p $(VOM_BINDIR)
59
60 LIB_VOM = -lvom
61 VOM_LIBS = \
62         -L$(VPP_INSTALL_PATH)/vom/lib \
63         -lvom                                           \
64         -lboost_thread                                  \
65         -lboost_system                                  \
66         -lboost_filesystem                              \
67         -lboost_unit_test_framework                     \
68         $(VAPI_LIBS)
69
70 VOM_CPPFLAGS = \
71         -I $(WS_ROOT)/src/vpp-api/ \
72         -DBOOST_LOG_DYN_LINK \
73         $(CPPFLAGS)
74
75 $(VOM_BIN): $(VOM_CPPSRC) $(VOM_BINDIR)
76         $(CXX) -o $@ $(VOM_CPPFLAGS) -O0 -g $(VOM_CPPSRC) $(VOM_LIBS) -Wl,-rpath,$(VPP_INSTALL_PATH)/vom/lib
77
78 $(VOM_BIN).d: $(VOM_CPPSRC) $(VOM_BINDIR)
79         $(CXX) -o $@ $(VOM_CPPFLAGS) -MM -MT '$(VOM_BIN)' $(VOM_CPPSRC) > $@
80
81
82 clean:
83         rm -rf $(VAPI_BINDIR) $(VOM_BINDIR)
84
85 ifneq ($(MAKECMDGOALS),clean)
86 -include $(VAPI_CPPBIN).d
87 -include $(VAPI_CBIN).d
88 -include $(VOM_BIN).d
89 endif
90