blob: d568f2462bb2f54a95316ee6185731777fed5d5a (
plain)
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
|
cmake_minimum_required(VERSION 2.8)
set(project_name sapp)
project(${project_name})
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
include(Version)
set(CMAKE_MACOSX_RPATH 0)
set(CMAKE_BUILD_TYPE "DEBUG" CACHE STRING
" set CMAKE_BUILD_TYPE chosen by the user, using DEBUG as default")
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS DEBUG RELEASE
RELWITHDEBINFO MINSIZEREL)
message(STATUS "CPU_PROFILE='${CPU_PROFILE}'")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Werror -DHIGH_PERF=1")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Werror -DHIGH_PERF=1")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG -DHIGH_PERF=0")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -DHIGH_PERF=0")
set(CMAKE_INSTALL_PREFIX /home/mesasoft/sapp_run/)
set(PLATFORM_MODE "MIRROR" CACHE STRING
" set platform mode chosen by the user, using mirror as default")
set_property(CACHE PLATFORM_MODE PROPERTY STRINGS MIRROR INLINE)
message(STATUS "PLATFORM_MODE='${PLATFORM_MODE}'")
#static link option
option(STATIC_LINK "Enable static link" TRUE)
# CPU profiler
set(CPU_PROFILE "OFF" CACHE STRING
" set cpu profiler chosen by the user, using OFF as default")
set_property(CACHE CPU_PROFILE PROPERTY STRINGS OFF GPERF GPROF)
message(STATUS "CPU_PROFILE='${CPU_PROFILE}'")
if(CPU_PROFILE MATCHES "GPERF")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lprofiler")
elseif(CPU_PROFILE MATCHES "GPROF")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lpg")
endif()
#ASAN option
set(ASAN_OPTION "OFF" CACHE STRING
" set asan type chosen by the user, using OFF as default")
set_property(CACHE ASAN_OPTION PROPERTY STRINGS OFF ADDRESS THREAD)
message(STATUS "ASAN_OPTION='${ASAN_OPTION}'")
if(ASAN_OPTION MATCHES "ADDRESS")
set(CMAKE_C_FLAGS "${CMAKADDRESS} -g -DCMAKE_BUILD_TYPE=Debug -fsanitize=address -fno-omit-frame-pointer")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -DCMAKE_BUILD_TYPE=Debug -fsanitize=address -fno-omit-frame-pointer")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
elseif(ASAN_OPTION MATCHES "THREAD")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -DCMAKE_BUILD_TYPE=Debug -fsanitize=thread -fno-omit-frame-pointer")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -DCMAKE_BUILD_TYPE=Debug -fsanitize=thread -fno-omit-frame-pointer")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
endif()
# MESA SDK Root
set(MESA_SDK_PREFIX "/opt/MESA/" CACHE STRING "MESA Framework Prefix")
# Capture Mode
set(CAPTURE_MODE "PCAP" CACHE STRING
"CAPTURE_MODE set Capture network traffic chosen by the user, using PCAP as default")
set_property(CACHE CAPTURE_MODE PROPERTY STRINGS PCAP MARSIO PAG)
message(STATUS "CAPTURE_MODE='${CAPTURE_MODE}'")
if(CAPTURE_MODE MATCHES "PCAP")
set(CAPTURE_DEFINITIONS -DONLY_PCAP -DIOMODE_PCAP)
endif()
if(CAPTURE_MODE MATCHES "PAG")
set(CAPTURE_DEFINITIONS -DCAPTURE_MODE_PAG)
endif()
if(CAPTURE_MODE MATCHES "MARSIO")
set(CAPTURE_DEFINITIONS -DCAPTURE_MODE_MARSIO -DIOMODE_MARSIO)
endif()
# Memory Allocator
set(MEM_POOL "OFF" CACHE STRING
" set mem alloc chosen by the user, using off as default")
set_property(CACHE MEM_POOL PROPERTY STRINGS OFF DICTATOR DICTATOR_DEBUG
TCMALLOC TCMALLOC_MINI JEMALLOC)
message(STATUS "MEM_POOL='${MEM_POOL}'")
if(MEM_POOL MATCHES "DICTATOR")
set(MEM_POOL_DEFINITIONS -DDICTATOR_DEBUG)
elseif(MEM_POOL MATCHES "DICTATOR_DEBUG")
set(MEM_POOL_DEFINITIONS ${MEM_POOL_DEFINITIONS} -DUSE_MEM_POOL=1
-DUSE_MEMPOOL)
elseif(MEM_POOL MATCHES "TCMALLOC_MINI")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -ltcmalloc_minimal -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free")
elseif(MEM_POOL MATCHES "TCMALLOC")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -ltcmalloc -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free")
elseif(MEM_POOL MATCHES "JEMALLOC")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -ljemalloc -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free")
endif()
add_definitions(${CAPTURE_DEFINITIONS} ${MEM_POOL_DEFINITIONS} -D__FAVOR_BSD=1
-D__USE_BS=1 -D_GNU_SOURCE=1 -DMESA_SAPP_PLATFORM=1)
set(SAPP_DEPEND_DYN_LIB MESA_handle_logger MESA_htable pthread MESA_field_stat2)
set(CMAKE_C_FLAGS_RELEASE "-Werror")
file(MD5 ${PROJECT_SOURCE_DIR}/include/stream_inc/stream_base.h MD5_STREAM_BASE)
file(MD5 ${PROJECT_SOURCE_DIR}/include/stream_inc/stream_control.h MD5_STREAM_CONTROL)
file(MD5 ${PROJECT_SOURCE_DIR}/include/stream_inc/stream_entry.h MD5_STREAM_ENTRY)
file(MD5 ${PROJECT_SOURCE_DIR}/include/stream_inc/stream_inject.h MD5_STREAM_INJECT)
file(MD5 ${PROJECT_SOURCE_DIR}/include/stream_inc/stream_project.h MD5_STREAM_PROJECT)
file(MD5 ${PROJECT_SOURCE_DIR}/include/stream_inc/stream_proxy.h MD5_STREAM_PROXY)
file(MD5 ${PROJECT_SOURCE_DIR}/include/stream_inc/stream_rawpkt.h MD5_STREAM_RAWPKT)
file(MD5 ${PROJECT_SOURCE_DIR}/include/stream_inc/stream_tunnel.h MD5_STREAM_TUNNEL)
add_definitions(${HEADER_CHECK_DEFINITIONS}
-DSTREAM_BASE_MD5_CHECK="${MD5_STREAM_BASE}"
-DSTREAM_CONTROL_MD5_CHECK="${MD5_STREAM_CONTROL}"
-DSTREAM_ENTRY_MD5_CHECK="${MD5_STREAM_ENTRY}"
-DSTREAM_INJECT_MD5_CHECK="${MD5_STREAM_INJECT}"
-DSTREAM_PROJECT_MD5_CHECK="${MD5_STREAM_PROJECT}"
-DSTREAM_PROXY_MD5_CHECK="${MD5_STREAM_PROXY}"
-DSTREAM_RAWPKT_MD5_CHECK="${MD5_STREAM_RAWPKT}"
-DSTREAM_TUNNEL_MD5_CHECK="${MD5_STREAM_TUNNEL}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${HEADER_CHECK_DEFINITIONS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${HEADER_CHECK_DEFINITIONS}")
add_subdirectory(test_so)
add_subdirectory(support)
add_subdirectory(dealpkt)
add_subdirectory(packet_io)
add_subdirectory(plugin)
add_subdirectory(project)
add_subdirectory(inner_plug)
add_subdirectory(entry)
install(PROGRAMS ${CMAKE_BINARY_DIR}/entry/sapp DESTINATION .)
install(PROGRAMS run/r2 DESTINATION .)
install(PROGRAMS run/r3 DESTINATION .)
#install(PROGRAMS run/vv.py DESTINATION .)
install(PROGRAMS run/pag.conf DESTINATION .)
install(PROGRAMS run/memchk.sh DESTINATION .)
install(FILES run/conf/gdev_block.conf DESTINATION conf)
install(FILES run/conf/gdev.conf DESTINATION conf)
install(FILES run/conf/main.conf DESTINATION conf)
install(FILES run/conf/project_list.conf DESTINATION conf)
install(FILES run/conf/route_table.conf DESTINATION conf)
install(FILES run/conf/send_gdev.conf DESTINATION conf)
install(FILES run/conf/send_raw_pkt.conf DESTINATION conf)
install(FILES run/conf/send_route.conf DESTINATION conf)
install(FILES run/conf/streamid.txt DESTINATION conf)
install(FILES run/conf/plugin/entrylist.conf DESTINATION conf/plugin)
install(FILES run/conf/plugin/plugin.conf DESTINATION conf/plugin)
if(CAPTURE_MODE MATCHES "MARSIO")
install(FILES ${CMAKE_BINARY_DIR}/packet_io/packet_io_marsio.so DESTINATION platform_lib)
endif()
if(CAPTURE_MODE MATCHES "PAG")
install(FILES ${CMAKE_BINARY_DIR}/packet_io/packet_io_pag.so DESTINATION platform_lib)
endif()
if(CAPTURE_MODE MATCHES "PCAP")
install(FILES ${CMAKE_BINARY_DIR}/packet_io/packet_io_pcap.so DESTINATION platform_lib)
endif()
install(FILES run/plug/protocol/conflist_protocol.inf DESTINATION plug/protocol)
if(PLATFORM_MODE MATCHES "MIRROR")
install(FILES run/plug/protocol/isakmp_protocol_plug/isakmp_protocol_plug.inf DESTINATION plug/protocol/isakmp_protocol_plug)
install(FILES ${CMAKE_BINARY_DIR}/inner_plug/isakmp_protocol_plug.so DESTINATION plug/protocol/isakmp_protocol_plug)
install(FILES run/plug/protocol/l2tp_protocol_plug/l2tp_protocol_plug.inf DESTINATION plug/protocol/l2tp_protocol_plug)
install(FILES ${CMAKE_BINARY_DIR}/inner_plug/l2tp_protocol_plug.so DESTINATION plug/protocol/l2tp_protocol_plug)
install(FILES run/plug/protocol/pptp_protocol_plug/pptp_protocol_plug.inf DESTINATION plug/protocol/pptp_protocol_plug)
install(FILES ${CMAKE_BINARY_DIR}/inner_plug/pptp_protocol_plug.so DESTINATION plug/protocol/pptp_protocol_plug)
endif()
install(FILES run/plug/platform/conflist_platform.inf DESTINATION plug/platform)
if(PLATFORM_MODE MATCHES "INLINE")
install(FILES run/plug/platform/g_device_plug/g_device_plug.inf DESTINATION plug/platform/g_device_plug)
install(FILES ${CMAKE_BINARY_DIR}/inner_plug/g_device_plug.so DESTINATION plug/platform/g_device_plug)
endif()
install(FILES run/plug/business/conflist_business.inf DESTINATION plug/business)
install(FILES run/plug/business/conflist_business.inf DESTINATION plug/business)
install(FILES run/plug/business/test_app/test_app.inf DESTINATION plug/business/test_app)
install(FILES ${CMAKE_BINARY_DIR}/test_so/test_app_sapp.so DESTINATION plug/business/test_app)
install(FILES ${CMAKE_BINARY_DIR}/test_so/trace_delay.so DESTINATION plug/business/test_app)
include(Package)
|