1*1bdd6c0eSSue Gleeson# 2*1bdd6c0eSSue Gleeson# CDDL HEADER START 3*1bdd6c0eSSue Gleeson# 4*1bdd6c0eSSue Gleeson# The contents of this file are subject to the terms of the 5*1bdd6c0eSSue Gleeson# Common Development and Distribution License (the "License"). 6*1bdd6c0eSSue Gleeson# You may not use this file except in compliance with the License. 7*1bdd6c0eSSue Gleeson# 8*1bdd6c0eSSue Gleeson# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*1bdd6c0eSSue Gleeson# or http://www.opensolaris.org/os/licensing. 10*1bdd6c0eSSue Gleeson# See the License for the specific language governing permissions 11*1bdd6c0eSSue Gleeson# and limitations under the License. 12*1bdd6c0eSSue Gleeson# 13*1bdd6c0eSSue Gleeson# When distributing Covered Code, include this CDDL HEADER in each 14*1bdd6c0eSSue Gleeson# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*1bdd6c0eSSue Gleeson# If applicable, add the following below this CDDL HEADER, with the 16*1bdd6c0eSSue Gleeson# fields enclosed by brackets "[]" replaced with your own identifying 17*1bdd6c0eSSue Gleeson# information: Portions Copyright [yyyy] [name of copyright owner] 18*1bdd6c0eSSue Gleeson# 19*1bdd6c0eSSue Gleeson# CDDL HEADER END 20*1bdd6c0eSSue Gleeson# 21*1bdd6c0eSSue Gleeson# 22*1bdd6c0eSSue Gleeson# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23*1bdd6c0eSSue Gleeson# Use is subject to license terms. 24*1bdd6c0eSSue Gleeson# 25*1bdd6c0eSSue Gleeson# 26*1bdd6c0eSSue Gleeson# This makefile drives the production of the ibdm kernel module. 27*1bdd6c0eSSue Gleeson# 28*1bdd6c0eSSue Gleeson# intel architecture dependent 29*1bdd6c0eSSue Gleeson# 30*1bdd6c0eSSue Gleeson 31*1bdd6c0eSSue Gleeson# 32*1bdd6c0eSSue Gleeson# Path to the base of the uts directory tree (usually /usr/src/uts). 33*1bdd6c0eSSue Gleeson# 34*1bdd6c0eSSue GleesonUTSBASE = ../.. 35*1bdd6c0eSSue Gleeson 36*1bdd6c0eSSue Gleeson# 37*1bdd6c0eSSue Gleeson# Define the module and object file sets. 38*1bdd6c0eSSue Gleeson# 39*1bdd6c0eSSue GleesonMODULE = ibdma 40*1bdd6c0eSSue GleesonOBJECTS = $(IBDMA_OBJS:%=$(OBJS_DIR)/%) 41*1bdd6c0eSSue GleesonLINTS = $(IBDMA_OBJS:%.o=$(LINTS_DIR)/%.ln) 42*1bdd6c0eSSue GleesonROOTMODULE = $(ROOT_MISC_DIR)/$(MODULE) 43*1bdd6c0eSSue GleesonWARLOCK_OUT = $(IBDMA_OBJS:%.o=%.ll) 44*1bdd6c0eSSue GleesonWARLOCK_OK = $(MODULE).ok 45*1bdd6c0eSSue Gleeson 46*1bdd6c0eSSue Gleeson# 47*1bdd6c0eSSue Gleeson# Include common rules. 48*1bdd6c0eSSue Gleeson# 49*1bdd6c0eSSue Gleesoninclude $(UTSBASE)/intel/Makefile.intel 50*1bdd6c0eSSue Gleeson 51*1bdd6c0eSSue Gleeson# 52*1bdd6c0eSSue Gleeson# Define targets 53*1bdd6c0eSSue Gleeson# 54*1bdd6c0eSSue GleesonALL_TARGET = $(BINARY) 55*1bdd6c0eSSue GleesonLINT_TARGET = $(MODULE).lint 56*1bdd6c0eSSue GleesonINSTALL_TARGET = $(BINARY) $(ROOTMODULE) 57*1bdd6c0eSSue Gleeson 58*1bdd6c0eSSue Gleeson# 59*1bdd6c0eSSue Gleeson# Overrides. 60*1bdd6c0eSSue Gleeson# 61*1bdd6c0eSSue Gleeson 62*1bdd6c0eSSue Gleeson# 63*1bdd6c0eSSue Gleeson# lint pass one enforcement 64*1bdd6c0eSSue Gleeson# 65*1bdd6c0eSSue GleesonCFLAGS += $(CCVERBOSE) 66*1bdd6c0eSSue Gleeson 67*1bdd6c0eSSue Gleeson# 68*1bdd6c0eSSue Gleeson# depends on misc/ibtl, drv/ib and misc/ibmf 69*1bdd6c0eSSue Gleeson# 70*1bdd6c0eSSue GleesonLDFLAGS += -dy -Nmisc/ibtl -Nmisc/ibmf 71*1bdd6c0eSSue Gleeson 72*1bdd6c0eSSue Gleeson# 73*1bdd6c0eSSue Gleeson# For now, disable these lint checks; maintainers should endeavor 74*1bdd6c0eSSue Gleeson# to investigate and remove these for maximum lint coverage. 75*1bdd6c0eSSue Gleeson# Please do not carry these forward to new Makefiles. 76*1bdd6c0eSSue Gleeson# 77*1bdd6c0eSSue GleesonLINTTAGS += -erroff=E_STATIC_UNUSED 78*1bdd6c0eSSue GleesonLINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN 79*1bdd6c0eSSue Gleeson 80*1bdd6c0eSSue Gleeson# 81*1bdd6c0eSSue Gleeson# Default build targets. 82*1bdd6c0eSSue Gleeson# 83*1bdd6c0eSSue Gleeson.KEEP_STATE: 84*1bdd6c0eSSue Gleeson 85*1bdd6c0eSSue Gleesondef: $(DEF_DEPS) 86*1bdd6c0eSSue Gleeson 87*1bdd6c0eSSue Gleesonall: $(ALL_DEPS) 88*1bdd6c0eSSue Gleeson 89*1bdd6c0eSSue Gleesonclean: $(CLEAN_DEPS) 90*1bdd6c0eSSue Gleeson $(RM) $(WARLOCK_OUT) $(WARLOCK_OK) 91*1bdd6c0eSSue Gleeson 92*1bdd6c0eSSue Gleesonclobber: $(CLOBBER_DEPS) 93*1bdd6c0eSSue Gleeson $(RM) $(WARLOCK_OUT) $(WARLOCK_OK) 94*1bdd6c0eSSue Gleeson 95*1bdd6c0eSSue Gleesonlint: $(LINT_DEPS) 96*1bdd6c0eSSue Gleeson 97*1bdd6c0eSSue Gleesonmodlintlib: $(MODLINTLIB_DEPS) 98*1bdd6c0eSSue Gleeson 99*1bdd6c0eSSue Gleesonclean.lint: $(CLEAN_LINT_DEPS) 100*1bdd6c0eSSue Gleeson 101*1bdd6c0eSSue Gleesoninstall: $(INSTALL_DEPS) 102*1bdd6c0eSSue Gleeson 103*1bdd6c0eSSue Gleeson# 104*1bdd6c0eSSue Gleeson# Include common targets. 105*1bdd6c0eSSue Gleeson# 106*1bdd6c0eSSue Gleesoninclude $(UTSBASE)/intel/Makefile.targ 107*1bdd6c0eSSue Gleeson 108*1bdd6c0eSSue Gleeson 109*1bdd6c0eSSue Gleeson# 110*1bdd6c0eSSue Gleeson# Defines for local commands. 111*1bdd6c0eSSue Gleeson# 112*1bdd6c0eSSue GleesonWARLOCK = warlock 113*1bdd6c0eSSue GleesonWLCC = wlcc 114*1bdd6c0eSSue GleesonTOUCH = touch 115*1bdd6c0eSSue GleesonTEST = test 116*1bdd6c0eSSue Gleeson 117*1bdd6c0eSSue Gleesonwarlock: $(WARLOCK_OK) 118*1bdd6c0eSSue Gleeson 119*1bdd6c0eSSue Gleeson 120*1bdd6c0eSSue Gleeson$(WARLOCK_OK): $(WARLOCK_OUT) 121*1bdd6c0eSSue Gleeson $(TOUCH) $@ 122*1bdd6c0eSSue Gleeson 123*1bdd6c0eSSue Gleeson%.ll: $(UTSBASE)/common/io/ib/mgt/ibdma/%.c \ 124*1bdd6c0eSSue Gleeson $(UTSBASE)/common/sys/ib/mgt/ibdma/ibdma_impl.h \ 125*1bdd6c0eSSue Gleeson $(UTSBASE)/common/sys/ib/mgt/ibdma/ibdma.h 126*1bdd6c0eSSue Gleeson $(WLCC) $(CPPFLAGS) -DDEBUG -o $@ $< 127