Makefile revision 25cf1a301a396c38e8adf52c15f537b80d2483f7
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantz#
c10fe96ac7d024918e26af6c8ba5470273b75bb2jwoolley# CDDL HEADER START
98ae9b96926a3dd99b195d7628c7e527e720f6acaaron#
98ae9b96926a3dd99b195d7628c7e527e720f6acaaron# The contents of this file are subject to the terms of the
98ae9b96926a3dd99b195d7628c7e527e720f6acaaron# Common Development and Distribution License (the "License").
98ae9b96926a3dd99b195d7628c7e527e720f6acaaron# You may not use this file except in compliance with the License.
98ae9b96926a3dd99b195d7628c7e527e720f6acaaron#
98ae9b96926a3dd99b195d7628c7e527e720f6acaaron# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
98ae9b96926a3dd99b195d7628c7e527e720f6acaaron# or http://www.opensolaris.org/os/licensing.
98ae9b96926a3dd99b195d7628c7e527e720f6acaaron# See the License for the specific language governing permissions
98ae9b96926a3dd99b195d7628c7e527e720f6acaaron# and limitations under the License.
98ae9b96926a3dd99b195d7628c7e527e720f6acaaron#
9379749d811388a7d0e3410940ddd6743a33d330jim# When distributing Covered Code, include this CDDL HEADER in each
9379749d811388a7d0e3410940ddd6743a33d330jim# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9379749d811388a7d0e3410940ddd6743a33d330jim# If applicable, add the following below this CDDL HEADER, with the
9379749d811388a7d0e3410940ddd6743a33d330jim# fields enclosed by brackets "[]" replaced with your own identifying
f37499bf7da81cd6b697d4667233137957426428jerenkrantz# information: Portions Copyright [yyyy] [name of copyright owner]
f37499bf7da81cd6b697d4667233137957426428jerenkrantz#
421dc1d123c9adda60e024f93fb614bfada8b9e5wrowe# CDDL HEADER END
b8c2b4dfc363e33a8a1c2464802c3fb05cab86bbwrowe#
421dc1d123c9adda60e024f93fb614bfada8b9e5wrowe#
421dc1d123c9adda60e024f93fb614bfada8b9e5wrowe# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
83d91d60d00dc345bfbcbc48ff206db4a6b23b2eaaron# Use is subject to license terms.
83d91d60d00dc345bfbcbc48ff206db4a6b23b2eaaron#
83d91d60d00dc345bfbcbc48ff206db4a6b23b2eaaron# ident "%Z%%M% %I% %E% SMI"
83d91d60d00dc345bfbcbc48ff206db4a6b23b2eaaron#
83d91d60d00dc345bfbcbc48ff206db4a6b23b2eaaron# This makefile drives the production of unix (and unix.o).
83d91d60d00dc345bfbcbc48ff206db4a6b23b2eaaron#
c10fe96ac7d024918e26af6c8ba5470273b75bb2jwoolley# sun4u opl implementation architecture dependent
c10fe96ac7d024918e26af6c8ba5470273b75bb2jwoolley#
c10fe96ac7d024918e26af6c8ba5470273b75bb2jwoolley# uts/sun4u/opl/unix/Makefile
83ca150ef902e9692972aa923e893bc6406d20f1ianh#
f37499bf7da81cd6b697d4667233137957426428jerenkrantz
cbfbf9598d686b11afc7a9f9d91a8facfdfa7216trawick#
7a8a0744e378f2343c3ee6787fac0f8f959d2141brianp# Path to the base of the uts directory tree (usually /usr/src/uts).
7a8a0744e378f2343c3ee6787fac0f8f959d2141brianp#
7a8a0744e378f2343c3ee6787fac0f8f959d2141brianpUTSBASE = ../../..
7a8a0744e378f2343c3ee6787fac0f8f959d2141brianp
7a8a0744e378f2343c3ee6787fac0f8f959d2141brianp#
f5ce2873c97c12a34d6b03d2771b9250b7bbfe55wrowe# Define the module and object file sets.
f5ce2873c97c12a34d6b03d2771b9250b7bbfe55wrowe#
f5ce2873c97c12a34d6b03d2771b9250b7bbfe55wroweUNIX = unix
f5ce2873c97c12a34d6b03d2771b9250b7bbfe55wroweOBJECTS = $(SPECIAL_OBJS:%=$(OBJS_DIR)/%) \
f5ce2873c97c12a34d6b03d2771b9250b7bbfe55wrowe $(CORE_OBJS:%=$(OBJS_DIR)/%) \
f5ce2873c97c12a34d6b03d2771b9250b7bbfe55wrowe $(MACH_NOT_YET_KMODS:%=$(OBJS_DIR)/%)
f5ce2873c97c12a34d6b03d2771b9250b7bbfe55wroweLINTS = $(SPECIAL_OBJS:%.o=$(LINTS_DIR)/%.ln) \
f5ce2873c97c12a34d6b03d2771b9250b7bbfe55wrowe $(CORE_OBJS:%.o=$(LINTS_DIR)/%.ln) \
73cba74a34576f7ece4bd98fd58c8a932a178e6daaron $(MACH_NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln) \
73cba74a34576f7ece4bd98fd58c8a932a178e6daaron $(LINTS_DIR)/vers.ln \
73cba74a34576f7ece4bd98fd58c8a932a178e6daaron $(LINTS_DIR)/modstubs.ln
73cba74a34576f7ece4bd98fd58c8a932a178e6daaronROOTMODULE = $(ROOT_OPL_KERN_DIR)/$(UNIX)
73cba74a34576f7ece4bd98fd58c8a932a178e6daaronUNIX_BIN = $(OBJS_DIR)/$(UNIX)
73cba74a34576f7ece4bd98fd58c8a932a178e6daaron
73cba74a34576f7ece4bd98fd58c8a932a178e6daaronKRTLD_32 = misc/krtld
29c30db45f6a469017e16b606611e460cc1a1f2caaronKRTLD_64 = misc/$(SUBDIR64)/krtld
29c30db45f6a469017e16b606611e460cc1a1f2caaronKRTLD = $(KRTLD_$(CLASS))
29c30db45f6a469017e16b606611e460cc1a1f2caaron
095071bbd0b3ccccd6883edc7cd10f13cac71160ianhLIBS = $(GENLIB) $(PLATLIB) $(CPULIB)
095071bbd0b3ccccd6883edc7cd10f13cac71160ianh
095071bbd0b3ccccd6883edc7cd10f13cac71160ianhGENUNIX = genunix
a322a82f79b790fb7ddcd7df4459d20725450fa7trawickGENUNIX_DIR = ../../$(GENUNIX)
a322a82f79b790fb7ddcd7df4459d20725450fa7trawickGENOPTS = -L $(GENUNIX_DIR)/$(OBJS_DIR) -l $(GENUNIX)
a322a82f79b790fb7ddcd7df4459d20725450fa7trawick
21644b4d1b09d0531911a8c9a891819a261480f8minfrinCPU_DIR = .
21644b4d1b09d0531911a8c9a891819a261480f8minfrinCPUOPTS = -L $(CPU_DIR)/$(OBJS_DIR) -l $(CPUNAME)
21644b4d1b09d0531911a8c9a891819a261480f8minfrin
21644b4d1b09d0531911a8c9a891819a261480f8minfrinPLAT_DIR = ../../platmod
21644b4d1b09d0531911a8c9a891819a261480f8minfrinPLATOPTS = -L $(PLAT_DIR)/$(OBJS_DIR) -l $(PLATMOD)
21644b4d1b09d0531911a8c9a891819a261480f8minfrin
21644b4d1b09d0531911a8c9a891819a261480f8minfrinLIBOPTS = $(GENOPTS) $(PLATOPTS) $(CPUOPTS)
21644b4d1b09d0531911a8c9a891819a261480f8minfrin
21644b4d1b09d0531911a8c9a891819a261480f8minfrinCTFEXTRAOBJS = $(OBJS_DIR)/vers.o
21644b4d1b09d0531911a8c9a891819a261480f8minfrin
21644b4d1b09d0531911a8c9a891819a261480f8minfrin#
bf5cf58cc30750e9f9764cc830aff426ced288f9aaron# Include common rules.
bf5cf58cc30750e9f9764cc830aff426ced288f9aaron#
bf5cf58cc30750e9f9764cc830aff426ced288f9aaroninclude $(UTSBASE)/sun4u/opl/Makefile.opl
bf5cf58cc30750e9f9764cc830aff426ced288f9aaron
7cdc36a99b42a3c5e36ac47726ad41c9c7b039ceianh#
7cdc36a99b42a3c5e36ac47726ad41c9c7b039ceianh# Define targets
cbfbf9598d686b11afc7a9f9d91a8facfdfa7216trawick#
cbfbf9598d686b11afc7a9f9d91a8facfdfa7216trawickALL_TARGET = $(UNIX_BIN)
cbfbf9598d686b11afc7a9f9d91a8facfdfa7216trawickLINT_TARGET = $(LINT_LIB)
e37c657172940f82d9b28a45fc1304140eb0b1d7stoddardINSTALL_TARGET = $(UNIX_BIN) $(ROOTMODULE)
fe808620434aa59b796e8b60cd6eec65a32dfc2dstoddard
e37c657172940f82d9b28a45fc1304140eb0b1d7stoddard#
edd6c1f4be1aa23fc99134802941397f7f31b3d5jerenkrantz# Overrides
5f08a022a210f4e511561e89f500621a15e6177dtrawick#
5f08a022a210f4e511561e89f500621a15e6177dtrawickALL_BUILDS = $(ALL_BUILDSONLY64)
6db5333c9461942b8af724b101e687af541d4d4cjerenkrantzDEF_BUILDS = $(DEF_BUILDSONLY64)
6db5333c9461942b8af724b101e687af541d4d4cjerenkrantzSYM_BUILDS = $(DEF_BUILDSONLY64)
d4fcf63a5d9171d50c0d04e05a35ec6bf1f85100jerenkrantzCLEANLINTFILES += $(LINT32_FILES)
d4fcf63a5d9171d50c0d04e05a35ec6bf1f85100jerenkrantz
d4fcf63a5d9171d50c0d04e05a35ec6bf1f85100jerenkrantz#
dee6a8bde4d598087dc4b3ebf3d4dd06809d2dd7jerenkrantz# This is UNIX_DIR. Use a short path.
dee6a8bde4d598087dc4b3ebf3d4dd06809d2dd7jerenkrantz#
dee6a8bde4d598087dc4b3ebf3d4dd06809d2dd7jerenkrantzUNIX_DIR = .
edd6c1f4be1aa23fc99134802941397f7f31b3d5jerenkrantz
edd6c1f4be1aa23fc99134802941397f7f31b3d5jerenkrantz#
edd6c1f4be1aa23fc99134802941397f7f31b3d5jerenkrantz# Overrides
d7d551e53cdfb3288eb651447d7209599c40d17estoddard#
d7d551e53cdfb3288eb651447d7209599c40d17estoddardCLEANFILES += $(UNIX_O) $(MODSTUBS_O) $(OBJS_DIR)/vers.c \
d7d551e53cdfb3288eb651447d7209599c40d17estoddard $(OBJS_DIR)/vers.o $(CPU_OBJ) $(CPULIB) \
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantz $(DTRACESTUBS_O) $(DTRACESTUBS)
956a1511249b1fec73aaee0fb7d69c8492aa1368aaron
956a1511249b1fec73aaee0fb7d69c8492aa1368aaronCLOBBERFILES = $(CLEANFILES) $(UNIX_BIN)
956a1511249b1fec73aaee0fb7d69c8492aa1368aaronCLEANLINTFILES += $(LINT_LIB)
956a1511249b1fec73aaee0fb7d69c8492aa1368aaron
d0e4ca9bfd8bf44bea574733965851bfee939d95aaron#
d0e4ca9bfd8bf44bea574733965851bfee939d95aaron# lint pass one enforcement
d0e4ca9bfd8bf44bea574733965851bfee939d95aaron# Turn on doubleword alignment for 64 bit counter timer registers
d0e4ca9bfd8bf44bea574733965851bfee939d95aaron#
d0e4ca9bfd8bf44bea574733965851bfee939d95aaronCFLAGS += $(CCVERBOSE) -dalign
d0e4ca9bfd8bf44bea574733965851bfee939d95aaron
956a1511249b1fec73aaee0fb7d69c8492aa1368aaron#
d0e4ca9bfd8bf44bea574733965851bfee939d95aaron# Default build targets.
a4b3fb28f3d2e0983b15b4c6828c6980f2fc9b15jerenkrantz#
a4b3fb28f3d2e0983b15b4c6828c6980f2fc9b15jerenkrantz.KEEP_STATE:
a4b3fb28f3d2e0983b15b4c6828c6980f2fc9b15jerenkrantz
548b2980e83f609186a76e98fb245d02e8547bc3jerenkrantzall: $(ALL_DEPS)
548b2980e83f609186a76e98fb245d02e8547bc3jerenkrantz
548b2980e83f609186a76e98fb245d02e8547bc3jerenkrantzdef: $(DEF_DEPS)
e54b09d79ca9bc18ea5ae33367fd907473621dcejerenkrantz
e54b09d79ca9bc18ea5ae33367fd907473621dcejerenkrantzclean: $(CLEAN_DEPS)
e54b09d79ca9bc18ea5ae33367fd907473621dcejerenkrantz
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantzclobber: $(CLOBBER_DEPS)
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantz
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantzlint: $(LINT_DEPS)
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantz
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantzclean.lint: $(CLEAN_LINT_DEPS)
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantz
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantzinstall: $(INSTALL_DEPS)
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantz
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantzsymcheck: $(SYM_DEPS)
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantz
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantz$(UNIX_BIN): $(UNIX_O) $(MODSTUBS_O) $(MAPFILE) $(LIBS) $(DTRACESTUBS)
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantz $(LD) -dy -b -o $@ -e _start -I $(KRTLD) -M $(MAPFILE) \
edcd9e6d9d29f60b25f7b9779dbd33e9dc1cc79ejerenkrantz $(UNIX_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
3dacbb0a9d24ff7178be1d79846225549719c0c7jerenkrantz $(CTFMERGE_UNIQUIFY_AGAINST_GENUNIX)
0733b4ac1b339822a5b506be8a28fea6e384cbfetrawick $(POST_PROCESS)
1582553026e5e3a1921a34222eaee923fddee9b9wrowe
1582553026e5e3a1921a34222eaee923fddee9b9wrowesymcheck.targ: $(UNIX_O) $(MODSTUBS_O) $(LIBS) $(DTRACESTUBS)
1582553026e5e3a1921a34222eaee923fddee9b9wrowe $(LD) -dy -b -o $(SYM_MOD) -M $(MAPFILE) \
1582553026e5e3a1921a34222eaee923fddee9b9wrowe $(UNIX_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
1582553026e5e3a1921a34222eaee923fddee9b9wrowe
1582553026e5e3a1921a34222eaee923fddee9b9wrowe$(UNIX_O): $(OBJECTS) $(OBJS_DIR)/vers.o
1582553026e5e3a1921a34222eaee923fddee9b9wrowe $(LD) -r -o $@ $(OBJECTS) $(OBJS_DIR)/vers.o
1582553026e5e3a1921a34222eaee923fddee9b9wrowe
1582553026e5e3a1921a34222eaee923fddee9b9wrowe#
1582553026e5e3a1921a34222eaee923fddee9b9wrowe# Special rules for generating assym.h for inclusion in assembly files.
1582553026e5e3a1921a34222eaee923fddee9b9wrowe#
1582553026e5e3a1921a34222eaee923fddee9b9wrowe$(DSF_DIR)/$(OBJS_DIR)/assym.h: FRC
1582553026e5e3a1921a34222eaee923fddee9b9wrowe @cd $(DSF_DIR); pwd; $(MAKE) all.targ
1582553026e5e3a1921a34222eaee923fddee9b9wrowe
1582553026e5e3a1921a34222eaee923fddee9b9wrowe$(GENLIB): FRC
1582553026e5e3a1921a34222eaee923fddee9b9wrowe @(cd $(GENLIB_DIR); pwd; $(MAKE) all.targ)
1582553026e5e3a1921a34222eaee923fddee9b9wrowe @pwd
bd214bbc8d9db9d6d1dcb6b24462e6d1da8e8bbbstoddard
bd214bbc8d9db9d6d1dcb6b24462e6d1da8e8bbbstoddard$(PLATLIB):
bd214bbc8d9db9d6d1dcb6b24462e6d1da8e8bbbstoddard ?@(cd $(PLAT_DIR); pwd; $(MAKE) all.targ)
064448ce15afe798e3c1dc0445fe2a30eb256bf6gregames ?@pwd
064448ce15afe798e3c1dc0445fe2a30eb256bf6gregames
1078b2c97bb39352bae929d2ed3f290a420470a7ianh#
762c82a23cc3ddaac92f941b2f871e94efdf4e6bgregames# CPU_OBJ now comprises of 2 object files which come from sun4 common
762c82a23cc3ddaac92f941b2f871e94efdf4e6bgregames# and from architecture dependent code. OBJS_DIR is prepended where
762c82a23cc3ddaac92f941b2f871e94efdf4e6bgregames# CPU_OBJ is defined to allow for building multiple CPU_OBJ's
fb50cf6056a42f94cc9e8eeabea1eb8d05e0aefcaaron#
fb50cf6056a42f94cc9e8eeabea1eb8d05e0aefcaaron$(CPULIB): $(CPU_OBJ)
fb50cf6056a42f94cc9e8eeabea1eb8d05e0aefcaaron $(LD) -o $@ -G -h 'cpu/$$CPU' $(CPU_OBJ)
fb50cf6056a42f94cc9e8eeabea1eb8d05e0aefcaaron
fb50cf6056a42f94cc9e8eeabea1eb8d05e0aefcaaron#
d56c38bfb6293bfff7c980858b19e32039106618jerenkrantz# The global lint target builds the kernel lint library (llib-lunix.ln)
d56c38bfb6293bfff7c980858b19e32039106618jerenkrantz# which is equivalent to a lint of /unix.o. Then all kernel modules for
d56c38bfb6293bfff7c980858b19e32039106618jerenkrantz# this architecture are linted against the kernel lint library.
d56c38bfb6293bfff7c980858b19e32039106618jerenkrantz#
7c301a1818939f85da8f3629cc3e9b5588610ef0jerenkrantz# Note: lint errors in the kernel lint library will be repeated for
7c301a1818939f85da8f3629cc3e9b5588610ef0jerenkrantz# each module. It is important that the kernel lint library
7c301a1818939f85da8f3629cc3e9b5588610ef0jerenkrantz# be clean to keep the textual output to a reasonable level.
a7fb6d64e059872d5410e873b7f492d62a5cf916rbb#
a7fb6d64e059872d5410e873b7f492d62a5cf916rbb
a7fb6d64e059872d5410e873b7f492d62a5cf916rbb$(LINT_LIB): $(LINT_LIB_DIR) $(LINTS)
a7fb6d64e059872d5410e873b7f492d62a5cf916rbb @-$(ECHO) "\n$(UNIX): (library construction):"
a7fb6d64e059872d5410e873b7f492d62a5cf916rbb @$(LINT) -o $(UNIX) $(LINTFLAGS) $(LINTS)
a985ccb3ebd4be0fda23a0ce9ad95fd233089463trawick @$(MV) $(@F) $@
a985ccb3ebd4be0fda23a0ce9ad95fd233089463trawick
a985ccb3ebd4be0fda23a0ce9ad95fd233089463trawicklintlib: $(LINT_DEPS)
a985ccb3ebd4be0fda23a0ce9ad95fd233089463trawick
a985ccb3ebd4be0fda23a0ce9ad95fd233089463trawick#
af262486b3d1c33299307195a715bd1e373f99afrbb# Include common targets.
af262486b3d1c33299307195a715bd1e373f99afrbb#
af262486b3d1c33299307195a715bd1e373f99afrbbinclude $(UTSBASE)/sun4u/opl/Makefile.targ
af262486b3d1c33299307195a715bd1e373f99afrbb