Move vcgn as plugin
[vpp.git] / plugins / Makefile.am
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:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
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.
13
14 AUTOMAKE_OPTIONS = foreign subdir-objects
15
16 AM_CFLAGS = -Wall -I@TOOLKIT_INCLUDE@
17
18
19 ########################################
20 # SIXRD (RFC5969)
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
24
25 libsixrd_plugin_la_LDFLAGS = -module
26 #BUILT_SOURCES =
27
28 lib_LTLIBRARIES = libsixrd_plugin.la
29
30 ########################################
31 # iOAM Proof of Transit
32 ########################################
33
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
37
38 BUILT_SOURCES = plugins/ioam/lib-pot/pot.api.h
39 SUFFIXES = .api.h .api
40
41 %.api.h: %.api
42         mkdir -p `dirname $@` ; \
43         $(CC) $(CPPFLAGS) -E -P -C -x c $^ \
44         | vppapigen --input - --output $@ --show-name $@
45
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
52
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
55
56 lib_LTLIBRARIES += ioam_pot_plugin.la ioam_pot_test_plugin.la
57
58 ########################################
59 # Virtual Carrier Grade NAT
60 ########################################
61
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
90
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
128
129 libvcgn_plugin_la_LDFLAGS = -module
130
131 lib_LTLIBRARIES += libvcgn_plugin.la
132
133 if WITH_PLUGIN_TOOLKIT
134 install-data-hook:
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
142 endif
143