Makefile revision 986fd29a0dc13f7608ef7f508f6e700bd7bc2720
f743002678eb67b99bbc29fee116b65d9530fec0wrowe#
80833bb9a1bf25dcf19e814438a4b311d2e1f4cffuankg# CDDL HEADER START
a34684a59b60a4173c25035d0c627ef17e6dc215rpluem#
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.
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic#
4da61833a1cbbca94094f9653fd970582b97a72etrawick# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4da61833a1cbbca94094f9653fd970582b97a72etrawick# or http://www.opensolaris.org/os/licensing.
4da61833a1cbbca94094f9653fd970582b97a72etrawick# See the License for the specific language governing permissions
4da61833a1cbbca94094f9653fd970582b97a72etrawick# and limitations under the License.
4da61833a1cbbca94094f9653fd970582b97a72etrawick#
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#
e50c3026198fd496f183cda4c32a202925476778covener# CDDL HEADER END
5b88c8507d5ef6d0c4cfbc78230294968175b638minfrin#
5b88c8507d5ef6d0c4cfbc78230294968175b638minfrin
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic#
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic# Use is subject to license terms.
4f29b65ab4b547ad5dbe506e2d0ff5d12ead9247ylavic#
4f29b65ab4b547ad5dbe506e2d0ff5d12ead9247ylavic# ident "%Z%%M% %I% %E% SMI"
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic#
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic#
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic# This makefile drives the production of unix (and unix.o).
69301145375a889e7e37caf7cc7321ac0f91801erpluem#
69301145375a889e7e37caf7cc7321ac0f91801erpluem# sun4u starcat implementation architecture dependent
69301145375a889e7e37caf7cc7321ac0f91801erpluem#
506bfe33206b2fece40ef25f695af39dd4130facjkaluza
506bfe33206b2fece40ef25f695af39dd4130facjkaluza#
506bfe33206b2fece40ef25f695af39dd4130facjkaluza# Path to the base of the uts directory tree (usually /usr/src/uts).
506bfe33206b2fece40ef25f695af39dd4130facjkaluza#
d58a848a016d401b965111e50ef829e1641f7834minfrinUTSBASE = ../../..
d58a848a016d401b965111e50ef829e1641f7834minfrin
d58a848a016d401b965111e50ef829e1641f7834minfrin#
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sf# Define the module and object file sets.
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sf#
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sfUNIX = unix
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavicOBJECTS = $(SPECIAL_OBJS:%=$(OBJS_DIR)/%) \
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic $(CORE_OBJS:%=$(OBJS_DIR)/%) \
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic $(MACH_NOT_YET_KMODS:%=$(OBJS_DIR)/%)
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavicLINTS = $(SPECIAL_OBJS:%.o=$(LINTS_DIR)/%.ln) \
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic $(CORE_OBJS:%.o=$(LINTS_DIR)/%.ln) \
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic $(MACH_NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln) \
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic $(LINTS_DIR)/vers.ln \
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic $(LINTS_DIR)/modstubs.ln
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavicKRTLD_MAPFILE = $(UTSBASE)/sparc/krtld/mapfile
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavicKRTLD_OBJECTS = $(KRTLD_OBJS:%=$(OBJS_DIR)/%)
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavicKRTLD_O = $(OBJS_DIR)/krtld.o
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavicROOTMODULE = $(ROOT_STARCAT_KERN_DIR)/$(UNIX)
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavicUNIX_BIN = $(OBJS_DIR)/$(UNIX)
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener
d7205b1a86c51c27b71a2c458dc453fd53a261c1covenerLIBS = $(GENLIB) $(PLATLIB) $(CPULIB)
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener
d7205b1a86c51c27b71a2c458dc453fd53a261c1covenerGENUNIX = genunix
d7205b1a86c51c27b71a2c458dc453fd53a261c1covenerGENUNIX_DIR = ../../$(GENUNIX)
44ff304057225e944e220e981d434a046d14cf06covenerGENOPTS = -L $(GENUNIX_DIR)/$(OBJS_DIR) -l $(GENUNIX)
44ff304057225e944e220e981d434a046d14cf06covener
44ff304057225e944e220e981d434a046d14cf06covenerCPU_DIR = .
44ff304057225e944e220e981d434a046d14cf06covenerCPUOPTS = -L $(CPU_DIR)/$(OBJS_DIR) -l $(CPUNAME)
5d1ba75b8794925e67591c209085a49279791de9covener
5d1ba75b8794925e67591c209085a49279791de9covenerPLAT_DIR = ../../platmod
5d1ba75b8794925e67591c209085a49279791de9covenerPLATOPTS = -L $(PLAT_DIR)/$(OBJS_DIR) -l $(PLATMOD)
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrandLIBOPTS = $(GENOPTS) $(PLATOPTS) $(CPUOPTS)
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrandCTFEXTRAOBJS = $(OBJS_DIR)/vers.o
caad2986f81ab263f7af41467dd622dc9add17f3ylavic
caad2986f81ab263f7af41467dd622dc9add17f3ylavic#
caad2986f81ab263f7af41467dd622dc9add17f3ylavic# Include common rules.
caad2986f81ab263f7af41467dd622dc9add17f3ylavic#
45a10d38e6051fd7bdf9d742aaae633d97ff02abjailletcinclude $(UTSBASE)/sun4u/starcat/Makefile.starcat
f7317ff316c2b141feea31bddb74d5d3fa1584edjorton
f7317ff316c2b141feea31bddb74d5d3fa1584edjorton#
2165214331e4afafca4048f66f303d0253d7b001covener# Define targets
a34684a59b60a4173c25035d0c627ef17e6dc215rpluem#
a34684a59b60a4173c25035d0c627ef17e6dc215rpluemALL_TARGET = $(UNIX_BIN)
1e2d421a36999d292042a5539971070d54aa6c63ylavicLINT_TARGET = $(LINT_LIB)
1e2d421a36999d292042a5539971070d54aa6c63ylavicINSTALL_TARGET = $(UNIX_BIN) $(ROOTMODULE)
1e2d421a36999d292042a5539971070d54aa6c63ylavic
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedooh#
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedooh# Overrides
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedooh#
0b67eb8568cd58bb77082703951679b42cf098actrawickALL_BUILDS = $(ALL_BUILDSONLY64)
0b67eb8568cd58bb77082703951679b42cf098actrawickDEF_BUILDS = $(DEF_BUILDSONLY64)
0b67eb8568cd58bb77082703951679b42cf098actrawickSYM_BUILDS = $(DEF_BUILDSONLY64)
0b67eb8568cd58bb77082703951679b42cf098actrawickCLEANLINTFILES += $(LINT32_FILES)
5ef3c61605a3a021ff71f488983cb0065f8e1a79covener
fb1985a97912b25ec6564c73e610a31e5fc6e25fcovener#
09c87c777bed1655621bb20e1c46cb6b1a63279dcovener# This is UNIX_DIR. Use a short path.
6502b7b32f980cc2093bb3ebce37e5e4dc68fba4ylavic#
6502b7b32f980cc2093bb3ebce37e5e4dc68fba4ylavicUNIX_DIR = .
3060ce7f798fbda7999cd4ddf89b525d2b294185covener
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavic#
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavic# Overrides
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavic#
e6b4bd1113567627ab6bb6c6a7105e1e01a7d889jailletcCLEANFILES += $(UNIX_O) $(MODSTUBS_O) $(KRTLD_O) $(KRTLD_OBJECTS) \
e6b4bd1113567627ab6bb6c6a7105e1e01a7d889jailletc $(OBJS_DIR)/vers.c $(OBJS_DIR)/vers.o \
e466c40e1801982602ee0200c9e8b61cc148742djailletc $(CPU_OBJ) $(CPULIB) \
e466c40e1801982602ee0200c9e8b61cc148742djailletc $(DTRACESTUBS_O) $(DTRACESTUBS)
457468b82e59d01eba00dd9d0817309c8f5e414ejim
457468b82e59d01eba00dd9d0817309c8f5e414ejimCLOBBERFILES = $(CLEANFILES) $(UNIX_BIN)
457468b82e59d01eba00dd9d0817309c8f5e414ejimCLEANLINTFILES += $(LINT_LIB)
04983e3bd1754764eec7d6bb772fe3b0bf391771jorton
04983e3bd1754764eec7d6bb772fe3b0bf391771jorton#
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluem# lint pass one enforcement
15660979a30d251681463de2e0584853890082accovener# Turn on doubleword alignment for 64 bit counter timer registers
15660979a30d251681463de2e0584853890082accovener#
49dacedb6c387b786b7911082ff35121a45f414bcovenerCFLAGS += $(CCVERBOSE) -dalign
49dacedb6c387b786b7911082ff35121a45f414bcovener
cfd9415521847b2f9394fad04fb701cfb955f503rjung#
cfd9415521847b2f9394fad04fb701cfb955f503rjung# Default build targets.
cfd9415521847b2f9394fad04fb701cfb955f503rjung#
28c31fb73c1264bd1d0ff932573677030b024c7dwrowe.KEEP_STATE:
28c31fb73c1264bd1d0ff932573677030b024c7dwrowe
28c31fb73c1264bd1d0ff932573677030b024c7dwrowedef: $(DEF_DEPS)
28c31fb73c1264bd1d0ff932573677030b024c7dwrowe
28c31fb73c1264bd1d0ff932573677030b024c7dwroweall: $(ALL_DEPS)
8491e0600f69b0405e156ea8a419653c065c645bcovener
63b9f1f5880391261705f696d7d65507bbe9ace3covenerclean: $(CLEAN_DEPS)
63b9f1f5880391261705f696d7d65507bbe9ace3covener
63b9f1f5880391261705f696d7d65507bbe9ace3covenerclobber: $(CLOBBER_DEPS)
49dacedb6c387b786b7911082ff35121a45f414bcovener
49dacedb6c387b786b7911082ff35121a45f414bcovenerlint: $(LINT_DEPS)
49dacedb6c387b786b7911082ff35121a45f414bcovener
49dacedb6c387b786b7911082ff35121a45f414bcovenerclean.lint: $(CLEAN_LINT_DEPS)
3c990331fc6702119e4f5b8ba9eae3021aea5265jim
3c990331fc6702119e4f5b8ba9eae3021aea5265jiminstall: $(INSTALL_DEPS)
3c990331fc6702119e4f5b8ba9eae3021aea5265jim
3c990331fc6702119e4f5b8ba9eae3021aea5265jimsymcheck: $(SYM_DEPS)
fc42512879dd0504532f52fe5d0d0383dda96a1eniq
fc42512879dd0504532f52fe5d0d0383dda96a1eniq$(UNIX_BIN): $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(MAPFILE) $(LIBS) \
fc42512879dd0504532f52fe5d0d0383dda96a1eniq $(DTRACESTUBS)
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niq $(LD) -dy -b -o $@ -e _start -M $(MAPFILE) \
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niq $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niq $(CTFMERGE_UNIQUIFY_AGAINST_GENUNIX)
da0442c0440caef34706e2c2f3af05cb65921cc0jailletc $(POST_PROCESS)
983528026996668ea295be95aedb9c7a346af470ylavic
da0442c0440caef34706e2c2f3af05cb65921cc0jailletcsymcheck.targ: $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(LIBS) $(DTRACESTUBS)
da0442c0440caef34706e2c2f3af05cb65921cc0jailletc $(LD) -dy -b -o $(SYM_MOD) -M $(MAPFILE) \
06b8f183140c8e02e0974e938a05078b511d1603covener $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
06b8f183140c8e02e0974e938a05078b511d1603covener
06b8f183140c8e02e0974e938a05078b511d1603covener$(UNIX_O): $(OBJECTS) $(OBJS_DIR)/vers.o
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluem $(LD) -r -o $@ $(OBJECTS) $(OBJS_DIR)/vers.o
259878293a997ff49f5ddfc53d3739cbdc25444ecovener
259878293a997ff49f5ddfc53d3739cbdc25444ecovener$(KRTLD_O): $(KRTLD_OBJECTS)
259878293a997ff49f5ddfc53d3739cbdc25444ecovener $(LD) -r -o $@ -M$(KRTLD_MAPFILE) $(KRTLD_OBJECTS)
259878293a997ff49f5ddfc53d3739cbdc25444ecovener
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluem#
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrin# Special rules for generating assym.h for inclusion in assembly files.
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrin#
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrin$(DSF_DIR)/$(OBJS_DIR)/assym.h: FRC
65967d05f839dbf27cf91d91fa79585eeae19660minfrin @cd $(DSF_DIR); $(MAKE) all.targ
65967d05f839dbf27cf91d91fa79585eeae19660minfrin
65967d05f839dbf27cf91d91fa79585eeae19660minfrin$(GENLIB): FRC
65967d05f839dbf27cf91d91fa79585eeae19660minfrin @(cd $(GENLIB_DIR); pwd; $(MAKE) all.targ)
8152945ae46857b170cb227e79bb799f4fc7710dminfrin @pwd
8152945ae46857b170cb227e79bb799f4fc7710dminfrin
8152945ae46857b170cb227e79bb799f4fc7710dminfrin$(PLATLIB):
8152945ae46857b170cb227e79bb799f4fc7710dminfrin ?@(cd $(PLAT_DIR); pwd; $(MAKE) all.targ)
75f5c2db254c0167a0e396254460de09b775d203trawick ?@pwd
75f5c2db254c0167a0e396254460de09b775d203trawick#
75f5c2db254c0167a0e396254460de09b775d203trawick# CPU_OBJ now comprises of 2 object files which come from sun4 common
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph# and from architecture dependent code. OBJS_DIR is prepended where
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph# CPU_DIR is defined to allow for building multiple CPU_OBJ's
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph#
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick$(CPULIB): $(CPU_OBJ)
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick $(BUILD.SO) $(CPU_OBJ)
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick#
54d750a84a175d8e338880514d440773eb986b50covener# The global lint target builds the kernel lint library (llib-lunix.ln)
54d750a84a175d8e338880514d440773eb986b50covener# which is equivalent to a lint of /unix.o. Then all kernel modules for
54d750a84a175d8e338880514d440773eb986b50covener# this architecture are linted against the kernel lint library.
54d750a84a175d8e338880514d440773eb986b50covener#
54d750a84a175d8e338880514d440773eb986b50covener# Note: lint errors in the kernel lint library will be repeated for
54d750a84a175d8e338880514d440773eb986b50covener# each module. It is important that the kernel lint library
54d750a84a175d8e338880514d440773eb986b50covener# be clean to keep the textual output to a reasonable level.
54d750a84a175d8e338880514d440773eb986b50covener#
7a3aa12f0eda24793ee26d6a179bd53132e9dae8covener
54d750a84a175d8e338880514d440773eb986b50covener$(LINT_LIB): $(LINT_LIB_DIR) $(LINTS)
54d750a84a175d8e338880514d440773eb986b50covener @-$(ECHO) "\n$(UNIX): (library construction):"
83b50288fa7d306324bba68832011ea08f5c7832covener @$(LINT) -o $(UNIX) $(LINTFLAGS) $(LINTS)
4e30ef014533a7e93c92d88306291f5e49c9692ftrawick @$(MV) $(@F) $@
83b50288fa7d306324bba68832011ea08f5c7832covener
5f066f496cd9f20a2a701255bc67d44e7cb46daetrawicklintlib: $(LINT_DEPS)
5f066f496cd9f20a2a701255bc67d44e7cb46daetrawick
5f066f496cd9f20a2a701255bc67d44e7cb46daetrawick#
2e15620d724fb8e3a5be183b917359a2fd6e9468covener# Include common targets.
2e15620d724fb8e3a5be183b917359a2fd6e9468covener#
2e15620d724fb8e3a5be183b917359a2fd6e9468covenerinclude $(UTSBASE)/sun4u/starcat/Makefile.targ
2e15620d724fb8e3a5be183b917359a2fd6e9468covener