Makefile revision 7c478bd95313f5f23a4c958a745db2134aa03244
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, Version 1.0 only
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic# (the "License"). You may not use this file except in compliance
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic# with the License.
4da61833a1cbbca94094f9653fd970582b97a72etrawick#
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.
4789804be088bcd86ae637a29cdb7fda25169521jailletc#
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
e50c3026198fd496f183cda4c32a202925476778covener# fields enclosed by brackets "[]" replaced with your own identifying
e50c3026198fd496f183cda4c32a202925476778covener# information: Portions Copyright [yyyy] [name of copyright owner]
e50c3026198fd496f183cda4c32a202925476778covener#
5b88c8507d5ef6d0c4cfbc78230294968175b638minfrin# CDDL HEADER END
5b88c8507d5ef6d0c4cfbc78230294968175b638minfrin#
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic#
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic# Use is subject to license terms.
4f29b65ab4b547ad5dbe506e2d0ff5d12ead9247ylavic#
4f29b65ab4b547ad5dbe506e2d0ff5d12ead9247ylavic#ident "%Z%%M% %I% %E% SMI"
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic#
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic# This makefile drives the production of /unix (and unix.o).
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic#
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic# sun4v implementation architecture dependent
69301145375a889e7e37caf7cc7321ac0f91801erpluem#
69301145375a889e7e37caf7cc7321ac0f91801erpluem
69301145375a889e7e37caf7cc7321ac0f91801erpluem#
506bfe33206b2fece40ef25f695af39dd4130facjkaluza# Path to the base of the uts directory tree (usually /usr/src/uts).
506bfe33206b2fece40ef25f695af39dd4130facjkaluza#
506bfe33206b2fece40ef25f695af39dd4130facjkaluzaUTSBASE = ../..
506bfe33206b2fece40ef25f695af39dd4130facjkaluza
d58a848a016d401b965111e50ef829e1641f7834minfrin#
d58a848a016d401b965111e50ef829e1641f7834minfrin# Define the module and object file sets.
d58a848a016d401b965111e50ef829e1641f7834minfrin#
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sfUNIX = unix
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sfOBJECTS = $(SPECIAL_OBJS:%=$(OBJS_DIR)/%) \
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sf $(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) \
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic $(MACH_NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln) \
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic $(LINTS_DIR)/vers.ln \
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic $(LINTS_DIR)/modstubs.ln
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavicROOTMODULE = $(ROOT_PSM_KERN_DIR)/$(UNIX)
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavicUNIX32_LINK = $(ROOT_PSM_KERN_DIR_32)/$(UNIX)
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavicUNIX_BIN = $(OBJS_DIR)/$(UNIX)
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavicKRTLD_32 = misc/krtld
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavicKRTLD_64 = misc/$(SUBDIR64)/krtld
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavicKRTLD = $(KRTLD_$(CLASS))
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavicLIBS = $(GENLIB) $(PLATLIB) $(CPULIB)
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener
d7205b1a86c51c27b71a2c458dc453fd53a261c1covenerGENUNIX = genunix
d7205b1a86c51c27b71a2c458dc453fd53a261c1covenerGENUNIX_DIR = ../$(GENUNIX)
d7205b1a86c51c27b71a2c458dc453fd53a261c1covenerGENOPTS = -L $(GENUNIX_DIR)/$(OBJS_DIR) -l $(GENUNIX)
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener
44ff304057225e944e220e981d434a046d14cf06covenerCPU_DIR = .
44ff304057225e944e220e981d434a046d14cf06covenerCPUOPTS = -L $(CPU_DIR)/$(OBJS_DIR) -l $(CPUNAME)
44ff304057225e944e220e981d434a046d14cf06covener
44ff304057225e944e220e981d434a046d14cf06covenerPLAT_DIR = ../platmod
5d1ba75b8794925e67591c209085a49279791de9covenerPLATOPTS = -L $(PLAT_DIR)/$(OBJS_DIR) -l $(PLATMOD)
5d1ba75b8794925e67591c209085a49279791de9covener
5d1ba75b8794925e67591c209085a49279791de9covenerLIBOPTS = $(GENOPTS) $(PLATOPTS) $(CPUOPTS)
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrandCTFEXTRAOBJS = $(OBJS_DIR)/vers.o
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand#
caad2986f81ab263f7af41467dd622dc9add17f3ylavic# Include common rules.
caad2986f81ab263f7af41467dd622dc9add17f3ylavic#
caad2986f81ab263f7af41467dd622dc9add17f3ylavicinclude $(UTSBASE)/sun4v/Makefile.sun4v
caad2986f81ab263f7af41467dd622dc9add17f3ylavic
45a10d38e6051fd7bdf9d742aaae633d97ff02abjailletc#
f7317ff316c2b141feea31bddb74d5d3fa1584edjorton# Define targets
f7317ff316c2b141feea31bddb74d5d3fa1584edjorton#
2165214331e4afafca4048f66f303d0253d7b001covenerALL_TARGET = $(UNIX_BIN)
a34684a59b60a4173c25035d0c627ef17e6dc215rpluemLINT_TARGET = $(LINT_LIB)
a34684a59b60a4173c25035d0c627ef17e6dc215rpluemINSTALL_TARGET = $(UNIX_BIN) $(ROOTMODULE) $(UNIX32_LINK)
1e2d421a36999d292042a5539971070d54aa6c63ylavic
1e2d421a36999d292042a5539971070d54aa6c63ylavic#
1e2d421a36999d292042a5539971070d54aa6c63ylavic# This is UNIX_DIR. Use a short path.
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedooh#
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedoohUNIX_DIR = .
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedooh
0b67eb8568cd58bb77082703951679b42cf098actrawick#
0b67eb8568cd58bb77082703951679b42cf098actrawick# Overrides
0b67eb8568cd58bb77082703951679b42cf098actrawick#
0b67eb8568cd58bb77082703951679b42cf098actrawickCLEANFILES += $(UNIX_O) $(MODSTUBS_O) $(OBJS_DIR)/vers.c \
5ef3c61605a3a021ff71f488983cb0065f8e1a79covener $(OBJS_DIR)/vers.o $(CPU_OBJ) $(CPULIB) \
fb1985a97912b25ec6564c73e610a31e5fc6e25fcovener $(DTRACESTUBS_O) $(DTRACESTUBS)
09c87c777bed1655621bb20e1c46cb6b1a63279dcovener
6502b7b32f980cc2093bb3ebce37e5e4dc68fba4ylavicCLOBBERFILES = $(CLEANFILES) $(UNIX_BIN)
6502b7b32f980cc2093bb3ebce37e5e4dc68fba4ylavicCLEANLINTFILES += $(LINT_LIB)
3060ce7f798fbda7999cd4ddf89b525d2b294185covener
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavic#
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavic# lint pass one enforcement
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavic# Turn on doubleword alignment for 64 bit counter timer registers
e6b4bd1113567627ab6bb6c6a7105e1e01a7d889jailletc#
e6b4bd1113567627ab6bb6c6a7105e1e01a7d889jailletcCFLAGS += $(CCVERBOSE) -dalign
e466c40e1801982602ee0200c9e8b61cc148742djailletc
e466c40e1801982602ee0200c9e8b61cc148742djailletc#
457468b82e59d01eba00dd9d0817309c8f5e414ejim# Default build targets.
457468b82e59d01eba00dd9d0817309c8f5e414ejim#
457468b82e59d01eba00dd9d0817309c8f5e414ejim.KEEP_STATE:
04983e3bd1754764eec7d6bb772fe3b0bf391771jorton
04983e3bd1754764eec7d6bb772fe3b0bf391771jortondef: $(DEF_DEPS)
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluem
15660979a30d251681463de2e0584853890082accovenerall: $(ALL_DEPS)
15660979a30d251681463de2e0584853890082accovener
49dacedb6c387b786b7911082ff35121a45f414bcovenerclean: $(CLEAN_DEPS)
49dacedb6c387b786b7911082ff35121a45f414bcovener
cfd9415521847b2f9394fad04fb701cfb955f503rjungclobber: $(CLOBBER_DEPS)
cfd9415521847b2f9394fad04fb701cfb955f503rjung
cfd9415521847b2f9394fad04fb701cfb955f503rjunglint: $(LINT_DEPS)
28c31fb73c1264bd1d0ff932573677030b024c7dwrowe
28c31fb73c1264bd1d0ff932573677030b024c7dwroweclean.lint: $(CLEAN_LINT_DEPS)
28c31fb73c1264bd1d0ff932573677030b024c7dwrowe
28c31fb73c1264bd1d0ff932573677030b024c7dwroweinstall: $(INSTALL_DEPS)
28c31fb73c1264bd1d0ff932573677030b024c7dwrowe
8491e0600f69b0405e156ea8a419653c065c645bcovener
63b9f1f5880391261705f696d7d65507bbe9ace3covener$(UNIX_BIN): $(UNIX_O) $(MODSTUBS_O) $(MAPFILE) $(LIBS) $(DTRACESTUBS)
63b9f1f5880391261705f696d7d65507bbe9ace3covener $(LD) -dy -b -o $@ -e _start -I $(KRTLD) -M $(MAPFILE) \
63b9f1f5880391261705f696d7d65507bbe9ace3covener $(UNIX_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
49dacedb6c387b786b7911082ff35121a45f414bcovener $(CTFMERGE_UNIQUIFY_AGAINST_GENUNIX)
49dacedb6c387b786b7911082ff35121a45f414bcovener $(POST_PROCESS)
49dacedb6c387b786b7911082ff35121a45f414bcovener
49dacedb6c387b786b7911082ff35121a45f414bcovener$(UNIX32_LINK): $(ROOT_PSM_KERN_DIR_32) $(UNIX_BIN)
3c990331fc6702119e4f5b8ba9eae3021aea5265jim -$(RM) $@; ln -s $(SUBDIR64)/$(UNIX) $@
3c990331fc6702119e4f5b8ba9eae3021aea5265jim
3c990331fc6702119e4f5b8ba9eae3021aea5265jimsymcheck: $(UNIX_O) $(MODSTUBS_O) $(LIBS)
3c990331fc6702119e4f5b8ba9eae3021aea5265jim $(LD) -dy -b -o $(SYM_MOD) -M $(MAPFILE) \
fc42512879dd0504532f52fe5d0d0383dda96a1eniq $(UNIX_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
fc42512879dd0504532f52fe5d0d0383dda96a1eniq
fc42512879dd0504532f52fe5d0d0383dda96a1eniq#$(UNIX).glom: $(UNIX)
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niq# ${LD} -dy -b -z nodefs -o $@ -e _start -I $(KRTLD) -M $(MAPFILE) \
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niq# $(UNIX_O) $(MODSTUBS_O) $(GENUNIX_DIR)/$(GENUNIX)
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niq# $(POST_PROCESS)
da0442c0440caef34706e2c2f3af05cb65921cc0jailletc
983528026996668ea295be95aedb9c7a346af470ylavic$(UNIX_O): $(OBJECTS) $(OBJS_DIR)/vers.o
da0442c0440caef34706e2c2f3af05cb65921cc0jailletc $(LD) -r -o $@ $(OBJECTS) $(OBJS_DIR)/vers.o
da0442c0440caef34706e2c2f3af05cb65921cc0jailletc
06b8f183140c8e02e0974e938a05078b511d1603covener#
06b8f183140c8e02e0974e938a05078b511d1603covener# Special rules for generating assym.h for inclusion in assembly files.
06b8f183140c8e02e0974e938a05078b511d1603covener#
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluem$(DSF_DIR)/$(OBJS_DIR)/assym.h: FRC
259878293a997ff49f5ddfc53d3739cbdc25444ecovener @cd $(DSF_DIR); $(MAKE) all.targ
259878293a997ff49f5ddfc53d3739cbdc25444ecovener
259878293a997ff49f5ddfc53d3739cbdc25444ecovener$(GENLIB): FRC
259878293a997ff49f5ddfc53d3739cbdc25444ecovener @(cd $(GENLIB_DIR); pwd; $(MAKE) all.targ)
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluem @pwd
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrin
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrin$(PLATLIB):
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrin ?@(cd $(PLAT_DIR); pwd; $(MAKE) all.targ)
65967d05f839dbf27cf91d91fa79585eeae19660minfrin ?@pwd
65967d05f839dbf27cf91d91fa79585eeae19660minfrin
65967d05f839dbf27cf91d91fa79585eeae19660minfrin#
65967d05f839dbf27cf91d91fa79585eeae19660minfrin# CPU_OBJ now comprises of 2 object files which come from sun4 common
8152945ae46857b170cb227e79bb799f4fc7710dminfrin# and from architecture dependent code. OBJS_DIR is prepended where
8152945ae46857b170cb227e79bb799f4fc7710dminfrin# CPU_OBJ is defined to allow for building multiple CPU_OBJ's
8152945ae46857b170cb227e79bb799f4fc7710dminfrin#
8152945ae46857b170cb227e79bb799f4fc7710dminfrin$(CPULIB): $(CPU_OBJ)
75f5c2db254c0167a0e396254460de09b775d203trawick $(LD) -o $@ -G -h 'cpu/$$CPU' $(CPU_OBJ)
75f5c2db254c0167a0e396254460de09b775d203trawick
75f5c2db254c0167a0e396254460de09b775d203trawick#
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph# The global lint target builds the kernel lint library (llib-lunix.ln)
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph# which is equivalent to a lint of /unix.o. Then all kernel modules for
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph# this architecture are linted against the kernel lint library.
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick#
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick# Note: lint errors in the kernel lint library will be repeated for
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick# each module. It is important that the kernel lint library
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick# be clean to keep the textual output to a reasonable level.
54d750a84a175d8e338880514d440773eb986b50covener#
54d750a84a175d8e338880514d440773eb986b50covener
54d750a84a175d8e338880514d440773eb986b50covener$(LINT_LIB): $(LINT_LIB_DIR) $(LINTS)
54d750a84a175d8e338880514d440773eb986b50covener @-$(ECHO) "\n$(UNIX): (library construction):"
54d750a84a175d8e338880514d440773eb986b50covener @$(LINT) -o $(UNIX) $(LINTFLAGS) $(LINTS)
54d750a84a175d8e338880514d440773eb986b50covener @$(MV) $(@F) $@
54d750a84a175d8e338880514d440773eb986b50covener
54d750a84a175d8e338880514d440773eb986b50covenerlintlib: $(LINT_DEPS)
7a3aa12f0eda24793ee26d6a179bd53132e9dae8covener
54d750a84a175d8e338880514d440773eb986b50covener#
54d750a84a175d8e338880514d440773eb986b50covener# Include common targets.
83b50288fa7d306324bba68832011ea08f5c7832covener#
4e30ef014533a7e93c92d88306291f5e49c9692ftrawickinclude $(UTSBASE)/$(PLATFORM)/Makefile.targ
83b50288fa7d306324bba68832011ea08f5c7832covener
5f066f496cd9f20a2a701255bc67d44e7cb46daetrawick