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 16# 17# This makefile drives the production of the Chelsio Terminator 4 10G Ethernet 18# (CXGBE) driver nexus modules on x86 systems. 19# 20 21# 22# Paths to the base of the uts directory trees 23# 24UTSBASE = ../../.. 25 26# 27# Define the module and object file sets. 28# 29MODULE = t4nex 30OBJECTS = $(CXGBE_COM_OBJS:%=$(OBJS_DIR)/%) \ 31 $(CXGBE_FW_OBJS:%=$(OBJS_DIR)/%) \ 32 $(CXGBE_NEX_OBJS:%=$(OBJS_DIR)/%) 33LINTS = $(CXGBE_COM_OBJS:%.o=$(LINTS_DIR)/%.ln) \ 34 $(CXGBE_FW_OBJS:%.o=$(LINTS_DIR)/%.ln) \ 35 $(CXGBE_NEX_OBJS:%.o=$(LINTS_DIR)/%.ln) 36ROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE) 37 38# 39# Include common rules 40# 41include $(UTSBASE)/intel/Makefile.intel 42 43# 44# Define targets 45# 46ALL_TARGET = $(BINARY) 47LINT_TARGET = $(MODULE).lint 48INSTALL_TARGET = $(BINARY) $(ROOTMODULE) 49 50CFLAGS += -g -I$(UTSBASE)/common/io/cxgbe -I$(UTSBASE)/common/io/cxgbe/common \ 51 -I$(UTSBASE)/common/io/cxgbe/t4nex -I$(UTSBASE)/common/io/cxgbe/shared \ 52 -I$(UTSBASE)/common/io/cxgbe/firmware 53CFLAGS += -xc99=%all 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# 95# Default build targets. 96# 97.KEEP_STATE: 98 99def: $(DEF_DEPS) 100 101all: $(ALL_DEPS) 102 103clean: $(CLEAN_DEPS) 104 105clobber: $(CLOBBER_DEPS) 106 107lint: $(LINT_DEPS) 108 109modlintlib: $(MODLINTLIB_DEPS) 110 111clean.lint: $(CLEAN_LINT_DEPS) 112 113install: $(INSTALL_DEPS) 114 115# 116# Include common targets. 117# 118include $(UTSBASE)/intel/Makefile.targ 119