Makefile revision bb25c06cca41ca78e5fb87fbb8e81d55beb18c95
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# CDDL HEADER START
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# The contents of this file are subject to the terms of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Common Development and Distribution License (the "License").
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# You may not use this file except in compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# or http://www.opensolaris.org/os/licensing.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# See the License for the specific language governing permissions
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# When distributing Covered Code, include this CDDL HEADER in each
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# If applicable, add the following below this CDDL HEADER, with the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# fields enclosed by brackets "[]" replaced with your own identifying
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# information: Portions Copyright [yyyy] [name of copyright owner]
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# CDDL HEADER END
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Use is subject to license terms.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#ident "%Z%%M% %I% %E% SMI"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# uts/sun4v/vsw/Makefile
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# This makefile drives the production of the vsw driver module.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# sun4v implementation architecture dependent
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Path to the base of the uts directory tree (usually /usr/src/uts).
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterUTSBASE = ../..
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Define the module and object file sets.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterMODULE = vsw
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterOBJECTS = $(VSW_OBJS:%=$(OBJS_DIR)/%)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLINTS = $(VSW_OBJS:%.o=$(LINTS_DIR)/%.ln)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterROOTMODULE = $(ROOT_PSM_DRV_DIR)/$(MODULE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Include common rules.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterinclude $(UTSBASE)/sun4v/Makefile.sun4v
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Override defaults to build a unique, local modstubs.o.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterMODSTUBS_DIR = $(OBJS_DIR)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterCLEANFILES += $(MODSTUBS_O)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Define targets
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterALL_TARGET = $(BINARY)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLINT_TARGET = $(MODULE).lint
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterINSTALL_TARGET = $(BINARY) $(ROOTMODULE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# lint pass one enforcement
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterCFLAGS += $(CCVERBOSE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Module dependencies
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLDFLAGS += -dy -Nmisc/ldc -Nmisc/mac -Nmisc/platsvc
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Re-enable C99 compilation to use stack allocation of variable-sized arrays.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# According to usr/src/uts/Makefile.uts, C99 is disabled until a problem seen
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# on x86 machines can be fully diagnosed; presumably a sun4v (i.e., SPARC)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# module should be "safe". Furthermore, only the variable-sized array
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# extension is needed/used.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# C99 mode also gives us macros such as __func__
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterC99MODE = $(99_ENABLE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# For now, disable these lint checks; maintainers should endeavor
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# to investigate and remove these for maximum lint coverage.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Please do not carry these forward to new Makefiles.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLINTTAGS += -erroff=E_PTRDIFF_OVERFLOW
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLINTTAGS += -erroff=E_ASSIGN_NARROW_CONV
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLINTTAGS += -erroff=E_STATIC_UNUSED
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterLINTTAGS += -erroff=E_SUSPICIOUS_COMPARISON
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Default build targets.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
.KEEP_STATE:
def: $(DEF_DEPS)
all: $(ALL_DEPS)
clean: $(CLEAN_DEPS)
clobber: $(CLOBBER_DEPS)
lint: $(LINT_DEPS)
modlintlib: $(MODLINTLIB_DEPS)
clean.lint: $(CLEAN_LINT_DEPS)
install: $(INSTALL_DEPS)
#
# Include common targets.
#
include $(UTSBASE)/$(PLATFORM)/Makefile.targ