build: cleanup libpcap dependent components
The RTE_PORT_PCAP variable is used to signal libpcap availability, though its name seems to refer to pcap support in the port library. Prefer a generic name and add explicit link dependencies where needed. Fixes: 7a944656b33f ("test/pcapng: test pcapng library") Fixes: 2eccf6afbea9 ("bpf: add function to convert classic BPF to DPDK BPF") Fixes: cbb44143be74 ("app/dumpcap: add new packet capture application") Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
parent
f01ca13fca
commit
d6024c0a67
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2019 Microsoft Corporation
|
||||
|
||||
if not dpdk_conf.has('RTE_PORT_PCAP')
|
||||
if not dpdk_conf.has('RTE_HAS_LIBPCAP')
|
||||
build = false
|
||||
reason = 'missing dependency, "libpcap"'
|
||||
endif
|
||||
@ -12,5 +12,6 @@ if is_windows
|
||||
subdir_done()
|
||||
endif
|
||||
|
||||
ext_deps += pcap_dep
|
||||
sources = files('main.c')
|
||||
deps += ['ethdev', 'pdump', 'pcapng', 'bpf']
|
||||
|
@ -411,7 +411,8 @@ if dpdk_conf.has('RTE_NET_RING')
|
||||
fast_tests += [['pdump_autotest', true]]
|
||||
endif
|
||||
|
||||
if dpdk_conf.has('RTE_PORT_PCAP')
|
||||
if dpdk_conf.has('RTE_HAS_LIBPCAP')
|
||||
ext_deps += pcap_dep
|
||||
test_sources += 'test_pcapng.c'
|
||||
endif
|
||||
|
||||
@ -464,7 +465,7 @@ endif
|
||||
dpdk_test = executable('dpdk-test',
|
||||
test_sources,
|
||||
link_whole: link_libs,
|
||||
dependencies: test_dep_objs,
|
||||
dependencies: test_dep_objs + ext_deps,
|
||||
c_args: cflags,
|
||||
install_rpath: join_paths(get_option('prefix'),
|
||||
driver_install_path),
|
||||
|
@ -3250,7 +3250,7 @@ test_bpf(void)
|
||||
|
||||
REGISTER_TEST_COMMAND(bpf_autotest, test_bpf);
|
||||
|
||||
#ifdef RTE_PORT_PCAP
|
||||
#ifdef RTE_HAS_LIBPCAP
|
||||
#include <pcap/pcap.h>
|
||||
|
||||
static void
|
||||
@ -3447,4 +3447,4 @@ test_bpf_convert(void)
|
||||
}
|
||||
|
||||
REGISTER_TEST_COMMAND(bpf_convert_autotest, test_bpf_convert);
|
||||
#endif /* RTE_PORT_PCAP */
|
||||
#endif /* RTE_HAS_LIBPCAP */
|
||||
|
@ -226,7 +226,7 @@ if not pcap_dep.found()
|
||||
pcap_dep = cc.find_library(pcap_lib, required: false)
|
||||
endif
|
||||
if pcap_dep.found() and cc.has_header('pcap.h', dependencies: pcap_dep)
|
||||
dpdk_conf.set('RTE_PORT_PCAP', 1)
|
||||
dpdk_conf.set('RTE_HAS_LIBPCAP', 1)
|
||||
dpdk_extra_ldflags += '-l@0@'.format(pcap_lib)
|
||||
endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
if not dpdk_conf.has('RTE_PORT_PCAP')
|
||||
if not dpdk_conf.has('RTE_HAS_LIBPCAP')
|
||||
build = false
|
||||
reason = 'missing dependency, "libpcap"'
|
||||
endif
|
||||
|
@ -27,7 +27,7 @@ rte_bpf_elf_load(const struct rte_bpf_prm *prm, const char *fname,
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef RTE_PORT_PCAP
|
||||
#ifndef RTE_HAS_LIBPCAP
|
||||
struct rte_bpf_prm *
|
||||
rte_bpf_convert(const struct bpf_program *prog)
|
||||
{
|
||||
|
@ -33,12 +33,12 @@ if dep.found()
|
||||
sources += files('bpf_load_elf.c')
|
||||
ext_deps += dep
|
||||
else
|
||||
warning('libelf is missing, rte_bpf_elf_load API will be disabled')
|
||||
warning('libelf is missing, rte_bpf_elf_load API will be disabled')
|
||||
endif
|
||||
|
||||
if dpdk_conf.has('RTE_PORT_PCAP')
|
||||
if dpdk_conf.has('RTE_HAS_LIBPCAP')
|
||||
sources += files('bpf_convert.c')
|
||||
ext_deps += pcap_dep
|
||||
else
|
||||
warning('RTE_PORT_PCAP is missing, rte_bpf_convert API will be disabled')
|
||||
warning('libpcap is missing, rte_bpf_convert API will be disabled')
|
||||
endif
|
||||
|
@ -41,7 +41,8 @@ headers = files(
|
||||
)
|
||||
deps += ['ethdev', 'sched', 'ip_frag', 'cryptodev', 'eventdev']
|
||||
|
||||
if dpdk_conf.has('RTE_PORT_PCAP')
|
||||
if dpdk_conf.has('RTE_HAS_LIBPCAP')
|
||||
dpdk_conf.set('RTE_PORT_PCAP', 1)
|
||||
ext_deps += pcap_dep # dependency provided in config/meson.build
|
||||
endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user