vnet: device flow offload infra
[vpp.git] / src / plugins / dpdk.am
1 # Copyright (c) 2016 Cisco Systems, Inc.
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 vppapitestplugins_LTLIBRARIES += dpdk_test_plugin.la
15 vppplugins_LTLIBRARIES += dpdk_plugin.la
16
17 if ENABLE_DPDK_SHARED
18 dpdk_plugin_la_LDFLAGS = $(AM_LDFLAGS) -ldpdk
19 else
20 dpdk_plugin_la_LDFLAGS = $(AM_LDFLAGS) -Wl,--whole-archive,-l:libdpdk.a,--no-whole-archive
21 endif
22 if WITH_AESNI_MB_LIB
23 dpdk_plugin_la_LDFLAGS += -Wl,--exclude-libs,libIPSec_MB.a,-l:libIPSec_MB.a
24 endif
25 if WITH_ISA_L_CRYPTO_LIB
26 dpdk_plugin_la_LDFLAGS += -Wl,--exclude-libs,libisal_crypto.a,-l:libisal_crypto.a
27 endif
28 dpdk_plugin_la_CFLAGS = $(AM_CFLAGS)
29 dpdk_plugin_la_LDFLAGS += -Wl,-lnuma
30
31 dpdk_plugin_la_LDFLAGS += -Wl,-lm,-ldl
32 dpdk_plugin_la_LIBADD =
33
34 dpdk_plugin_la_SOURCES =                                        \
35   dpdk/main.c                                                   \
36   dpdk/buffer.c                                                 \
37   dpdk/thread.c                                                 \
38   dpdk/api/dpdk_api.c                                           \
39   dpdk/device/cli.c                                             \
40   dpdk/device/common.c                                          \
41   dpdk/device/flow.c                                            \
42   dpdk/device/dpdk_priv.h                                       \
43   dpdk/device/device.c                                          \
44   dpdk/device/format.c                                          \
45   dpdk/device/init.c                                            \
46   dpdk/device/node.c                                            \
47   dpdk/hqos/hqos.c                                              \
48   dpdk/ipsec/esp_encrypt.c                                      \
49   dpdk/ipsec/esp_decrypt.c                                      \
50   dpdk/ipsec/crypto_node.c                                      \
51   dpdk/ipsec/cli.c                                              \
52   dpdk/ipsec/ipsec.c                                            \
53   dpdk/api/dpdk_plugin.api.h
54
55 API_FILES += dpdk/api/dpdk.api
56
57 if CPU_X86_64
58 dpdk_multiversioning_files =                                    \
59         dpdk/buffer.c                                           \
60         dpdk/device/node.c                                      \
61         dpdk/device/device.c
62
63 if CC_SUPPORTS_AVX2
64 ###############################################################
65 # AVX2
66 ###############################################################
67 libdpdk_plugin_avx2_la_SOURCES = $(dpdk_multiversioning_files)
68 libdpdk_plugin_avx2_la_CFLAGS =                                 \
69         $(AM_CFLAGS)  @CPU_AVX2_FLAGS@                          \
70         -DCLIB_MULTIARCH_VARIANT=avx2
71 noinst_LTLIBRARIES += libdpdk_plugin_avx2.la
72 dpdk_plugin_la_LIBADD += libdpdk_plugin_avx2.la
73 endif
74
75 if CC_SUPPORTS_AVX512
76 ###############################################################
77 # AVX512
78 ###############################################################
79 libdpdk_plugin_avx512_la_SOURCES = $(dpdk_multiversioning_files)
80 libdpdk_plugin_avx512_la_CFLAGS =                               \
81         $(AM_CFLAGS) @CPU_AVX512_FLAGS@                         \
82         -DCLIB_MULTIARCH_VARIANT=avx512
83 noinst_LTLIBRARIES += libdpdk_plugin_avx512.la
84 dpdk_plugin_la_LIBADD += libdpdk_plugin_avx512.la
85 endif
86 endif
87
88 nobase_include_HEADERS +=                                       \
89   dpdk/device/dpdk.h                                            \
90   dpdk/api/dpdk_all_api_h.h                                     \
91   dpdk/ipsec/ipsec.h
92
93 dpdk_test_plugin_la_SOURCES =                                   \
94   dpdk/api/dpdk_test.c dpdk/api/dpdk_plugin.api.h
95
96 # vi:syntax=automake