net/sfc: support meson build
authorIvan Malov <ivan.malov@oktetlabs.ru>
Sat, 3 Feb 2018 13:46:34 +0000 (13:46 +0000)
committerBruce Richardson <bruce.richardson@intel.com>
Mon, 5 Feb 2018 13:51:38 +0000 (14:51 +0100)
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
drivers/net/meson.build
drivers/net/sfc/base/meson.build [new file with mode: 0644]
drivers/net/sfc/meson.build [new file with mode: 0644]

index f19a586..704cbe3 100644 (file)
@@ -4,7 +4,7 @@
 drivers = ['af_packet', 'bonding',
        'e1000', 'fm10k', 'i40e', 'ixgbe',
        'null', 'octeontx', 'pcap', 'ring',
-       'thunderx']
+       'sfc', 'thunderx']
 std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc
 std_deps += ['bus_pci']         # very many PMDs depend on PCI, so make std
 std_deps += ['bus_vdev']        # same with vdev bus
diff --git a/drivers/net/sfc/base/meson.build b/drivers/net/sfc/base/meson.build
new file mode 100644 (file)
index 0000000..f1e4973
--- /dev/null
@@ -0,0 +1,74 @@
+# Copyright (c) 2016-2018 Solarflare Communications Inc.
+# All rights reserved.
+#
+# This software was jointly developed between OKTET Labs (under contract
+# for Solarflare) and Solarflare Communications, Inc.
+
+sources = [
+       'efx_bootcfg.c',
+       'efx_crc32.c',
+       'efx_ev.c',
+       'efx_filter.c',
+       'efx_hash.c',
+       'efx_intr.c',
+       'efx_lic.c',
+       'efx_mac.c',
+       'efx_mcdi.c',
+       'efx_mon.c',
+       'efx_nic.c',
+       'efx_nvram.c',
+       'efx_phy.c',
+       'efx_port.c',
+       'efx_rx.c',
+       'efx_sram.c',
+       'efx_tunnel.c',
+       'efx_tx.c',
+       'efx_vpd.c',
+       'mcdi_mon.c',
+       'siena_mac.c',
+       'siena_mcdi.c',
+       'siena_nic.c',
+       'siena_nvram.c',
+       'siena_phy.c',
+       'siena_sram.c',
+       'siena_vpd.c',
+       'ef10_ev.c',
+       'ef10_filter.c',
+       'ef10_intr.c',
+       'ef10_mac.c',
+       'ef10_mcdi.c',
+       'ef10_nic.c',
+       'ef10_nvram.c',
+       'ef10_phy.c',
+       'ef10_rx.c',
+       'ef10_tx.c',
+       'ef10_vpd.c',
+       'hunt_nic.c',
+       'medford_nic.c'
+]
+
+extra_flags = [
+       '-Wno-sign-compare',
+       '-Wno-unused-parameter',
+       '-Wno-unused-variable',
+       '-Wno-empty-body',
+       '-Wno-unused-but-set-variable'
+]
+
+c_args = cflags
+foreach flag: extra_flags
+       if cc.has_argument(flag)
+               c_args += flag
+       endif
+endforeach
+
+if build
+       base_lib = static_library('sfc_base', sources,
+               include_directories: includes,
+               dependencies: static_rte_eal,
+               c_args: c_args)
+
+       base_objs = base_lib.extract_all_objects()
+else
+       base_objs = []
+endif
diff --git a/drivers/net/sfc/meson.build b/drivers/net/sfc/meson.build
new file mode 100644 (file)
index 0000000..b60a8f5
--- /dev/null
@@ -0,0 +1,64 @@
+# SPDX-License-Identifier: BSD-3-Clause
+#
+# Copyright (c) 2016-2018 Solarflare Communications Inc.
+# All rights reserved.
+#
+# This software was jointly developed between OKTET Labs (under contract
+# for Solarflare) and Solarflare Communications, Inc.
+
+if arch_subdir != 'x86'
+       build = false
+endif
+
+allow_experimental_apis = true
+
+extra_flags = []
+
+# Strict-aliasing rules are violated by rte_eth_link to uint64_t casts
+extra_flags += '-Wno-strict-aliasing'
+
+# Enable more warnings
+extra_flags += [
+       '-Wextra',
+       '-Wdisabled-optimization'
+]
+
+# Compiler and version dependent flags
+extra_flags += [
+       '-Waggregate-return',
+       '-Wnested-externs',
+       '-Wbad-function-cast'
+]
+
+# Suppress ICC false positive warning on 'bulk' may be used before its
+# value is set
+extra_flags += '-wd3656'
+
+foreach flag: extra_flags
+       if cc.has_argument(flag)
+               cflags += flag
+       endif
+endforeach
+
+subdir('base')
+objs = [base_objs]
+
+sources = files(
+       'sfc_ethdev.c',
+       'sfc_kvargs.c',
+       'sfc.c',
+       'sfc_mcdi.c',
+       'sfc_intr.c',
+       'sfc_ev.c',
+       'sfc_port.c',
+       'sfc_rx.c',
+       'sfc_tx.c',
+       'sfc_tso.c',
+       'sfc_filter.c',
+       'sfc_flow.c',
+       'sfc_dp.c',
+       'sfc_ef10_rx.c',
+       'sfc_ef10_tx.c'
+)
+
+includes += include_directories('base')