843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# CDDL HEADER START
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# The contents of this file are subject to the terms of the
843e19887f64dde75055cf8842fc4db2171eff45johnlev# Common Development and Distribution License (the "License").
843e19887f64dde75055cf8842fc4db2171eff45johnlev# You may not use this file except in compliance with the License.
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
843e19887f64dde75055cf8842fc4db2171eff45johnlev# or http://www.opensolaris.org/os/licensing.
843e19887f64dde75055cf8842fc4db2171eff45johnlev# See the License for the specific language governing permissions
843e19887f64dde75055cf8842fc4db2171eff45johnlev# and limitations under the License.
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# When distributing Covered Code, include this CDDL HEADER in each
843e19887f64dde75055cf8842fc4db2171eff45johnlev# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
843e19887f64dde75055cf8842fc4db2171eff45johnlev# If applicable, add the following below this CDDL HEADER, with the
843e19887f64dde75055cf8842fc4db2171eff45johnlev# fields enclosed by brackets "[]" replaced with your own identifying
843e19887f64dde75055cf8842fc4db2171eff45johnlev# information: Portions Copyright [yyyy] [name of copyright owner]
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# CDDL HEADER END
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
843e19887f64dde75055cf8842fc4db2171eff45johnlev# Use is subject to license terms.
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
a0900badd8eb6bcca99411c8906b483e84f2da91Garrett D'Amore# Copyright 2013 Nexenta Systems, Inc. All rights reserved.
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# This makefile drives the production of all implementation architecture
843e19887f64dde75055cf8842fc4db2171eff45johnlev# dependent modules for the i86xpv architecture.
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevUTSBASE = ..
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevinclude Makefile.i86xpv
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# The following are x86 specific (rather than i86pc) specific modules
843e19887f64dde75055cf8842fc4db2171eff45johnlev# which are required for the i86pc kernel to completely lint. They are
843e19887f64dde75055cf8842fc4db2171eff45johnlev# not involved in the build in any other way. In order to minimize
843e19887f64dde75055cf8842fc4db2171eff45johnlev# build time, it is assumed that they are up to date.
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlevINTEL_LIB_DIR = $(UTSBASE)/intel/lint-libs/$(OBJS_DIR)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevINTEL_LINTS = genunix
843e19887f64dde75055cf8842fc4db2171eff45johnlev
b6805bf78d2bbbeeaea8909a05623587b42d58b3Gordon RossLINT_LIBS = \
843e19887f64dde75055cf8842fc4db2171eff45johnlev $(GENUNIX_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
843e19887f64dde75055cf8842fc4db2171eff45johnlev $(PARALLEL_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
843e19887f64dde75055cf8842fc4db2171eff45johnlev $(INTEL_LINTS:%=$(INTEL_LIB_DIR)/llib-l%.ln)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
b6805bf78d2bbbeeaea8909a05623587b42d58b3Gordon RossI86XPV_LINTS = xdb xnb xnbe xnbo xnbu xpvtap
b6805bf78d2bbbeeaea8909a05623587b42d58b3Gordon Ross
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlevdef := TARGET= def
843e19887f64dde75055cf8842fc4db2171eff45johnlevall := TARGET= all
843e19887f64dde75055cf8842fc4db2171eff45johnlevinstall := TARGET= install
843e19887f64dde75055cf8842fc4db2171eff45johnlevclean := TARGET= clean
843e19887f64dde75055cf8842fc4db2171eff45johnlevclobber := TARGET= clobber
843e19887f64dde75055cf8842fc4db2171eff45johnlevlint := TARGET= lint
843e19887f64dde75055cf8842fc4db2171eff45johnlevlintlib := TARGET= lintlib
843e19887f64dde75055cf8842fc4db2171eff45johnlevmachmodlintlib := TARGET= modlintlib
843e19887f64dde75055cf8842fc4db2171eff45johnlevmodlist := TARGET= modlist
843e19887f64dde75055cf8842fc4db2171eff45johnlevmodlist modlist.intel := NO_STATE= -K $$MODSTATE$$$$
843e19887f64dde75055cf8842fc4db2171eff45johnlevclean.lint := TARGET= clean.lint
843e19887f64dde75055cf8842fc4db2171eff45johnlevcheck := TARGET= check
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlev.KEEP_STATE:
843e19887f64dde75055cf8842fc4db2171eff45johnlev
c0e7977a434048a8bc7386ea0e8befaa77a646cfJosef 'Jeff' Sipek.PARALLEL: $(PARALLEL_KMODS) $(XMODS) modlist modlist.intel
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevINITIAL_TARGETS = \
843e19887f64dde75055cf8842fc4db2171eff45johnlev genassym \
a0900badd8eb6bcca99411c8906b483e84f2da91Garrett D'Amore unix \
a0900badd8eb6bcca99411c8906b483e84f2da91Garrett D'Amore cpu/scripts
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevdef all clean clobber clean.lint: setup genassym unix .WAIT \
c0e7977a434048a8bc7386ea0e8befaa77a646cfJosef 'Jeff' Sipek $(KMODS) $(XMODS)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevinstall: install_platforms setup genassym unix .WAIT \
c0e7977a434048a8bc7386ea0e8befaa77a646cfJosef 'Jeff' Sipek $(KMODS) $(XMODS)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
b6805bf78d2bbbeeaea8909a05623587b42d58b3Gordon Ross# Need to clean in here too because of lint.
b6805bf78d2bbbeeaea8909a05623587b42d58b3Gordon Rossclean: $(I86XPV_LINTS)
b6805bf78d2bbbeeaea8909a05623587b42d58b3Gordon Ross
843e19887f64dde75055cf8842fc4db2171eff45johnlev# list the modules under i86xpv.
c0e7977a434048a8bc7386ea0e8befaa77a646cfJosef 'Jeff' Sipekmodlist: unix $(KMODS) $(XMODS)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlev# list the modules for Install -k i86xpv.
843e19887f64dde75055cf8842fc4db2171eff45johnlevmodlist.karch: modlist modlist.intel
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevmodlist.intel:
843e19887f64dde75055cf8842fc4db2171eff45johnlev @cd $(SRC)/uts/intel; pwd; $(MAKE) $(NO_STATE) modlist
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevlintlib: unix
843e19887f64dde75055cf8842fc4db2171eff45johnlev
c0e7977a434048a8bc7386ea0e8befaa77a646cfJosef 'Jeff' Sipekmodlintlib: $(KMODS)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevgenassym unix $(KMODS): FRC
843e19887f64dde75055cf8842fc4db2171eff45johnlev @cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevsetup: FRC
a0900badd8eb6bcca99411c8906b483e84f2da91Garrett D'Amore @cd cpu/scripts; pwd; $(MAKE) $(TARGET)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlev$(XMODS): FRC
843e19887f64dde75055cf8842fc4db2171eff45johnlev @if [ -f $@/Makefile ]; then \
843e19887f64dde75055cf8842fc4db2171eff45johnlev cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET); \
843e19887f64dde75055cf8842fc4db2171eff45johnlev else \
843e19887f64dde75055cf8842fc4db2171eff45johnlev true; \
843e19887f64dde75055cf8842fc4db2171eff45johnlev fi
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevinstall_h check: FRC
843e19887f64dde75055cf8842fc4db2171eff45johnlev @cd sys; pwd; $(MAKE) $(TARGET)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# Definitions for the /platform directory aliases.
843e19887f64dde75055cf8842fc4db2171eff45johnlev# Currently none for i86xpv.
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlevPLAT_LINKS =
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# Make the /platform directories. This is hardwired here because
843e19887f64dde75055cf8842fc4db2171eff45johnlev# the first stage of the project (KBI) only implements the userland
843e19887f64dde75055cf8842fc4db2171eff45johnlev# changes, but the only reasonable place to record the aliases is
843e19887f64dde75055cf8842fc4db2171eff45johnlev# here in kernel land.
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlevinstall_platforms: $(ROOT_PSM_DIR) $(USR_PSM_DIR) \
843e19887f64dde75055cf8842fc4db2171eff45johnlev $(ROOT_PLAT_LINKS) $(USR_PLAT_LINKS) \
843e19887f64dde75055cf8842fc4db2171eff45johnlev $(OEM_USR_PLAT_LINKS)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# Full kernel lint target.
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlevLINT_TARGET = globallint
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlev# workaround for multiply defined errors
843e19887f64dde75055cf8842fc4db2171eff45johnlevgloballint := LINTFLAGS += -erroff=E_NAME_MULTIPLY_DEF2
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevgloballint:
843e19887f64dde75055cf8842fc4db2171eff45johnlev @-$(ECHO) "\nFULL KERNEL: global crosschecks:"
b6805bf78d2bbbeeaea8909a05623587b42d58b3Gordon Ross @-$(LINT) $(LINTFLAGS) $(LINT_LIB) $(LINT_LIBS) 2>&1 | $(LGREP.2)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevlint: lintlib .WAIT modlintlib .WAIT $(INTEL_LINTS) $(LINT_DEPS)
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlev$(INTEL_LINTS): FRC
843e19887f64dde75055cf8842fc4db2171eff45johnlev @cd $(UTSBASE)/intel/$@; pwd; $(MAKE) modlintlib
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevFRC:
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevinclude ../Makefile.targ
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
843e19887f64dde75055cf8842fc4db2171eff45johnlev# Cross-reference customization: build a cross-reference over all of the
843e19887f64dde75055cf8842fc4db2171eff45johnlev# i86pc-related directories.
843e19887f64dde75055cf8842fc4db2171eff45johnlev#
c0e7977a434048a8bc7386ea0e8befaa77a646cfJosef 'Jeff' SipekXRDIRS = ../i86xpv ../i86pc ../intel ../common
843e19887f64dde75055cf8842fc4db2171eff45johnlevXRPRUNE = sun4v sun4u sun4 sfmmu sparc
843e19887f64dde75055cf8842fc4db2171eff45johnlev
843e19887f64dde75055cf8842fc4db2171eff45johnlevcscope.out tags: FRC
843e19887f64dde75055cf8842fc4db2171eff45johnlev $(XREF) -x $@