1 # Copyright (c) 2016 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
6 # http://www.apache.org/licenses/LICENSE-2.0
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
14 AUTOMAKE_OPTIONS = foreign subdir-objects
16 AM_CFLAGS = -Wall -I@TOOLKIT_INCLUDE@
19 ########################################
21 ########################################
22 libsixrd_plugin_la_SOURCES = plugins/sixrd/sixrd.c plugins/sixrd/ip4_sixrd.c plugins/sixrd/ip6_sixrd.c
23 nobase_include_HEADERS = plugins/sixrd/sixrd.h
25 libsixrd_plugin_la_LDFLAGS = -module
28 lib_LTLIBRARIES = libsixrd_plugin.la
30 ########################################
31 # iOAM Proof of Transit
32 ########################################
34 ioam_pot_plugin_la_SOURCES = plugins/ioam/lib-pot/pot_util.c plugins/ioam/encap/ip6_ioam_pot.c \
35 plugins/ioam/lib-pot/pot_util.h plugins/ioam/lib-pot/math64.h plugins/ioam/lib-pot/pot_api.c
36 ioam_pot_plugin_la_LDFLAGS = -module
38 BUILT_SOURCES = plugins/ioam/lib-pot/pot.api.h
39 SUFFIXES = .api.h .api
42 mkdir -p `dirname $@` ; \
43 $(CC) $(CPPFLAGS) -E -P -C -x c $^ \
44 | vppapigen --input - --output $@ --show-name $@
46 nobase_include_HEADERS += \
47 plugins/ioam/lib-pot/pot_all_api_h.h \
48 plugins/ioam/lib-pot/pot_msg_enum.h \
49 plugins/ioam/lib-pot/pot.api.h \
50 plugins/ioam/lib-pot/pot_util.h \
51 plugins/ioam/lib-pot/math64.h
53 ioam_pot_test_plugin_la_SOURCES = plugins/ioam/lib-pot/pot_test.c plugins/ioam/lib-pot/pot_plugin.api.h
54 ioam_pot_test_plugin_la_LDFLAGS = -module
56 lib_LTLIBRARIES += ioam_pot_plugin.la ioam_pot_test_plugin.la
58 ########################################
59 # Virtual Carrier Grade NAT
60 ########################################
62 libvcgn_plugin_la_SOURCES = \
63 plugins/vcgn/cnat_bulk_port.c \
64 plugins/vcgn/cnat_config.c \
65 plugins/vcgn/cnat_db_scanner.c \
66 plugins/vcgn/cnat_db_v2.c \
67 plugins/vcgn/cnat_debug_msg_handler.c \
68 plugins/vcgn/cnat_cli_handler.c \
69 plugins/vcgn/cnat_global.c \
70 plugins/vcgn/cnat_ipv4_udp_inside_input.c \
71 plugins/vcgn/cnat_ipv4_udp_inside_input_exceptions.c \
72 plugins/vcgn/cnat_ipv4_udp_outside_input.c \
73 plugins/vcgn/cnat_ipv4_tcp_inside_input.c \
74 plugins/vcgn/cnat_ipv4_tcp_inside_input_exceptions.c \
75 plugins/vcgn/cnat_ipv4_tcp_outside_input.c \
76 plugins/vcgn/cnat_ipv4_icmp_query_inside_input.c \
77 plugins/vcgn/cnat_ipv4_icmp_query_inside_input_exception.c \
78 plugins/vcgn/cnat_ipv4_icmp_query_outside_input.c \
79 plugins/vcgn/cnat_ipv4_icmp_error_inside_input.c \
80 plugins/vcgn/cnat_ipv4_icmp_error_outside_input.c \
81 plugins/vcgn/cnat_logging.c \
82 plugins/vcgn/cnat_ports.c \
83 plugins/vcgn/cnat_util.c \
84 plugins/vcgn/cnat_show.c \
85 plugins/vcgn/cnat_syslog.c \
86 plugins/vcgn/cnat_v4_functions.c \
87 plugins/vcgn/index_list.c \
88 plugins/vcgn/spp_platform_trace_log.c \
89 plugins/vcgn/vcgn_classify.c
91 nobase_include_HEADERS += plugins/vcgn/cgn_bitmap.h \
92 plugins/vcgn/cgse_defs.h \
93 plugins/vcgn/cnat_bulk_port_defs.h \
94 plugins/vcgn/cnat_bulk_port.h \
95 plugins/vcgn/cnat_cli.h \
96 plugins/vcgn/cnat_common_api.h \
97 plugins/vcgn/cnat_config_api.h \
98 plugins/vcgn/cnat_config.h \
99 plugins/vcgn/cnat_db.h \
100 plugins/vcgn/cnat_global.h \
101 plugins/vcgn/cnat_ipv4_icmp.h \
102 plugins/vcgn/cnat_ipv4_udp.h \
103 plugins/vcgn/cnat_log_api.h \
104 plugins/vcgn/cnat_log_common.h \
105 plugins/vcgn/cnat_logging.h \
106 plugins/vcgn/cnat_pcp_server.h \
107 plugins/vcgn/cnat_ports.h \
108 plugins/vcgn/cnat_show_api.h \
109 plugins/vcgn/cnat_show_response.h \
110 plugins/vcgn/cnat_syslog.h \
111 plugins/vcgn/cnat_v4_ftp_alg.h \
112 plugins/vcgn/cnat_v4_functions.h \
113 plugins/vcgn/cnat_v4_pptp_alg.h \
114 plugins/vcgn/cnat_va_db.h \
115 plugins/vcgn/dslite_db.h \
116 plugins/vcgn/dslite_defs.h \
117 plugins/vcgn/index_list.h \
118 plugins/vcgn/nat64_db.h \
119 plugins/vcgn/nat64_defs.h \
120 plugins/vcgn/nat64_tcp_sm.h \
121 plugins/vcgn/platform_common.h \
122 plugins/vcgn/platform_common_override.h \
123 plugins/vcgn/spp_ctx.h \
124 plugins/vcgn/spp_platform_trace_log.h \
125 plugins/vcgn/spp_timers.h \
126 plugins/vcgn/tcp_header_definitions.h \
127 plugins/vcgn/vcgn_db.h
129 libvcgn_plugin_la_LDFLAGS = -module
131 lib_LTLIBRARIES += libvcgn_plugin.la
133 if WITH_PLUGIN_TOOLKIT
135 mkdir /usr/lib/vpp_plugins || true
136 mkdir /usr/lib/vpp_api_test_plugins || true
137 cp $(prefix)/lib/libsixrd_plugin.so.*.*.* /usr/lib/vpp_plugins
138 cp $(prefix)/lib/libvcgn_plugin.so.*.*.* /usr/lib/vpp_plugins
139 cp $(prefix)/lib/ioam_pot_plugin.so.*.*.* /usr/lib/vpp_plugins
140 cp $(prefix)/lib/ioam_pot_test_plugin.so.*.*.* \
141 /usr/lib/vpp_api_test_plugins