Makefile revision 24da5b34f49324ed742a340010ed5bd3d4e06625
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder#
c63ebf815c8a874525cf18670ad74847f7fc7b26Christian Maeder# CDDL HEADER START
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder#
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# The contents of this file are subject to the terms of the
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder# Common Development and Distribution License (the "License").
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# You may not use this file except in compliance with the License.
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder#
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder# or http://www.opensolaris.org/os/licensing.
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# See the License for the specific language governing permissions
f4a2a20e49f41b2afa657e5e64d9e349c7faa091Christian Maeder# and limitations under the License.
f2f9df2e17e70674f0bf426ed1763c973ee4cde0Christian Maeder#
c9a7e6af169a2adfb92f42331cd578065ed83a2bChristian Maeder# When distributing Covered Code, include this CDDL HEADER in each
c9a7e6af169a2adfb92f42331cd578065ed83a2bChristian Maeder# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
e7757995211bd395dc79d26fe017d99375f7d2a6Christian Maeder# If applicable, add the following below this CDDL HEADER, with the
e7757995211bd395dc79d26fe017d99375f7d2a6Christian Maeder# fields enclosed by brackets "[]" replaced with your own identifying
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# information: Portions Copyright [yyyy] [name of copyright owner]
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
a1ed34933c266ce85066acb0d7b20c90cb8eb213Christian Maeder# CDDL HEADER END
c0c2380bced8159ff0297ece14eba948bd236471Christian Maeder#
404166b9366552e9ec5abb87a37c76ec8a815fb7Klaus Luettich
b1f59a4ea7c96f4c03a4d7cfcb9c5e66871cfbbbChristian Maeder#
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
404166b9366552e9ec5abb87a37c76ec8a815fb7Klaus Luettich# Use is subject to license terms.
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maeder# ident "%Z%%M% %I% %E% SMI"
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maeder#
ef9e8535c168d3f774d9e74368a2317a9eda5826Christian Maeder
bab2d88d650448628730ed3b65c9f99c52500e8cChristian Maeder#
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maeder# This makefile drives the production of unix (and unix.o).
ef9e8535c168d3f774d9e74368a2317a9eda5826Christian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# sun4u starcat implementation architecture dependent
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder#
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder# Path to the base of the uts directory tree (usually /usr/src/uts).
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder#
3dde4051c307b609159a097f08a05108fdd036efJonathan von SchroederUTSBASE = ../../..
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder#
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder# Define the module and object file sets.
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder#
3dde4051c307b609159a097f08a05108fdd036efJonathan von SchroederUNIX = unix
3dde4051c307b609159a097f08a05108fdd036efJonathan von SchroederOBJECTS = $(SPECIAL_OBJS:%=$(OBJS_DIR)/%) \
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder $(CORE_OBJS:%=$(OBJS_DIR)/%) \
825a1e4ca1e768de4b4883c65a6cb1dce6aa0002Christian Maeder $(MACH_NOT_YET_KMODS:%=$(OBJS_DIR)/%)
3dde4051c307b609159a097f08a05108fdd036efJonathan von SchroederLINTS = $(SPECIAL_OBJS:%.o=$(LINTS_DIR)/%.ln) \
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maeder $(CORE_OBJS:%.o=$(LINTS_DIR)/%.ln) \
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maeder $(MACH_NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln) \
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maeder $(LINTS_DIR)/vers.ln \
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maeder $(LINTS_DIR)/modstubs.ln
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian MaederROOTMODULE = $(ROOT_STARCAT_KERN_DIR)/$(UNIX)
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian MaederUNIX_BIN = $(OBJS_DIR)/$(UNIX)
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder
4b4a0b61b72cf8478a5d4d5002bca9f699401363Christian MaederKRTLD_32 = misc/krtld
4b4a0b61b72cf8478a5d4d5002bca9f699401363Christian MaederKRTLD_64 = misc/$(SUBDIR64)/krtld
308834907a120fd8771e18292ed2ca9cd767c12dChristian MaederKRTLD = $(KRTLD_$(CLASS))
bab2d88d650448628730ed3b65c9f99c52500e8cChristian Maeder
9f226cec9f978edaba67aee4c4e04e3d3b994b87Daniel CalegariLIBS = $(GENLIB) $(PLATLIB) $(CPULIB)
8cacad2a09782249243b80985f28e9387019fe40Christian Maeder
6a2dad705deefd1b7a7e09b84fd2d75f2213be47Christian MaederGENUNIX = genunix
a7c27282e71cf4505026645f96d4f5cb8a284e32Christian MaederGENUNIX_DIR = ../../$(GENUNIX)
363939beade943a02b31004cea09dec34fa8a6d9Christian MaederGENOPTS = -L $(GENUNIX_DIR)/$(OBJS_DIR) -l $(GENUNIX)
014dc30f64ec25e4790cca987d4d1e6635430510Christian Maeder
f04e8f3ff56405901be968fd4c6e9769239f1a9bKlaus LuettichCPU_DIR = .
6aea82c63ba1d2efc0329bc784a14e521469ec20Christian MaederCPUOPTS = -L $(CPU_DIR)/$(OBJS_DIR) -l $(CPUNAME)
4ba08bfca0cc8d9da65397b8dfd2654fdb4c0e62Christian Maeder
feca1d35123d8c31aee238c9ce79947b0bf65494Christian MaederPLAT_DIR = ../../platmod
431d34c7007a787331c4e5ec997badb0f8190fc7Christian MaederPLATOPTS = -L $(PLAT_DIR)/$(OBJS_DIR) -l $(PLATMOD)
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maeder
f5c0884429b01e74c6e658ded921fb2e16dfb478Christian MaederLIBOPTS = $(GENOPTS) $(PLATOPTS) $(CPUOPTS)
db675e8302ddb0d6528088ce68f5e98a00e890e3Christian Maeder
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian MaederCTFEXTRAOBJS = $(OBJS_DIR)/vers.o
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maeder
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maeder#
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maeder# Include common rules.
23ffcc44ca8612feccbd8fda63fa5be7ab5f9dc3Christian Maeder#
61fa0ac06ede811c7aad54ec4c4202346727368eChristian Maederinclude $(UTSBASE)/sun4u/starcat/Makefile.starcat
c0c2380bced8159ff0297ece14eba948bd236471Christian Maeder
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Define targets
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederALL_TARGET = $(UNIX_BIN)
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederLINT_TARGET = $(LINT_LIB)
9e748851c150e1022fb952bab3315e869aaf0214Christian MaederINSTALL_TARGET = $(UNIX_BIN) $(ROOTMODULE)
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder#
a3c6d8e0670bf2aa71bc8e2a3b1f45d56dd65e4cChristian Maeder# Overrides
dc679edd4ca027663212afdf00926ae2ce19b555Christian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederALL_BUILDS = $(ALL_BUILDSONLY64)
ca074a78b8dcccbb8c419586787882f98d0c6163Christian MaederDEF_BUILDS = $(DEF_BUILDSONLY64)
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederSYM_BUILDS = $(DEF_BUILDSONLY64)
ca074a78b8dcccbb8c419586787882f98d0c6163Christian MaederCLEANLINTFILES += $(LINT32_FILES)
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder#
4017ebc0f692820736d796af3110c3b3018c108aChristian Maeder# This is UNIX_DIR. Use a short path.
b568982efd0997d877286faa592d81b03c8c67b8Christian Maeder#
ca074a78b8dcccbb8c419586787882f98d0c6163Christian MaederUNIX_DIR = .
0be0db405c49906bd7057255069bf6df53395ac9Klaus Luettich
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Overrides
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCLEANFILES += $(UNIX_O) $(MODSTUBS_O) $(OBJS_DIR)/vers.c \
f2f9df2e17e70674f0bf426ed1763c973ee4cde0Christian Maeder $(OBJS_DIR)/vers.o $(CPU_OBJ) $(CPULIB) \
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder $(DTRACESTUBS_O) $(DTRACESTUBS)
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian MaederCLOBBERFILES = $(CLEANFILES) $(UNIX_BIN)
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian MaederCLEANLINTFILES += $(LINT_LIB)
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maeder# lint pass one enforcement
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Turn on doubleword alignment for 64 bit counter timer registers
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
ca074a78b8dcccbb8c419586787882f98d0c6163Christian MaederCFLAGS += $(CCVERBOSE) -dalign
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Default build targets.
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder#
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder.KEEP_STATE:
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maeder
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maederdef: $(DEF_DEPS)
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maeder
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maederall: $(ALL_DEPS)
58b96b17bf8e32c0b0d773380a5e62f992eef2bcChristian Maeder
e6d5dbbc3308f05197868806e0b860f4f53875f1Christian Maederclean: $(CLEAN_DEPS)
363939beade943a02b31004cea09dec34fa8a6d9Christian Maeder
58b96b17bf8e32c0b0d773380a5e62f992eef2bcChristian Maederclobber: $(CLOBBER_DEPS)
e4f4d096e5e6d60dd91c746d0e833d0ac7a29c50Christian Maeder
eb74267cf39e4e95f9eeb5c765f4c8dac33971b4Christian Maederlint: $(LINT_DEPS)
eb74267cf39e4e95f9eeb5c765f4c8dac33971b4Christian Maeder
e4f4d096e5e6d60dd91c746d0e833d0ac7a29c50Christian Maederclean.lint: $(CLEAN_LINT_DEPS)
61fa0ac06ede811c7aad54ec4c4202346727368eChristian Maeder
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maederinstall: $(INSTALL_DEPS)
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maeder
8d178ae08a52d61379e6b8074f61646499bc88bbChristian Maedersymcheck: $(SYM_DEPS)
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder$(UNIX_BIN): $(UNIX_O) $(MODSTUBS_O) $(MAPFILE) $(LIBS) $(DTRACESTUBS)
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder $(LD) -dy -b -o $@ -e _start -I $(KRTLD) -M $(MAPFILE) \
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder $(UNIX_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder $(CTFMERGE_UNIQUIFY_AGAINST_GENUNIX)
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder $(POST_PROCESS)
b2ac5a92cf36382e8deea5661c1964566caf72b3Christian Maeder
ea5432ff6f61c64469b11d9352b23fef4ff152e8Christian Maedersymcheck.targ: $(UNIX_O) $(MODSTUBS_O) $(LIBS) $(DTRACESTUBS)
b2ac5a92cf36382e8deea5661c1964566caf72b3Christian Maeder $(LD) -dy -b -o $(SYM_MOD) -M $(MAPFILE) \
b2ac5a92cf36382e8deea5661c1964566caf72b3Christian Maeder $(UNIX_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
7d0ee72ee91ec305408688b969c43f07b9667c80Christian Maeder
7d0ee72ee91ec305408688b969c43f07b9667c80Christian Maeder$(UNIX_O): $(OBJECTS) $(OBJS_DIR)/vers.o
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder $(LD) -r -o $@ $(OBJECTS) $(OBJS_DIR)/vers.o
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder
0e5b095a19790411e5352fa7cf57cb0388e70472Christian Maeder#
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder# Special rules for generating assym.h for inclusion in assembly files.
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder#
f1a913f880e409e7327b5deae95738b5448379a1Christian Maeder$(DSF_DIR)/$(OBJS_DIR)/assym.h: FRC
f1a913f880e409e7327b5deae95738b5448379a1Christian Maeder @cd $(DSF_DIR); $(MAKE) all.targ
f1a913f880e409e7327b5deae95738b5448379a1Christian Maeder
f1a913f880e409e7327b5deae95738b5448379a1Christian Maeder$(GENLIB): FRC
14c56dc499da4bbeaeebeb558ceb755150ae341cChristian Maeder @(cd $(GENLIB_DIR); pwd; $(MAKE) all.targ)
c9a7e6af169a2adfb92f42331cd578065ed83a2bChristian Maeder @pwd
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder$(PLATLIB):
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder ?@(cd $(PLAT_DIR); pwd; $(MAKE) all.targ)
93f5b72fdb9ee734caa750b43dd79bbb590dcd73Christian Maeder ?@pwd
81f49ee02aaa3bc870401f8883bf52742eb3ea7aJonathan von Schroeder#
93f5b72fdb9ee734caa750b43dd79bbb590dcd73Christian Maeder# CPU_OBJ now comprises of 2 object files which come from sun4 common
93f5b72fdb9ee734caa750b43dd79bbb590dcd73Christian Maeder# and from architecture dependent code. OBJS_DIR is prepended where
328a85c807f2a95c3f147d10b05927eaf862ebebChristian Maeder# CPU_DIR is defined to allow for building multiple CPU_OBJ's
8fb127028cb7dd361e348a3252e33487f73428bcJonathan von Schroeder#
06dd4e7c29f33f6122a910719e3bd9062256e397Andy Gimblett$(CPULIB): $(CPU_OBJ)
254df6f22d01eacf7c57b85729e0445747b630d9Christian Maeder $(BUILD.SO) $(CPU_OBJ)
4ba08bfca0cc8d9da65397b8dfd2654fdb4c0e62Christian Maeder
bff4b3f816be4c1e1d8ded76f1d5af786839e1a9Christian Maeder#
5b818f10e11fc79def1fdd5c8a080d64a6438d87Christian Maeder# The global lint target builds the kernel lint library (llib-lunix.ln)
8b0f493ae42bad8b94918cc0957f1af57096cda4Felix Reckers# which is equivalent to a lint of /unix.o. Then all kernel modules for
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder# this architecture are linted against the kernel lint library.
819e29dba060687cf391e444e0f6ff88c1908cc3Christian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Note: lint errors in the kernel lint library will be repeated for
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# each module. It is important that the kernel lint library
140287998aa8592c9c403bd9e308e447ba92ae11Christian Maeder# be clean to keep the textual output to a reasonable level.
c208973c890b8f993297720fd0247bc7481d4304Christian Maeder#
0d0278c34a374b29c2d6c58b39b8b56e283d48e8Christian Maeder
aded505f9b42cc38975559c2a5d175ae95de436bChristian Maeder$(LINT_LIB): $(LINT_LIB_DIR) $(LINTS)
3554301a34639efb6c9961a8571775d0061284c9Christian Maeder @-$(ECHO) "\n$(UNIX): (library construction):"
8b0f493ae42bad8b94918cc0957f1af57096cda4Felix Reckers @$(LINT) -o $(UNIX) $(LINTFLAGS) $(LINTS)
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder @$(MV) $(@F) $@
9e748851c150e1022fb952bab3315e869aaf0214Christian Maeder
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maederlintlib: $(LINT_DEPS)
61fa0ac06ede811c7aad54ec4c4202346727368eChristian Maeder
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder#
383aa66e5142365fe9b1f88b18c1da5b27cc8c04Christian Maeder# Include common targets.
383aa66e5142365fe9b1f88b18c1da5b27cc8c04Christian Maeder#
383aa66e5142365fe9b1f88b18c1da5b27cc8c04Christian Maederinclude $(UTSBASE)/sun4u/starcat/Makefile.targ
3554301a34639efb6c9961a8571775d0061284c9Christian Maeder