a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# CDDL HEADER START
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# The contents of this file are subject to the terms of the
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Common Development and Distribution License (the "License").
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# You may not use this file except in compliance with the License.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# or http://www.opensolaris.org/os/licensing.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# See the License for the specific language governing permissions
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# and limitations under the License.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# When distributing Covered Code, include this CDDL HEADER in each
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# If applicable, add the following below this CDDL HEADER, with the
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# fields enclosed by brackets "[]" replaced with your own identifying
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# information: Portions Copyright [yyyy] [name of copyright owner]
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# CDDL HEADER END
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
7014882c6a3672fd0e5d60200af8643ae53c5928Richard Lowe
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Use is subject to license terms.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
7014882c6a3672fd0e5d60200af8643ae53c5928Richard Lowe
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# This makefile drives the production of the dad driver kernel module.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# SPARC architecture dependent
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Path to the base of the uts directory tree (usually /usr/src/uts).
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzUTSBASE = ../..
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Define the module and object file sets.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzMODULE = dad
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzOBJECTS = $(DAD_OBJS:%=$(OBJS_DIR)/%)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzLINTS = $(DAD_OBJS:%.o=$(LINTS_DIR)/%.ln)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzCONF_SRCDIR = $(UTSBASE)/sun/io/dada/targets
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzWARLOCK_OUT = $(DAD_OBJS:%.o=%.ll)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzWARLOCK_OK = $(MODULE).ok
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzWLCMD_DIR = $(UTSBASE)/common/io/warlock
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Include common rules.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzinclude $(UTSBASE)/sparc/Makefile.sparc
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Define targets
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzALL_TARGET = $(BINARY)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzLINT_TARGET = $(MODULE).lint
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzINSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Overrides.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzCFLAGS += $(CCVERBOSE)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzLDFLAGS += -dy -Nmisc/dada -Nmisc/cmlb
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# For now, disable these lint checks; maintainers should endeavor
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# to investigate and remove these for maximum lint coverage.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Please do not carry these forward to new Makefiles.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzLINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzLINTTAGS += -erroff=E_ASSIGN_NARROW_CONV
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzLINTTAGS += -erroff=E_STATIC_UNUSED
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzLINTTAGS += -erroff=E_SUSPICIOUS_COMPARISON
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
7014882c6a3672fd0e5d60200af8643ae53c5928Richard LoweCERRWARN += -_gcc=-Wno-unused-label
7014882c6a3672fd0e5d60200af8643ae53c5928Richard LoweCERRWARN += -_gcc=-Wno-unused-variable
7014882c6a3672fd0e5d60200af8643ae53c5928Richard LoweCERRWARN += -_gcc=-Wno-unused-function
7014882c6a3672fd0e5d60200af8643ae53c5928Richard LoweCERRWARN += -_gcc=-Wno-uninitialized
7014882c6a3672fd0e5d60200af8643ae53c5928Richard LoweCERRWARN += -_gcc=-Wno-parentheses
7014882c6a3672fd0e5d60200af8643ae53c5928Richard LoweCERRWARN += -_gcc=-Wno-switch
7014882c6a3672fd0e5d60200af8643ae53c5928Richard LoweCERRWARN += -_gcc=-Wno-type-limits
7014882c6a3672fd0e5d60200af8643ae53c5928Richard Lowe
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Default build targets.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz.KEEP_STATE:
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzall: $(ALL_DEPS)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzdef: $(DEF_DEPS)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzclean: $(CLEAN_DEPS)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz $(RM) $(WARLOCK_OUT) $(WARLOCK_OK)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzclobber: $(CLOBBER_DEPS)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz $(RM) $(WARLOCK_OUT) $(WARLOCK_OK)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzlint: $(LINT_DEPS)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzmodlintlib: $(MODLINTLIB_DEPS) lint64
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzclean.lint: $(CLEAN_LINT_DEPS)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzinstall: $(INSTALL_DEPS)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Include common targets.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzinclude $(UTSBASE)/sparc/Makefile.targ
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Defines for local commands.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzWARLOCK = warlock
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzWLCC = wlcc
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzTOUCH = touch
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzTEST = test
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Warlock targets
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz#
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# Note that in warlock_with_{esp,isp} it is important to load sd.ll
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# before {isp,esp}.ll; the reason is that both have _init/_info/_fini
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# and warlock can only handle one extern function by a given name;
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz# any loaded after the first are ignored.
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzDADA_FILES = $(DADA_OBJS:%.o=-l $(UTSBASE)/sparc/dada/%.ll)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzCMLB_FILES = $(CMLB_OBJS:%.o=-l $(UTSBASE)/sparc/cmlb/%.ll)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzwarlock: warlock_alone
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzwarlock_alone: $(WARLOCK_OK)
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzdada_files:
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz @cd $(UTSBASE)/sparc/dada; pwd; $(MAKE) warlock
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzcmlb_files:
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz @cd $(UTSBASE)/sparc/cmlb; pwd; $(MAKE) warlock
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
bf56214c0556fa6864189c826d39dbe156bb22a0stevel$(WARLOCK_OK): $(WLCMD_DIR)/dad.wlcmd $(WARLOCK_OUT) dada_files \
bf56214c0556fa6864189c826d39dbe156bb22a0stevel warlock_ddi.files cmlb_files
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz $(WARLOCK) -c $(WLCMD_DIR)/dad.wlcmd $(WARLOCK_OUT) -l $(DADA_FILES) \
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz -l $(CMLB_FILES) \
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz -l $(UTSBASE)/sparc/warlock/ddi_dki_impl.ll
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz $(TOUCH) $@
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz%.ll: $(UTSBASE)/sun/io/dada/targets/%.c
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz $(WLCC) $(CPPFLAGS) -o $@ $<
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutzwarlock_ddi.files:
a4aa671e336d5c717aff15808ab91a6bee5e6e41arutz @cd $(UTSBASE)/sparc/warlock; pwd; $(MAKE) warlock