Makefile revision 986fd29a0dc13f7608ef7f508f6e700bd7bc2720
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User#
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater# CDDL HEADER START
c7ef13f6c9ef4436bc804b150e0a93307b11fa27Tinderbox User#
c7ef13f6c9ef4436bc804b150e0a93307b11fa27Tinderbox User# The contents of this file are subject to the terms of the
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User# Common Development and Distribution License (the "License").
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User# You may not use this file except in compliance with the License.
c57668a2fbbe558c1bd21652813616f2f517c469Tinderbox User#
5e047890ac9b745db060d95f7d1b4f876511240dTinderbox User# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
137fdbc214e99c4cbe57551e9e14f2015c2e42aeTinderbox User# or http://www.opensolaris.org/os/licensing.
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User# See the License for the specific language governing permissions
bed0874e1a09e810575328c4bfc346a47514b69fMark Andrews# and limitations under the License.
02b47c5d62e1e827743684c28a08e871da454a2dMark Andrews#
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User# When distributing Covered Code, include this CDDL HEADER in each
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
e20309353e6246485c521278131d3fced73d7957Tinderbox User# If applicable, add the following below this CDDL HEADER, with the
e20309353e6246485c521278131d3fced73d7957Tinderbox User# fields enclosed by brackets "[]" replaced with your own identifying
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# information: Portions Copyright [yyyy] [name of copyright owner]
9a5217f827ac0e006016745e5305b31dc0c7767fTinderbox User#
3cc98b8ecedcbc8465f1cf2740b966b315662430Automatic Updater# CDDL HEADER END
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews#
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
e20309353e6246485c521278131d3fced73d7957Tinderbox User#
e20309353e6246485c521278131d3fced73d7957Tinderbox User# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# Use is subject to license terms.
df4ebd8217d02dafc12145b55c4d93d0255d1ec7Tinderbox User#
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews# ident "%Z%%M% %I% %E% SMI"
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater#
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater#
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater# This makefile drives the production of unix (and unix.o).
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson#
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater# sun4u serengeti implementation architecture dependent
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User#
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt#
e130ab53e992670e2a2ecf043976ac09f21358d1Automatic Updater# Path to the base of the uts directory tree (usually /usr/src/uts).
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater#
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan HuntUTSBASE = ../../..
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater
24934f08b9ff81c2be711e566e8002d145573031Tinderbox User#
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater# Define the module and object file sets.
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt#
24934f08b9ff81c2be711e566e8002d145573031Tinderbox UserUNIX = unix
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox UserOBJECTS = $(SPECIAL_OBJS:%=$(OBJS_DIR)/%) \
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt $(CORE_OBJS:%=$(OBJS_DIR)/%) \
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User $(MACH_NOT_YET_KMODS:%=$(OBJS_DIR)/%)
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic UpdaterLINTS = $(SPECIAL_OBJS:%.o=$(LINTS_DIR)/%.ln) \
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater $(CORE_OBJS:%.o=$(LINTS_DIR)/%.ln) \
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater $(MACH_NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln) \
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updater $(LINTS_DIR)/vers.ln \
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updater $(LINTS_DIR)/modstubs.ln
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic UpdaterKRTLD_MAPFILE = $(UTSBASE)/sparc/krtld/mapfile
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic UpdaterKRTLD_OBJECTS = $(KRTLD_OBJS:%=$(OBJS_DIR)/%)
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic UpdaterKRTLD_O = $(OBJS_DIR)/krtld.o
eabc9c3c07cd956d3c436bd7614cb162dabdda76Mark Andrews
eabc9c3c07cd956d3c436bd7614cb162dabdda76Mark AndrewsROOTMODULE = $(ROOT_SERENGETI_KERN_DIR)/$(UNIX)
eabc9c3c07cd956d3c436bd7614cb162dabdda76Mark AndrewsUNIX_BIN = $(OBJS_DIR)/$(UNIX)
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User
e20309353e6246485c521278131d3fced73d7957Tinderbox UserLIBS = $(GENLIB) $(PLATLIB) $(CPULIB)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
24934f08b9ff81c2be711e566e8002d145573031Tinderbox UserGENUNIX = genunix
e20309353e6246485c521278131d3fced73d7957Tinderbox UserGENUNIX_DIR = ../../$(GENUNIX)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsGENOPTS = -L $(GENUNIX_DIR)/$(OBJS_DIR) -l $(GENUNIX)
7feccf248d2a20a2ae48b290f58ded5abc853e9aTinderbox User
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsCPU_DIR = .
c59750de3ea3c7d5890000fb4606e8f5835a52aaTinderbox UserCPUOPTS = -L $(CPU_DIR)/$(OBJS_DIR) -l $(CPUNAME)
80faf1588895fd26490f82f95a7a1b771df1c324Automatic Updater
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsPLAT_DIR = ../../platmod
ec7751119a08c6a7250f3187beed69a8b836d349Tinderbox UserPLATOPTS = -L $(PLAT_DIR)/$(OBJS_DIR) -l $(PLATMOD)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
114f7780384371121918624ae2c80ecfce545683Tinderbox UserLIBOPTS = $(GENOPTS) $(PLATOPTS) $(CPUOPTS)
693c4232dfdffaff672197d4b9fea944c64cf80aAutomatic Updater
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsCTFEXTRAOBJS = $(OBJS_DIR)/vers.o
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson#
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater# Include common rules.
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater#
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrewsinclude $(UTSBASE)/sun4u/serengeti/Makefile.serengeti
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson#
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater# Define targets
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater#
91216cff91b34c9ff6e846dc23f248219cafe660Andreas GustafssonALL_TARGET = $(UNIX_BIN)
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic UpdaterLINT_TARGET = $(LINT_LIB)
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox UserINSTALL_TARGET = $(UNIX_BIN) $(ROOTMODULE)
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews#
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User# Overrides
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User#
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark AndrewsALL_BUILDS = $(ALL_BUILDSONLY64)
2a31bd531072824ef252c18303859d6af7451b00Francis DupontDEF_BUILDS = $(DEF_BUILDSONLY64)
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox UserSYM_BUILDS = $(DEF_BUILDSONLY64)
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox UserCLEANLINTFILES += $(LINT32_FILES)
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews#
2ba8f584b97cbab864570e38fd26b8cb90961428Tinderbox User# This is UNIX_DIR. Use a short path.
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User#
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsUNIX_DIR = .
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews
bed0874e1a09e810575328c4bfc346a47514b69fMark Andrews#
24bf1e02f03577db0feb50b80238c4150c96d05dAutomatic Updater# Overrides
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews#
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark AndrewsCLEANFILES += $(UNIX_O) $(MODSTUBS_O) $(KRTLD_O) $(KRTLD_OBJECTS) \
2ba8f584b97cbab864570e38fd26b8cb90961428Tinderbox User $(OBJS_DIR)/vers.c $(OBJS_DIR)/vers.o \
a308b69ac66fadf66863484f301314d6e6a3f1d2Automatic Updater $(CPU_OBJ) $(CPULIB) \
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews $(DTRACESTUBS_O) $(DTRACESTUBS)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox UserCLOBBERFILES = $(CLEANFILES) $(UNIX_BIN)
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark AndrewsCLEANLINTFILES += $(LINT_LIB)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews#
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews# lint pass one enforcement
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews# Turn on doubleword alignment for 64 bit counter timer registers
01a5c5503482fb3ba52088bf0178a7213273bf96Mark Andrews#
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox UserCFLAGS += $(CCVERBOSE) -dalign
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews
df4ebd8217d02dafc12145b55c4d93d0255d1ec7Tinderbox User#
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updater# Default build targets.
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater#
fe80a4909bf62b602feaf246866e9d29f7654194Automatic Updater.KEEP_STATE:
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updaterdef: $(DEF_DEPS)
fe80a4909bf62b602feaf246866e9d29f7654194Automatic Updater
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updaterall: $(ALL_DEPS)
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonclean: $(CLEAN_DEPS)
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrewsclobber: $(CLOBBER_DEPS)
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
dd65eb1efb40b1c47d57963192bfc54873b219beAutomatic Updaterlint: $(LINT_DEPS)
dd65eb1efb40b1c47d57963192bfc54873b219beAutomatic Updater
dd65eb1efb40b1c47d57963192bfc54873b219beAutomatic Updaterclean.lint: $(CLEAN_LINT_DEPS)
133e6d43fa82e80d3798be4de00f4540f485ec6cAutomatic Updater
133e6d43fa82e80d3798be4de00f4540f485ec6cAutomatic Updaterinstall: $(INSTALL_DEPS)
133e6d43fa82e80d3798be4de00f4540f485ec6cAutomatic Updater
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updatersymcheck: $(SYM_DEPS)
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
f2770f6b39a9b2a98afb7a11ed105f73f1570c1eAutomatic Updater$(UNIX_BIN): $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(MAPFILE) $(LIBS) \
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User $(DTRACESTUBS)
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews $(LD) -dy -b -o $@ -e _start -M $(MAPFILE) \
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
c7ef13f6c9ef4436bc804b150e0a93307b11fa27Tinderbox User $(CTFMERGE_UNIQUIFY_AGAINST_GENUNIX)
c7ef13f6c9ef4436bc804b150e0a93307b11fa27Tinderbox User $(POST_PROCESS)
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
f132a836c4e386b1af045dd8fe7106ae61b90bffAutomatic Updatersymcheck.targ: $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(LIBS)
d642d3857129678797a01adee14fbd70335b05a9Mark Andrews $(LD) -dy -b -o $(SYM_MOD) -M $(MAPFILE) \
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews $(UNIX_O) $(KRTLD_O) $(MODSTUBS_O) $(LIBOPTS) $(DTRACESTUBS)
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews
5f33078b538b3d317917deb962bd057b2a888db1Tinderbox User$(UNIX_O): $(OBJECTS) $(OBJS_DIR)/vers.o
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User $(LD) -r -o $@ $(OBJECTS) $(OBJS_DIR)/vers.o
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews
269519eeb959d905ed125f96426e01d725c3b597Tinderbox User$(KRTLD_O): $(KRTLD_OBJECTS)
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater $(LD) -r -o $@ -M $(KRTLD_MAPFILE) $(KRTLD_OBJECTS)
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews#
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews# Special rules for generating assym.h for inclusion in assembly files.
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updater#
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews$(DSF_DIR)/$(OBJS_DIR)/assym.h: FRC
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox User @cd $(DSF_DIR); $(MAKE) all.targ
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews$(GENLIB): FRC
bc0a53583d92309bebcf93c408e2f3247ebd3d3cAutomatic Updater @(cd $(GENLIB_DIR); pwd; $(MAKE) all.targ)
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater @pwd
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updater$(PLATLIB):
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater ?@(cd $(PLAT_DIR); pwd; $(MAKE) all.targ)
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater ?@pwd
7f79131f9a8e804b93c57f3c679065cce878b726Automatic Updater#
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updater# CPU_OBJ now comprises of 2 object files which come from sun4 common
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# and from architecture dependent code. OBJS_DIR is prepended where
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews# CPU_OBJ is defined to allow for building multiple CPU_OBJ's
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews#
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater$(CPULIB): $(CPU_OBJ)
19b3dc94bce93fa76bd7e066f9298630dbc9dcb4Automatic Updater $(BUILD.SO) $(CPU_OBJ)
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater#
7f94d9a8162c9a96b56e66176702b66e79d8e1a2Automatic Updater# The global lint target builds the kernel lint library (llib-lunix.ln)
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# which is equivalent to a lint of /unix.o. Then all kernel modules for
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# this architecture are linted against the kernel lint library.
5ecad47f69b3fd945472ab2900a9ff826a7ce2f6Automatic Updater#
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews# Note: lint errors in the kernel lint library will be repeated for
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews# each module. It is important that the kernel lint library
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox User# be clean to keep the textual output to a reasonable level.
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox User#
7262eb86f2b465822206122921e2f357218f0cfdAutomatic Updater
96ea71632887c58a9d00f47eb318bf76b35903c3Mark Andrews$(LINT_LIB): $(LINT_LIB_DIR) $(LINTS)
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater @-$(ECHO) "\n$(UNIX): (library construction):"
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updater @$(LINT) -o $(UNIX) $(LINTFLAGS) $(LINTS)
bbb069be941f649228760edcc241122933c066d2Automatic Updater @$(MV) $(@F) $@
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updater
4cda4fd158d6ded5586bacea8c388445d99611eaAutomatic Updaterlintlib: $(LINT_DEPS)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews#
80faf1588895fd26490f82f95a7a1b771df1c324Automatic Updater# Include common targets.
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews#
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterinclude $(UTSBASE)/sun4u/serengeti/Makefile.targ
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox User