xref: /titanic_44/usr/src/uts/intel/ses/Makefile (revision 24da5b34f49324ed742a340010ed5bd3d4e06625)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21#
22# uts/intel/ses/Makefile
23#
24# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
25# Use is subject to license terms.
26#
27#ident	"%Z%%M%	%I%	%E% SMI"
28#
29#	This makefile drives the production of the ses (SCSI enclosure
30#	services) driver kernel module.
31#
32#	intel implementation architecture dependent
33#
34
35#
36#	Path to the base of the uts directory tree (usually /usr/src/uts).
37#
38UTSBASE	= ../..
39
40#
41#	Define the module and object file sets.
42#
43MODULE		= ses
44OBJECTS		= $(SES_OBJS:%=$(OBJS_DIR)/%)
45LINTS		= $(SES_OBJS:%.o=$(LINTS_DIR)/%.ln)
46ROOTMODULE	= $(ROOT_DRV_DIR)/$(MODULE)
47CONF_SRCDIR	= $(UTSBASE)/intel/io/scsi/targets
48WARLOCK_OUT     = $(SES_OBJS:%.o=%.ll)
49WARLOCK_OK      = $(MODULE).ok
50WLCMD_DIR	= $(UTSBASE)/common/io/warlock
51
52#
53#	Include common rules.
54#
55include $(UTSBASE)/intel/Makefile.intel
56
57#
58#	Define targets
59#
60ALL_TARGET	= $(BINARY) $(SRC_CONFILE)
61LINT_TARGET	= $(MODULE).lint
62INSTALL_TARGET	= $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
63CLEANFILES	+= $(WARLOCK_TARGETS)
64
65#
66# For now, disable these lint checks; maintainers should endeavor
67# to investigate and remove these for maximum lint coverage.
68# Please do not carry these forward to new Makefiles.
69#
70LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
71LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
72
73#
74#	Default build targets.
75#
76.KEEP_STATE:
77
78def:		$(DEF_DEPS)
79
80all:		$(ALL_DEPS)
81
82clean:		$(CLEAN_DEPS)
83		$(RM) $(WARLOCK_OUT) $(WARLOCK_OK)
84
85clobber:	$(CLOBBER_DEPS)
86		$(RM) $(WARLOCK_OUT) $(WARLOCK_OK)
87
88lint:		$(LINT_DEPS)
89
90modlintlib:	$(MODLINTLIB_DEPS)
91
92clean.lint:	$(CLEAN_LINT_DEPS)
93
94install:	$(INSTALL_DEPS)
95
96#
97#	Include common targets.
98#
99include $(UTSBASE)/intel/Makefile.targ
100
101
102#
103# Defines for local commands.
104#
105WARLOCK		= warlock
106WLCC		= wlcc
107TOUCH		= touch
108SCCS		= sccs
109TEST		= test
110
111#
112# Warlock targets
113#
114SCSI_FILES	= $(SCSI_OBJS:%.o=-l ../scsi/%.ll)
115
116%.wlcmd:
117	cd $(WLCMD_DIR); $(TEST) -f $@  || $(SCCS) get $@
118
119WARLOCK_TARGETS	= $(WARLOCK_OK) warlock_with_glm
120
121warlock: $(WARLOCK_TARGETS)
122
123# XXX FIX ME: why only ses.ll?
124
125$(WARLOCK_OK): $(MODULE).wlcmd $(WARLOCK_OUT)
126	@cd ../warlock; $(MAKE) warlock
127	@cd ../scsi; $(MAKE) warlock
128	$(WARLOCK) -c $(WLCMD_DIR)/$(MODULE).wlcmd ses.ll \
129		../warlock/scsi.ll \
130	        -l ../warlock/ddi_dki_impl.ll  \
131	        $(SCSI_FILES)
132	@ $(TOUCH) $@
133
134%.ll: $(UTSBASE)/common/io/scsi/targets/%.c
135	$(WLCC) $(CPPFLAGS) -o $@ $<
136
137warlock_with_glm: ses_with_glm.wlcmd $(WARLOCK_OUT) glm_files
138	@cd ../warlock; $(MAKE) warlock
139	@cd ../scsi; $(MAKE) warlock
140	@cd $(CLOSED)/uts/intel/glm; $(MAKE) warlock;
141	$(WARLOCK) -c $(WLCMD_DIR)/ses_with_glm.wlcmd ses.ll \
142		$(CLOSED)/uts/intel/glm/*.ll \
143	        $(SCSI_FILES) \
144		../warlock/scsi.ll \
145		-l ../warlock/ddi_dki_impl.ll
146	@ $(TOUCH) $@
147
148glm_files:
149	@cd $(CLOSED)/uts/intel/glm; pwd; $(MAKE) warlock
150
151warlock_ddi.files:
152	@cd ../warlock; pwd; $(MAKE) warlock
153
154
155