From patchwork Tue Sep 24 12:04:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 59662 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3BD671BE8E; Tue, 24 Sep 2019 14:04:30 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 1C7DD1BE8B; Tue, 24 Sep 2019 14:04:28 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Sep 2019 05:04:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,544,1559545200"; d="scan'208";a="188448742" Received: from silpixa00399126.ir.intel.com (HELO silpixa00399126.ger.corp.intel.com) ([10.237.223.2]) by fmsmga008.fm.intel.com with ESMTP; 24 Sep 2019 05:04:26 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Bruce Richardson , stable@dpdk.org, Cristian Bidea Date: Tue, 24 Sep 2019 13:04:14 +0100 Message-Id: <20190924120414.67793-1-bruce.richardson@intel.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: References: MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH] port: fix missing pcap support with meson X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Signed-off-by: Bruce Richardson Tested-by: Cristian Bidea --- 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')