e097a66ff9d90abc4dbef47b9f865c75a627f610
[dpdk.git] / drivers / net / sfc / Makefile
1 #
2 #   BSD LICENSE
3 #
4 # Copyright (c) 2016-2017 Solarflare Communications Inc.
5 # All rights reserved.
6 #
7 # This software was jointly developed between OKTET Labs (under contract
8 # for Solarflare) and Solarflare Communications, Inc.
9 #
10 # Redistribution and use in source and binary forms, with or without
11 # modification, are permitted provided that the following conditions are met:
12 #
13 # 1. Redistributions of source code must retain the above copyright notice,
14 #    this list of conditions and the following disclaimer.
15 # 2. Redistributions in binary form must reproduce the above copyright notice,
16 #    this list of conditions and the following disclaimer in the documentation
17 #    and/or other materials provided with the distribution.
18 #
19 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
26 # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
27 # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
28 # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
29 # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31 include $(RTE_SDK)/mk/rte.vars.mk
32
33 #
34 # library name
35 #
36 LIB = librte_pmd_sfc_efx.a
37
38 CFLAGS += -I$(SRCDIR)/base/
39 CFLAGS += -I$(SRCDIR)
40 CFLAGS += -O3
41 CFLAGS += $(WERROR_FLAGS)
42 # Strict-aliasing rules are violated by rte_eth_link to uint64_t casts
43 CFLAGS += -Wno-strict-aliasing
44
45 # Enable extra warnings
46 CFLAGS += -Wextra
47
48 # More warnings not enabled by above aggregators
49 CFLAGS += -Wdisabled-optimization
50
51 # Extra CFLAGS for base driver files
52 CFLAGS_BASE_DRIVER += -Wno-sign-compare
53 CFLAGS_BASE_DRIVER += -Wno-unused-parameter
54 CFLAGS_BASE_DRIVER += -Wno-unused-variable
55
56 # Compiler and version dependent flags
57 ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
58 CFLAGS += -Waggregate-return
59 CFLAGS += -Wnested-externs
60 CFLAGS_BASE_DRIVER += -Wno-empty-body
61 CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
62 else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)
63 CFLAGS += -Waggregate-return
64 CFLAGS += -Wbad-function-cast
65 CFLAGS_BASE_DRIVER += -Wno-empty-body
66 else ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
67 CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable
68 # Suppress ICC false positive warning on 'bulk' may be used before its
69 # value is set
70 CFLAGS_sfc_ef10_tx.o += -wd3656
71 endif
72 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
73 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
74
75 #
76 # List of base driver object files for which
77 # special CFLAGS above should be applied
78 #
79 BASE_DRIVER_OBJS=$(sort $(patsubst %.c,%.o,$(notdir $(wildcard $(SRCDIR)/base/*.c))))
80 $(foreach obj, $(BASE_DRIVER_OBJS), \
81   $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))
82
83 EXPORT_MAP := rte_pmd_sfc_efx_version.map
84
85 LIBABIVER := 1
86
87 #
88 # all source are stored in SRCS-y
89 #
90 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ethdev.c
91 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_kvargs.c
92 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc.c
93 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_mcdi.c
94 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_intr.c
95 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ev.c
96 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_port.c
97 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_rx.c
98 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_tx.c
99 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_tso.c
100 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_filter.c
101 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_flow.c
102 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_dp.c
103 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ef10_rx.c
104 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ef10_tx.c
105
106 VPATH += $(SRCDIR)/base
107
108 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_bootcfg.c
109 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_crc32.c
110 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_ev.c
111 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_filter.c
112 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_hash.c
113 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_intr.c
114 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_lic.c
115 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mac.c
116 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mcdi.c
117 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_mon.c
118 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_nic.c
119 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_nvram.c
120 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_phy.c
121 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_port.c
122 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_rx.c
123 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_sram.c
124 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_tx.c
125 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += efx_vpd.c
126 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += mcdi_mon.c
127 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_mac.c
128 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_mcdi.c
129 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_nic.c
130 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_nvram.c
131 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_phy.c
132 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_sram.c
133 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += siena_vpd.c
134 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_ev.c
135 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_filter.c
136 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_intr.c
137 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_mac.c
138 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_mcdi.c
139 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_nic.c
140 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_nvram.c
141 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_phy.c
142 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_rx.c
143 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_tx.c
144 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += ef10_vpd.c
145 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += hunt_nic.c
146 SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += medford_nic.c
147
148 include $(RTE_SDK)/mk/rte.lib.mk