Makefile revision bbdcea1a8e030c1368472ff7a75d5fa08a03d9fb
80833bb9a1bf25dcf19e814438a4b311d2e1f4cffuankg# CDDL HEADER START
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic# The contents of this file are subject to the terms of the
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic# Common Development and Distribution License (the "License").
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic# You may not use this file except in compliance with the License.
4da61833a1cbbca94094f9653fd970582b97a72etrawick# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4da61833a1cbbca94094f9653fd970582b97a72etrawick# See the License for the specific language governing permissions
4da61833a1cbbca94094f9653fd970582b97a72etrawick# and limitations under the License.
4789804be088bcd86ae637a29cdb7fda25169521jailletc# When distributing Covered Code, include this CDDL HEADER in each
4789804be088bcd86ae637a29cdb7fda25169521jailletc# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4789804be088bcd86ae637a29cdb7fda25169521jailletc# If applicable, add the following below this CDDL HEADER, with the
4789804be088bcd86ae637a29cdb7fda25169521jailletc# fields enclosed by brackets "[]" replaced with your own identifying
e50c3026198fd496f183cda4c32a202925476778covener# information: Portions Copyright [yyyy] [name of copyright owner]
e50c3026198fd496f183cda4c32a202925476778covener# CDDL HEADER END
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic# Use is subject to license terms.
4f29b65ab4b547ad5dbe506e2d0ff5d12ead9247ylavic# ident "%Z%%M% %I% %E% SMI"
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic# This makefile drives the production of all implementation architecture
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic# dependent modules for the sun4v architecture.
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic# The following are SPARC specific (rather than sun4v) specific modules
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic# which are required for the sun4v kernel to completely lint. They are
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic# not involved in the build in any other way. In order to minimize
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic# build time, it is assumed that they are up to date. But since sun4v
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic# is really a separate architecture we cannot use the v7 sparc modules.
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavicSPARC_LIB_DIR = $(UTSBASE)/sparc/lint-libs/$(OBJS_DIR)
44ff304057225e944e220e981d434a046d14cf06covener# EXPORT DELETE START
5d1ba75b8794925e67591c209085a49279791de9covener# CRYPTO_EK_KMODS modules go in the encryption pack (SUNWcry*)
5d1ba75b8794925e67591c209085a49279791de9covener# They need to be listed separately since they duplicate global symbols
5d1ba75b8794925e67591c209085a49279791de9covener# causing the 2nd pass of lint on the kernel to complain. CRYPTO_EK_KMODS
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand# should not be listed in the lint target.
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand# Don't build this for OpenSolaris, since it will be replaced by
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand# a binary that is signed by Sun RE.
caad2986f81ab263f7af41467dd622dc9add17f3ylavic# EXPORT DELETE END
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedoohmodlist modlist.sparc := NO_STATE= -K $$MODSTATE$$$$
5ef3c61605a3a021ff71f488983cb0065f8e1a79covener.PARALLEL: $(PARALLEL_KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) \
6502b7b32f980cc2093bb3ebce37e5e4dc68fba4ylavic# Override for CPU_KMODS... they cannot be built
6502b7b32f980cc2093bb3ebce37e5e4dc68fba4ylavic# in parallel
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavicdef all clean clobber clean.lint: genassym unix .WAIT \
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavic $(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) $(IMPLEMENTATIONS)
e6b4bd1113567627ab6bb6c6a7105e1e01a7d889jailletc# list the modules under sun4v.
e466c40e1801982602ee0200c9e8b61cc148742djailletcmodlist: unix $(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) \
457468b82e59d01eba00dd9d0817309c8f5e414ejim# list the modules for Install -k sun4v.
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluem @cd $(SRC)/uts/sparc; pwd; $(MAKE) $(NO_STATE) modlist
15660979a30d251681463de2e0584853890082accovenerinstall: install_platforms genassym unix .WAIT $(KMODS) $(CLOSED_KMODS) \
8491e0600f69b0405e156ea8a419653c065c645bcovener @cd $@; pwd; THISIMPL=$@ $(MAKE) $(NO_STATE) $(TARGET)
63b9f1f5880391261705f696d7d65507bbe9ace3covener @if [ -f $@/Makefile ]; then \
da0442c0440caef34706e2c2f3af05cb65921cc0jailletc cd $(CLOSED)/uts/sun4v/$@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
da0442c0440caef34706e2c2f3af05cb65921cc0jailletcinstall_h check: install_platforms $(IMPLEMENTATIONS) FRC
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluem# Rules for the /platforms directories. This is hardwired here because
259878293a997ff49f5ddfc53d3739cbdc25444ecovener# the first stage of the project (KBI) only implements the userland
259878293a997ff49f5ddfc53d3739cbdc25444ecovener# changes, but the only reasonable place to record the aliases is
259878293a997ff49f5ddfc53d3739cbdc25444ecovener# here in kernel land.
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrin$(LINKED_PLATFORMS:%=$(ROOT_PLAT_DIR)/%): $(ROOT_PLAT_DIR)
65967d05f839dbf27cf91d91fa79585eeae19660minfrin# create directories in /usr/platform/ for the implementations that are
8152945ae46857b170cb227e79bb799f4fc7710dminfrin# defined in $(IMPLEMENTED_PLATFORM)
8152945ae46857b170cb227e79bb799f4fc7710dminfrin# Foreach $(IMPLEMENTED_PLATFORM) there can be a list of $(LINKED_PLATFORMS)
75f5c2db254c0167a0e396254460de09b775d203trawick# that are linked to it.
75f5c2db254c0167a0e396254460de09b775d203trawick$(USR_PLAT_DIR)/$(IMPLEMENTED_PLATFORM): $(USR_PLAT_DIR)
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick# create the links in /usr/platform/ foreach $(LINKED_PLATFORMS)
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick# to it's corresponding $(IMPLEMENTED_PLATFORM).
7a3aa12f0eda24793ee26d6a179bd53132e9dae8covener# Make the /platforms directories. This is hardwired here because
54d750a84a175d8e338880514d440773eb986b50covener# the first stage of the project (KBI) only implements the userland
54d750a84a175d8e338880514d440773eb986b50covener# changes, but the only reasonable place to record the aliases is
83b50288fa7d306324bba68832011ea08f5c7832covener# here in kernel land.
fce4949fb0b309a5744afcd503c6ed2d35621ee2covener# rules for making include, sbin, lib dirs/links in
7b7430e701e9a31ce809da7c220bb8dfcf68c86etrawick# /usr/platform/$(PLATFORM)/ for desktop platforms
a511a29faf2ff7ead3b67680154a624effb31aafminfrin# Full kernel lint target.
6d601599d3d65df0410eae6e573e75b2dbfb1fb4minfrin @-$(LINT) $(LINTFLAGS) $(LINT_LIBS) 2>&1 | $(LGREP.2)
6d601599d3d65df0410eae6e573e75b2dbfb1fb4minfrinlint: lintlib .WAIT modlintlib .WAIT $(SPARC_LINTS) $(LINT_DEPS) \
5c43d2fb853f84497b5ece2d414ef9484aa87e5fsf# EXPORT DELETE START
26c5829347f6a355c00f1ba0301d575056b69536niq sed -e "/^# EXPORT DELETE START/,/^# EXPORT DELETE END/d" \
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niq# EXPORT DELETE END
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsf# Cross-reference customization: build a cross-reference over all of the
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsf# sun4v-related directories.
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsfSHARED_XRDIRS = ../sun4v ../sun4 ../sfmmu ../sparc ../sun ../common
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsfCLOSED_XRDIRS = $(SHARED_XRDIRS:../%=../% ../../../closed/uts/%)
d7ffd2da16d58b1a0de212e4d56f7aebb72bef26sf$(CLOSED_BUILD)XRDIRS = $(CLOSED_XRDIRS:../../../closed/uts/sfmmu=)