examples/ip_frag: fix use of ethdev internal device array
[dpdk.git] / drivers / net / pcap / meson.build
index 8b81214..910dfab 100644 (file)
@@ -1,22 +1,21 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-if meson.is_cross_build()
-       pcap_dep = cc.find_library('pcap', required: false)
-       if pcap_dep.found()
-               ext_deps += pcap_dep
-       else
-               build = false
-       endif
+pcap_dep = dependency('pcap', required: false)
+if pcap_dep.found()
+       build = true
 else
-       pcap_dep = dependency('pcap', required: false)
-       if pcap_dep.found() == true
-               ext_deps += pcap_dep
-       elif find_program('pcap-config', required: false).found() == true
-               ext_deps += cc.find_library('pcap')
+       # 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
 endif
 sources = files('rte_eth_pcap.c')
-pkgconfig_extra_libs += '-lpcap'
+ext_deps += pcap_dep