DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: dev@dpdk.org
Cc: Bruce Richardson <bruce.richardson@intel.com>,
	stable@dpdk.org, Cristian Bidea <cristian.bidea@keysight.com>
Subject: [dpdk-dev] [PATCH] port: fix missing pcap support with meson
Date: Tue, 24 Sep 2019 13:04:14 +0100	[thread overview]
Message-ID: <20190924120414.67793-1-bruce.richardson@intel.com> (raw)
In-Reply-To: <bug-351-3@http.bugs.dpdk.org/>

The meson build was missing the define to enable pcap port support if
libpcap (development) package was found on the build platform. Rather than
duplicating the checks for libpcap found in the pcap net PMD build file, we
can move the checks to the top-level config directory and reference the
RTE_PCAP_PORT setting elsewhere in the build.

Bugzilla ID: 351
Fixes: 5b9656b157d3 ("lib: build with meson")

Cc: stable@dpdk.org
Reported-by: Cristian Bidea <cristian.bidea@keysight.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 config/meson.build           | 13 +++++++++++++
 drivers/net/pcap/meson.build | 18 +++---------------
 lib/librte_port/meson.build  |  4 ++++
 3 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/config/meson.build b/config/meson.build
index 2bafea530..f9ae632cf 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -138,6 +138,19 @@ if libbsd.found()
 	dpdk_conf.set('RTE_USE_LIBBSD', 1)
 endif
 
+# check for pcap
+pcap_dep = dependency('pcap', required: false)
+if pcap_dep.found()
+	# pcap got a pkg-config file only in 1.9.0 and before that meson uses
+	# an internal pcap-config finder, which is not compatible with
+	# cross-compilation, so try to fallback to find_library
+	pcap_dep = cc.find_library('pcap', required: false)
+endif
+if pcap_dep.found() and cc.has_header('pcap.h', dependencies: pcap_dep)
+	dpdk_conf.set('RTE_PORT_PCAP', 1)
+	dpdk_extra_ldflags += '-lpcap'
+endif
+
 # add -include rte_config to cflags
 add_project_arguments('-include', 'rte_config.h', language: 'c')
 
diff --git a/drivers/net/pcap/meson.build b/drivers/net/pcap/meson.build
index 910dfab9b..b680710aa 100644
--- a/drivers/net/pcap/meson.build
+++ b/drivers/net/pcap/meson.build
@@ -1,21 +1,9 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-pcap_dep = dependency('pcap', required: false)
-if pcap_dep.found()
-	build = true
-else
-	# pcap got a pkg-config file only in 1.9.0 and before that meson uses
-	# an internal pcap-config finder, which is not compatible with
-	# cross-compilation, so try to fallback to find_library
-	pcap_dep = cc.find_library('pcap', required: false)
-	if pcap_dep.found() and cc.has_header('pcap.h', dependencies: pcap_dep)
-		build = true
-		pkgconfig_extra_libs += '-lpcap'
-	else
-		build = false
-		reason = 'missing dependency, "libpcap"'
-	endif
+if not dpdk_conf.has('RTE_PORT_PCAP')
+	build = false
+	reason = 'missing dependency, "libpcap"'
 endif
 sources = files('rte_eth_pcap.c')
 ext_deps += pcap_dep
diff --git a/lib/librte_port/meson.build b/lib/librte_port/meson.build
index 0d11456f0..1b48127c1 100644
--- a/lib/librte_port/meson.build
+++ b/lib/librte_port/meson.build
@@ -23,6 +23,10 @@ headers = files(
 	'rte_port_sym_crypto.h')
 deps += ['ethdev', 'sched', 'ip_frag', 'cryptodev']
 
+if dpdk_conf.has('RTE_PORT_PCAP')
+	ext_deps += pcap_dep # dependency provided in config/meson.build
+endif
+
 if dpdk_conf.has('RTE_LIBRTE_KNI')
 	sources += files('rte_port_kni.c')
 	headers += files('rte_port_kni.h')
-- 
2.21.0


  reply	other threads:[~2019-09-24 12:04 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-24  8:17 [dpdk-dev] [Bug 351] When RTE_LIBRTE_PCAP_PMD is enabled RTE_PORT_PCAP is not enabled for rte_port_source_sink.c bugzilla
2019-09-24 12:04 ` Bruce Richardson [this message]
2019-09-24 15:19   ` [dpdk-dev] [PATCH] port: fix missing pcap support with meson Bruce Richardson
2019-10-27 11:57     ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
2019-09-24 14:35 ` [dpdk-dev] [Bug 351] When RTE_LIBRTE_PCAP_PMD is enabled RTE_PORT_PCAP is not enabled for rte_port_source_sink.c bugzilla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190924120414.67793-1-bruce.richardson@intel.com \
    --to=bruce.richardson@intel.com \
    --cc=cristian.bidea@keysight.com \
    --cc=dev@dpdk.org \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).