xref: /illumos-gate/usr/src/uts/intel/cxgbe/t4nex/Makefile (revision 30165b7f6753bc3d48c52319bed7ec7b3ea36b3c)
1#
2# This file and its contents are supplied under the terms of the
3# Common Development and Distribution License ("CDDL"), version 1.0.
4# You may only use this file in accordance with the terms of version
5# 1.0 of the CDDL.
6#
7# A full copy of the text of the CDDL should have accompanied this
8# source.  A copy of the CDDL is also available via the Internet at
9# http://www.illumos.org/license/CDDL.
10#
11
12#
13# Copyright (c) 2013 by Chelsio Communications, Inc. All rights reserved.
14#
15# Copyright (c) 2018, Joyent, Inc.
16
17#
18# This makefile drives the production of the Chelsio Terminator 4 10G Ethernet
19# (CXGBE) driver nexus modules on x86 systems.
20#
21
22#
23# Paths to the base of the uts directory trees
24#
25UTSBASE = ../../..
26
27#
28# Define the module and object file sets.
29#
30MODULE		= t4nex
31OBJECTS		= $(CXGBE_COM_OBJS:%=$(OBJS_DIR)/%) \
32		  $(CXGBE_FW_OBJS:%=$(OBJS_DIR)/%) \
33		  $(CXGBE_NEX_OBJS:%=$(OBJS_DIR)/%)
34LINTS		= $(CXGBE_COM_OBJS:%.o=$(LINTS_DIR)/%.ln) \
35		  $(CXGBE_FW_OBJS:%.o=$(LINTS_DIR)/%.ln) \
36		  $(CXGBE_NEX_OBJS:%.o=$(LINTS_DIR)/%.ln)
37ROOTMODULE	= $(ROOT_DRV_DIR)/$(MODULE)
38
39#
40# Include common rules
41#
42include $(UTSBASE)/intel/Makefile.intel
43
44#
45# Define targets
46#
47ALL_TARGET = $(BINARY)
48LINT_TARGET = $(MODULE).lint
49INSTALL_TARGET = $(BINARY) $(ROOTMODULE)
50
51CFLAGS += -g -I$(UTSBASE)/common/io/cxgbe -I$(UTSBASE)/common/io/cxgbe/common \
52	-I$(UTSBASE)/common/io/cxgbe/t4nex -I$(UTSBASE)/common/io/cxgbe/shared \
53	-I$(UTSBASE)/common/io/cxgbe/firmware
54
55#
56# Driver depends
57#
58LDFLAGS += -dy -N misc/mac -N drv/ip
59
60#
61# Lint
62#
63LINTFLAGS += -I$(UTSBASE)/common/io/cxgbe -I$(UTSBASE)/common/io/cxgbe/common \
64	-I$(UTSBASE)/common/io/cxgbe/t4nex -I$(UTSBASE)/common/io/cxgbe/shared \
65	-I$(UTSBASE)/common/io/cxgbe/firmware
66LINTFLAGS += -Xc99=%all
67
68#
69# A lot of these come from the fact that there are static inlines and
70# that this driver leverages various C99 and some GNU C extensions.
71#
72LINTTAGS += -erroff=E_STATIC_UNUSED
73LINTTAGS += -erroff=E_FUNC_ARG_UNUSED
74LINTTAGS += -erroff=E_ZERO_OR_NEGATIVE_SUBSCRIPT
75LINTTAGS += -erroff=E_ZERO_SIZED_STRUCT_UNION
76LINTTAGS += -erroff=E_ANONYMOUS_UNION_DECL
77LINTTAGS += -erroff=E_CONSTANT_CONDITION
78
79#
80# These have been manually verified at the moment. When updating this
81# driver, please manually check the following lint warnings. Note some
82# of these are due to limitations in Sun Studio.
83#
84LINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN
85LINTTAGS += -erroff=E_ENUM_VAL_OVERFLOWS_INT_MAX
86LINTTAGS += -erroff=E_FUNC_NO_RET_VAL
87LINTTAGS += -erroff=E_NOP_IF_STMT
88LINTTAGS += -erroff=E_FUNC_SET_NOT_USED
89LINTTAGS += -erroff=E_FUNC_RET_ALWAYS_IGNOR2
90LINTTAGS += -erroff=E_FUNC_RET_MAYBE_IGNORED2
91LINTTAGS += -erroff=E_CASE_FALLTHRU
92LINTTAGS += -erroff=E_ASSIGN_NARROW_CONV
93
94# needs work
95SMATCH=off
96
97#
98# Default build targets.
99#
100.KEEP_STATE:
101
102def:		$(DEF_DEPS)
103
104all:		$(ALL_DEPS)
105
106clean:		$(CLEAN_DEPS)
107
108clobber:	$(CLOBBER_DEPS)
109
110lint:		$(LINT_DEPS)
111
112modlintlib:	$(MODLINTLIB_DEPS)
113
114clean.lint:	$(CLEAN_LINT_DEPS)
115
116install:	$(INSTALL_DEPS)
117
118#
119# Include common targets.
120#
121include $(UTSBASE)/intel/Makefile.targ
122