xref: /illumos-gate/usr/src/uts/intel/ses/Makefile (revision dd4eeefd)
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
108TEST		= test
109
110#
111# Warlock targets
112#
113SCSI_FILES	= $(SCSI_OBJS:%.o=-l ../scsi/%.ll)
114
115WARLOCK_TARGETS	= $(WARLOCK_OK)
116$(CLOSED_BUILD)WARLOCK_TARGETS += warlock_with_glm
117
118warlock: $(WARLOCK_TARGETS)
119
120# XXX FIX ME: why only ses.ll?
121
122$(WARLOCK_OK): $(WLCMD_DIR)/$(MODULE).wlcmd $(WARLOCK_OUT)
123	@cd ../warlock; $(MAKE) warlock
124	@cd ../scsi; $(MAKE) warlock
125	$(WARLOCK) -c $(WLCMD_DIR)/$(MODULE).wlcmd ses.ll \
126		../warlock/scsi.ll \
127	        -l ../warlock/ddi_dki_impl.ll  \
128	        $(SCSI_FILES)
129	@ $(TOUCH) $@
130
131%.ll: $(UTSBASE)/common/io/scsi/targets/%.c
132	$(WLCC) $(CPPFLAGS) -o $@ $<
133
134warlock_with_glm: $(WLCMD_DIR)/ses_with_glm.wlcmd $(WARLOCK_OUT) glm_files
135	@cd ../warlock; $(MAKE) warlock
136	@cd ../scsi; $(MAKE) warlock
137	@cd $(CLOSED)/uts/intel/glm; $(MAKE) warlock;
138	$(WARLOCK) -c $(WLCMD_DIR)/ses_with_glm.wlcmd ses.ll \
139		$(CLOSED)/uts/intel/glm/*.ll \
140	        $(SCSI_FILES) \
141		../warlock/scsi.ll \
142		-l ../warlock/ddi_dki_impl.ll
143
144glm_files:
145	@cd $(CLOSED)/uts/intel/glm; pwd; $(MAKE) warlock
146
147warlock_ddi.files:
148	@cd ../warlock; pwd; $(MAKE) warlock
149
150
151