a67d2c414677a2a830d09cafaab1817dcc9a1bc5vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# CDDL HEADER START
a67d2c414677a2a830d09cafaab1817dcc9a1bc5vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# The contents of this file are subject to the terms of the
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# Common Development and Distribution License (the "License").
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# You may not use this file except in compliance with the License.
e64031e20c39650a7bc902a3e1aba613b9415deevboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# or http://www.opensolaris.org/os/licensing.
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# See the License for the specific language governing permissions
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# and limitations under the License.
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# When distributing Covered Code, include this CDDL HEADER in each
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# If applicable, add the following below this CDDL HEADER, with the
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# fields enclosed by brackets "[]" replaced with your own identifying
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# information: Portions Copyright [yyyy] [name of copyright owner]
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# CDDL HEADER END
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
7f19e3bb0f6a1b698a37f163e77b7f8084b7f7d5vboxsync# uts/sparc/sd/Makefile
7f19e3bb0f6a1b698a37f163e77b7f8084b7f7d5vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# Use is subject to license terms.
d5afba4eec453049d8164029471d2d1df0b394e0vboxsync# Copyright (c) 2011 Bayard G. Bell. All rights reserved.
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
23179f1443b03947d85eccc81cbc6b5153a4abf3vboxsync# This makefile drives the production of the sd driver kernel module.
07bf154df97af02974bb89d4f1ad36afa2b45443vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# sparc architecture dependent
9a5209d6dd9af6e9b0416e12d192e92a7a6cdb48vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
80def5623c7adf0483e142b2ffc1cb9812a9a917vboxsync#
788efbc10d2ab4252b5e73ca20f82d63e19fe578vboxsync# Path to the base of the uts directory tree (usually /usr/src/uts).
7f19e3bb0f6a1b698a37f163e77b7f8084b7f7d5vboxsync#
788efbc10d2ab4252b5e73ca20f82d63e19fe578vboxsyncUTSBASE = ../..
7f19e3bb0f6a1b698a37f163e77b7f8084b7f7d5vboxsync
788efbc10d2ab4252b5e73ca20f82d63e19fe578vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# Define the module and object file sets.
7f19e3bb0f6a1b698a37f163e77b7f8084b7f7d5vboxsync#
7f19e3bb0f6a1b698a37f163e77b7f8084b7f7d5vboxsyncMODULE = sd
788efbc10d2ab4252b5e73ca20f82d63e19fe578vboxsyncOBJECTS = $(SD_OBJS:%=$(OBJS_DIR)/%)
7f19e3bb0f6a1b698a37f163e77b7f8084b7f7d5vboxsyncLINTS = $(SD_OBJS:%.o=$(LINTS_DIR)/%.ln)
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE)
2c6282ca450ac89f08d14dd5b61082a3e5a42770vboxsyncCONF_SRCDIR = $(UTSBASE)/sun/io/scsi/targets
2c6282ca450ac89f08d14dd5b61082a3e5a42770vboxsyncWARLOCK_OUT = $(SD_OBJS:%.o=%.ll)
2c6282ca450ac89f08d14dd5b61082a3e5a42770vboxsyncWARLOCK_OK = $(MODULE).ok
2c6282ca450ac89f08d14dd5b61082a3e5a42770vboxsyncWLCMD_DIR = $(UTSBASE)/common/io/warlock
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# Include common rules.
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncinclude $(UTSBASE)/sparc/Makefile.sparc
ea5fccddae90a8c2dd31216288ab6d01a0778d07vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# Define targets
ea5fccddae90a8c2dd31216288ab6d01a0778d07vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncALL_TARGET = $(BINARY) $(SRC_CONFILE)
d5afba4eec453049d8164029471d2d1df0b394e0vboxsyncLINT_TARGET = $(MODULE).lint
ea5fccddae90a8c2dd31216288ab6d01a0778d07vboxsyncINSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
d5afba4eec453049d8164029471d2d1df0b394e0vboxsync
7f19e3bb0f6a1b698a37f163e77b7f8084b7f7d5vboxsync#
b5e852fe286f938722f7d8eb6ab96cced98237e4vboxsync# lint pass one enforcement
7f19e3bb0f6a1b698a37f163e77b7f8084b7f7d5vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncCFLAGS += $(CCVERBOSE)
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# Define dependencies on scsi and cmlb
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncLDFLAGS += -dy -N misc/scsi -N misc/cmlb
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsync#
ea5fccddae90a8c2dd31216288ab6d01a0778d07vboxsync# For now, disable these lint checks; maintainers should endeavor
ea5fccddae90a8c2dd31216288ab6d01a0778d07vboxsync# to investigate and remove these for maximum lint coverage.
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# Please do not carry these forward to new Makefiles.
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncLINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncLINTTAGS += -erroff=E_ASSIGN_NARROW_CONV
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncLINTTAGS += -erroff=E_STATIC_UNUSED
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncLINTTAGS += -erroff=E_SUSPICIOUS_COMPARISON
57b49c1557a310ee615bc0ee79dd2a2e92319a1bvboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncCERRWARN += -_gcc=-Wno-unused-variable
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncCERRWARN += -_gcc=-Wno-unused-function
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncCERRWARN += -_gcc=-Wno-unused-label
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsyncCERRWARN += -_gcc=-Wno-parentheses
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncCERRWARN += -_gcc=-Wno-type-limits
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncCERRWARN += -_gcc=-Wno-uninitialized
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
57b49c1557a310ee615bc0ee79dd2a2e92319a1bvboxsync#
fb4b0f4ca593a27c7fbec391aa8fce062a75b9c7vboxsync# Default build targets.
fb4b0f4ca593a27c7fbec391aa8fce062a75b9c7vboxsync#
d673f6fddc07fb2f4fb54552598a56ca52d5f06fvboxsync.KEEP_STATE:
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsyncall: $(ALL_DEPS)
fb4b0f4ca593a27c7fbec391aa8fce062a75b9c7vboxsync
fb4b0f4ca593a27c7fbec391aa8fce062a75b9c7vboxsyncdef: $(DEF_DEPS)
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync
fb4b0f4ca593a27c7fbec391aa8fce062a75b9c7vboxsyncclean: $(CLEAN_DEPS)
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync $(RM) $(WARLOCK_OUT) $(WARLOCK_OK)
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncclobber: $(CLOBBER_DEPS)
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync $(RM) $(WARLOCK_OUT) $(WARLOCK_OK)
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsynclint: $(LINT_DEPS)
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncmodlintlib: $(MODLINTLIB_DEPS)
a97f26ece82a85f69a131fb74b057774c85db9c8vboxsync
c829b606c5535f37e00ffee381cca0815a57f319vboxsyncclean.lint: $(CLEAN_LINT_DEPS)
c829b606c5535f37e00ffee381cca0815a57f319vboxsync
c829b606c5535f37e00ffee381cca0815a57f319vboxsyncinstall: $(INSTALL_DEPS)
c829b606c5535f37e00ffee381cca0815a57f319vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# Include common targets.
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncinclude $(UTSBASE)/sparc/Makefile.targ
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# Defines for local commands.
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsyncWARLOCK = warlock
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsyncWLCC = wlcc
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsyncTOUCH = touch
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsyncTEST = test
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync# Warlock targets
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync#
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsync# Note that in warlock_with_{esp,isp} it is important to load sd.ll
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync# before {isp,esp}.ll; the reason is that both have _init/_info/_fini
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsync# and warlock can only handle one extern function by a given name;
1b1dbe76c7e01191389b65cc293ebc200b0f0c6bvboxsync# any loaded after the first are ignored.
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncSCSI_FILES = $(SCSI_OBJS:%.o=-l ../scsi/%.ll)
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsyncCMLB_FILES = $(CMLB_OBJS:%.o=-l ../cmlb/%.ll)
697b8309e21216b853769cc2bca8b8138ce6a6d6vboxsync
697b8309e21216b853769cc2bca8b8138ce6a6d6vboxsyncWARLOCK_TARGETS = warlock_alone warlock_with_esp warlock_with_fas
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsyncwarlock: $(WARLOCK_TARGETS)
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsyncwarlock_alone: $(WARLOCK_OK)
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync$(WARLOCK_OK): $(WLCMD_DIR)/sd.wlcmd $(WARLOCK_OUT) scsi_files \
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync warlock_ddi.files cmlb_files
b59bd0ad4449e3e8a9a524775d8f9c4245baf2e8vboxsync $(WARLOCK) -c $(WLCMD_DIR)/sd.wlcmd $(WARLOCK_OUT) $(SCSI_FILES) \
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync $(CMLB_FILES) \
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync -l ../warlock/ddi_dki_impl.ll
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync $(TOUCH) $@
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
57b49c1557a310ee615bc0ee79dd2a2e92319a1bvboxsync%.ll: $(UTSBASE)/common/io/scsi/targets/%.c
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync $(WLCC) $(CPPFLAGS) -DDEBUG -o $@ $<
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncwarlock_with_esp: $(WLCMD_DIR)/sd_with_esp.wlcmd $(WARLOCK_OUT) scsi_files \
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync esp_files warlock_ddi.files cmlb_files
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync $(WARLOCK) -c $(WLCMD_DIR)/sd_with_esp.wlcmd \
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync $(WARLOCK_OUT) ../esp/esp $(SCSI_FILES) $(CMLB_FILES) \
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync -l ../warlock/ddi_dki_impl.ll
57b49c1557a310ee615bc0ee79dd2a2e92319a1bvboxsync
41fe74bfddeea77c30fd06f43d3efee4dc82fcccvboxsyncwarlock_with_fas: $(WLCMD_DIR)/sd_with_fas.wlcmd $(WARLOCK_OUT) scsi_files \
41fe74bfddeea77c30fd06f43d3efee4dc82fcccvboxsync fas_files warlock_ddi.files cmlb_files
d673f6fddc07fb2f4fb54552598a56ca52d5f06fvboxsync $(WARLOCK) -c $(WLCMD_DIR)/sd_with_fas.wlcmd \
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync $(WARLOCK_OUT) ../fas/fas \
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync ../fas/fas_callbacks \
41fe74bfddeea77c30fd06f43d3efee4dc82fcccvboxsync $(SCSI_FILES) $(CMLB_FILES) \
41fe74bfddeea77c30fd06f43d3efee4dc82fcccvboxsync -l ../warlock/ddi_dki_impl.ll
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync
41fe74bfddeea77c30fd06f43d3efee4dc82fcccvboxsynccmlb_files:
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsync @cd ../cmlb; pwd; $(MAKE) warlock
8651f4b9ac6fb6d85c9a231bfba6fee8653727cbvboxsync
a18c323c2fdfe8f00c8f927dc13561e0186be513vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncscsi_files:
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync @cd ../scsi; pwd; $(MAKE) warlock
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
41fe74bfddeea77c30fd06f43d3efee4dc82fcccvboxsyncesp_files:
41fe74bfddeea77c30fd06f43d3efee4dc82fcccvboxsync @cd ../esp; pwd; $(MAKE) warlock
41fe74bfddeea77c30fd06f43d3efee4dc82fcccvboxsync
41fe74bfddeea77c30fd06f43d3efee4dc82fcccvboxsyncfas_files:
4b34a2a15d6421e86cd192dfe63b817d1dab38a1vboxsync @cd ../fas; pwd; $(MAKE) warlock
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsyncwarlock_ddi.files:
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync @cd ../warlock; pwd; $(MAKE) warlock
c7f70672ae8d9989596a3cf0395cae3f64b5ac01vboxsync