xref: /titanic_50/usr/src/uts/sun4u/Makefile.sun4u (revision 7c478bd95313f5f23a4c958a745db2134aa03244)
1*7c478bd9Sstevel@tonic-gate#
2*7c478bd9Sstevel@tonic-gate# CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate#
4*7c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate# Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate# (the "License").  You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate# with the License.
8*7c478bd9Sstevel@tonic-gate#
9*7c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate# and limitations under the License.
13*7c478bd9Sstevel@tonic-gate#
14*7c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate#
20*7c478bd9Sstevel@tonic-gate# CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate#
22*7c478bd9Sstevel@tonic-gate#
23*7c478bd9Sstevel@tonic-gate# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24*7c478bd9Sstevel@tonic-gate# Use is subject to license terms.
25*7c478bd9Sstevel@tonic-gate#
26*7c478bd9Sstevel@tonic-gate# ident	"%Z%%M%	%I%	%E% SMI"
27*7c478bd9Sstevel@tonic-gate#
28*7c478bd9Sstevel@tonic-gate#	This makefile contains the common definitions for the sun4u unix
29*7c478bd9Sstevel@tonic-gate#	and all sun4u implementation architecture dependent modules.
30*7c478bd9Sstevel@tonic-gate#
31*7c478bd9Sstevel@tonic-gate
32*7c478bd9Sstevel@tonic-gate#
33*7c478bd9Sstevel@tonic-gate#	Machine type (implementation architecture):
34*7c478bd9Sstevel@tonic-gate#
35*7c478bd9Sstevel@tonic-gatePLATFORM	 = sun4u
36*7c478bd9Sstevel@tonic-gatePROMIF		 = ieee1275
37*7c478bd9Sstevel@tonic-gatePSMBASE		 = $(UTSBASE)/../psm
38*7c478bd9Sstevel@tonic-gate
39*7c478bd9Sstevel@tonic-gate#
40*7c478bd9Sstevel@tonic-gate# Definitions for the platform-specific /platform directories.
41*7c478bd9Sstevel@tonic-gate#
42*7c478bd9Sstevel@tonic-gate# PLATFORMS designates those sun4u machines which have no platform
43*7c478bd9Sstevel@tonic-gate# specific code.
44*7c478bd9Sstevel@tonic-gate#
45*7c478bd9Sstevel@tonic-gate# IMPLEMENTATIONS is used to designate sun4u machines which do have
46*7c478bd9Sstevel@tonic-gate# platform specific modules (perhaps including their own unix).  All
47*7c478bd9Sstevel@tonic-gate# code specific to a given implementation resides in the appropriately
48*7c478bd9Sstevel@tonic-gate# named subdirectory.   This requires these platforms to have their
49*7c478bd9Sstevel@tonic-gate# own Makefiles to define ROOT_PLAT_DIRS, USR_PLAT_DIRS, etc.
50*7c478bd9Sstevel@tonic-gate#
51*7c478bd9Sstevel@tonic-gate# So if we had an implementation named 'foo', we would need the following
52*7c478bd9Sstevel@tonic-gate# Makefiles in the foo subdirectory:
53*7c478bd9Sstevel@tonic-gate#
54*7c478bd9Sstevel@tonic-gate#	sun4u/foo/Makefile
55*7c478bd9Sstevel@tonic-gate#	sun4u/foo/Makefile.foo
56*7c478bd9Sstevel@tonic-gate#	sun4u/foo/Makefile.targ
57*7c478bd9Sstevel@tonic-gate#
58*7c478bd9Sstevel@tonic-gate
59*7c478bd9Sstevel@tonic-gate#
60*7c478bd9Sstevel@tonic-gate# /usr/platform/$(IMPLEMENTED_PLATFORM) is created as a directory that
61*7c478bd9Sstevel@tonic-gate# all the $(LINKED_PLATFORMS) link to.
62*7c478bd9Sstevel@tonic-gate#
63*7c478bd9Sstevel@tonic-gateIMPLEMENTED_PLATFORM	= SUNW,Ultra-2
64*7c478bd9Sstevel@tonic-gate
65*7c478bd9Sstevel@tonic-gateLINKED_PLATFORMS	+= SUNW,Ultra-30
66*7c478bd9Sstevel@tonic-gateLINKED_PLATFORMS	+= SUNW,Ultra-60
67*7c478bd9Sstevel@tonic-gate
68*7c478bd9Sstevel@tonic-gate#
69*7c478bd9Sstevel@tonic-gate# all PLATFORMS that do not belong in the $(IMPLEMENTATIONS) list
70*7c478bd9Sstevel@tonic-gate# ie. all desktop platforms
71*7c478bd9Sstevel@tonic-gate#
72*7c478bd9Sstevel@tonic-gatePLATFORMS                = $(IMPLEMENTED_PLATFORM)
73*7c478bd9Sstevel@tonic-gatePLATFORMS               += $(LINKED_PLATFORMS)
74*7c478bd9Sstevel@tonic-gate
75*7c478bd9Sstevel@tonic-gate# IMPLEMENTATIONS is used by Install.sh, must not use backslash to continue
76*7c478bd9Sstevel@tonic-gate# the lines.
77*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		 = tazmo .WAIT
78*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= sunfire .WAIT
79*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= starfire .WAIT
80*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= javelin .WAIT
81*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= darwin .WAIT
82*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= quasar .WAIT
83*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= grover .WAIT
84*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= enchilada .WAIT
85*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= taco .WAIT
86*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= mpxu .WAIT
87*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= ents .WAIT
88*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= chalupa .WAIT
89*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= excalibur .WAIT
90*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= montecarlo .WAIT
91*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= makaha .WAIT
92*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= serengeti .WAIT
93*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= lw8 .WAIT
94*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= littleneck .WAIT
95*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= starcat .WAIT
96*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= daktari .WAIT
97*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= cherrystone .WAIT
98*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= fjlite .WAIT
99*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= lw2plus .WAIT
100*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= snowbird .WAIT
101*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= blade .WAIT
102*7c478bd9Sstevel@tonic-gateIMPLEMENTATIONS		+= chicago
103*7c478bd9Sstevel@tonic-gate
104*7c478bd9Sstevel@tonic-gate
105*7c478bd9Sstevel@tonic-gateROOT_PLAT_DIRS		= $(PLATFORMS:%=$(ROOT_PLAT_DIR)/%)
106*7c478bd9Sstevel@tonic-gateUSR_PLAT_DIRS		= $(PLATFORMS:%=$(USR_PLAT_DIR)/%)
107*7c478bd9Sstevel@tonic-gate
108*7c478bd9Sstevel@tonic-gateUSR_DESKTOP_DIR		= $(USR_PLAT_DIR)/$(IMPLEMENTED_PLATFORM)
109*7c478bd9Sstevel@tonic-gateUSR_DESKTOP_INC_DIR	= $(USR_DESKTOP_DIR)/include
110*7c478bd9Sstevel@tonic-gateUSR_DESKTOP_SBIN_DIR	= $(USR_DESKTOP_DIR)/sbin
111*7c478bd9Sstevel@tonic-gateUSR_DESKTOP_LIB_DIR	= $(USR_DESKTOP_DIR)/lib
112*7c478bd9Sstevel@tonic-gate
113*7c478bd9Sstevel@tonic-gate#
114*7c478bd9Sstevel@tonic-gate# Welcome to SPARC V9.
115*7c478bd9Sstevel@tonic-gate#
116*7c478bd9Sstevel@tonic-gate
117*7c478bd9Sstevel@tonic-gate#
118*7c478bd9Sstevel@tonic-gate#	Define supported builds
119*7c478bd9Sstevel@tonic-gate#
120*7c478bd9Sstevel@tonic-gateDEF_BUILDS	= $(DEF_BUILDS64)
121*7c478bd9Sstevel@tonic-gateALL_BUILDS	= $(ALL_BUILDS64)
122*7c478bd9Sstevel@tonic-gate
123*7c478bd9Sstevel@tonic-gate#
124*7c478bd9Sstevel@tonic-gate#	Everybody needs to know how to build modstubs.o and to locate unix.o
125*7c478bd9Sstevel@tonic-gate#
126*7c478bd9Sstevel@tonic-gateUNIX_DIR	 = $(UTSBASE)/$(PLATFORM)/unix
127*7c478bd9Sstevel@tonic-gateGENLIB_DIR	 = $(UTSBASE)/$(PLATFORM)/genunix
128*7c478bd9Sstevel@tonic-gateMODSTUBS_DIR	 = $(UNIX_DIR)
129*7c478bd9Sstevel@tonic-gateDSF_DIR		 = $(UTSBASE)/$(PLATFORM)/genassym
130*7c478bd9Sstevel@tonic-gateLINTS_DIR	 = $(OBJS_DIR)
131*7c478bd9Sstevel@tonic-gateLINT_LIB_DIR	 = $(UTSBASE)/$(PLATFORM)/lint-libs/$(OBJS_DIR)
132*7c478bd9Sstevel@tonic-gate
133*7c478bd9Sstevel@tonic-gateDTRACESTUBS_O	 = $(OBJS_DIR)/dtracestubs.o
134*7c478bd9Sstevel@tonic-gateDTRACESTUBS	 = $(OBJS_DIR)/libdtracestubs.so
135*7c478bd9Sstevel@tonic-gate
136*7c478bd9Sstevel@tonic-gateUNIX_O		 = $(UNIX_DIR)/$(OBJS_DIR)/unix.o
137*7c478bd9Sstevel@tonic-gateMODSTUBS_O	 = $(MODSTUBS_DIR)/$(OBJS_DIR)/modstubs.o
138*7c478bd9Sstevel@tonic-gateGENLIB	 	 = $(GENLIB_DIR)/$(OBJS_DIR)/libgenunix.so
139*7c478bd9Sstevel@tonic-gate
140*7c478bd9Sstevel@tonic-gateLINT_LIB	 = $(LINT_LIB_DIR)/llib-lunix.ln
141*7c478bd9Sstevel@tonic-gateGEN_LINT_LIB	 = $(LINT_LIB_DIR)/llib-lgenunix.ln
142*7c478bd9Sstevel@tonic-gate
143*7c478bd9Sstevel@tonic-gateLINT64_DIRS	 = $(LINT64_BUILDS:%=$(UTSBASE)/$(PLATFORM)/lint-libs/%)
144*7c478bd9Sstevel@tonic-gateLINT64_FILES	 = $(LINT64_DIRS:%=%/llib-l$(MODULE).ln)
145*7c478bd9Sstevel@tonic-gate
146*7c478bd9Sstevel@tonic-gate#
147*7c478bd9Sstevel@tonic-gate#	cpu and platform modules need to know how to build their own symcheck module
148*7c478bd9Sstevel@tonic-gate#
149*7c478bd9Sstevel@tonic-gatePLATMOD		 = platmod
150*7c478bd9Sstevel@tonic-gatePLATLIB		 = $(PLAT_DIR)/$(OBJS_DIR)/libplatmod.so
151*7c478bd9Sstevel@tonic-gate
152*7c478bd9Sstevel@tonic-gateCPUNAME		 = cpu
153*7c478bd9Sstevel@tonic-gateCPULIB		 = $(CPU_DIR)/$(OBJS_DIR)/libcpu.so
154*7c478bd9Sstevel@tonic-gate
155*7c478bd9Sstevel@tonic-gateSYM_MOD		 = $(OBJS_DIR)/unix.sym
156*7c478bd9Sstevel@tonic-gate
157*7c478bd9Sstevel@tonic-gate#
158*7c478bd9Sstevel@tonic-gate#	Include the makefiles which define build rule templates, the
159*7c478bd9Sstevel@tonic-gate#	collection of files per module, and a few specific flags. Note
160*7c478bd9Sstevel@tonic-gate#	that order is significant, just as with an include path. The
161*7c478bd9Sstevel@tonic-gate#	first build rule template which matches the files name will be
162*7c478bd9Sstevel@tonic-gate#	used. By including these in order from most machine dependent
163*7c478bd9Sstevel@tonic-gate#	to most machine independent, we allow a machine dependent file
164*7c478bd9Sstevel@tonic-gate#	to be used in preference over a machine independent version
165*7c478bd9Sstevel@tonic-gate#	(Such as a machine specific optimization, which preserves the
166*7c478bd9Sstevel@tonic-gate#	interfaces.)
167*7c478bd9Sstevel@tonic-gate#
168*7c478bd9Sstevel@tonic-gateinclude $(UTSBASE)/sun4/Makefile.files
169*7c478bd9Sstevel@tonic-gateinclude $(UTSBASE)/$(PLATFORM)/Makefile.files
170*7c478bd9Sstevel@tonic-gateinclude $(UTSBASE)/sfmmu/Makefile.files
171*7c478bd9Sstevel@tonic-gateinclude $(UTSBASE)/sparc/v9/Makefile.files
172*7c478bd9Sstevel@tonic-gateinclude $(UTSBASE)/sparc/Makefile.files
173*7c478bd9Sstevel@tonic-gateinclude $(UTSBASE)/sun/Makefile.files
174*7c478bd9Sstevel@tonic-gateinclude $(SRC)/psm/promif/$(PROMIF)/common/Makefile.files
175*7c478bd9Sstevel@tonic-gateinclude $(SRC)/psm/promif/$(PROMIF)/$(PLATFORM)/Makefile.files
176*7c478bd9Sstevel@tonic-gateinclude $(UTSBASE)/common/Makefile.files
177*7c478bd9Sstevel@tonic-gate
178*7c478bd9Sstevel@tonic-gate#
179*7c478bd9Sstevel@tonic-gate#	Include machine independent rules. Note that this does not imply
180*7c478bd9Sstevel@tonic-gate#	that the resulting module from rules in Makefile.uts is	machine
181*7c478bd9Sstevel@tonic-gate#	independent. Only that the build rules are machine independent.
182*7c478bd9Sstevel@tonic-gate#
183*7c478bd9Sstevel@tonic-gateinclude $(UTSBASE)/Makefile.uts
184*7c478bd9Sstevel@tonic-gate
185*7c478bd9Sstevel@tonic-gate#
186*7c478bd9Sstevel@tonic-gate#	machine specific optimization, override default in Makefile.master
187*7c478bd9Sstevel@tonic-gate#
188*7c478bd9Sstevel@tonic-gateCC_XARCH	= -xarch=v9a
189*7c478bd9Sstevel@tonic-gateAS_XARCH	= -xarch=v9a
190*7c478bd9Sstevel@tonic-gateCOPTIMIZE	= -xO3
191*7c478bd9Sstevel@tonic-gateCCMODE		= -Xa
192*7c478bd9Sstevel@tonic-gate
193*7c478bd9Sstevel@tonic-gateCFLAGS		= -xchip=ultra $(CCABS32) $(CCREGSYM)
194*7c478bd9Sstevel@tonic-gateCFLAGS		+= $(CC_XARCH)
195*7c478bd9Sstevel@tonic-gateCFLAGS		+= $(COPTIMIZE)
196*7c478bd9Sstevel@tonic-gateCFLAGS		+= $(EXTRA_CFLAGS)
197*7c478bd9Sstevel@tonic-gateCFLAGS		+= $(XAOPT)
198*7c478bd9Sstevel@tonic-gateCFLAGS		+= $(INLINES)
199*7c478bd9Sstevel@tonic-gateCFLAGS		+= $(CCMODE)
200*7c478bd9Sstevel@tonic-gateCFLAGS		+= $(SPACEFLAG)
201*7c478bd9Sstevel@tonic-gateCFLAGS		+= $(CERRWARN)
202*7c478bd9Sstevel@tonic-gateCFLAGS		+= $(CTF_FLAGS)
203*7c478bd9Sstevel@tonic-gateCFLAGS		+= $(C99MODE)
204*7c478bd9Sstevel@tonic-gateCFLAGS		+= $(CCUNBOUND)
205*7c478bd9Sstevel@tonic-gateCFLAGS		+= -xregs=no%float
206*7c478bd9Sstevel@tonic-gate
207*7c478bd9Sstevel@tonic-gateASFLAGS		+= $(AS_XARCH)
208*7c478bd9Sstevel@tonic-gate
209*7c478bd9Sstevel@tonic-gateAS_INC_PATH	+= -I$(DSF_DIR)/$(OBJS_DIR)
210*7c478bd9Sstevel@tonic-gate
211*7c478bd9Sstevel@tonic-gateLINT_KMODS	+= $(GENUNIX_KMODS)
212*7c478bd9Sstevel@tonic-gate
213*7c478bd9Sstevel@tonic-gateLINT_DEFS	= -Xarch=v9
214*7c478bd9Sstevel@tonic-gate
215*7c478bd9Sstevel@tonic-gate#
216*7c478bd9Sstevel@tonic-gate#	The following must be defined for all implementations:
217*7c478bd9Sstevel@tonic-gate#
218*7c478bd9Sstevel@tonic-gate#	MAPFILE:		ld mapfile for the build of kernel/unix.
219*7c478bd9Sstevel@tonic-gate#	MODSTUBS:		Module stubs source file.
220*7c478bd9Sstevel@tonic-gate#	GENCONST_SRC:		genconst.c
221*7c478bd9Sstevel@tonic-gate#	OFFSETS:		offsets.in
222*7c478bd9Sstevel@tonic-gate#	PLATFORM_OFFSETS:	Platform specific mach_offsets.in
223*7c478bd9Sstevel@tonic-gate#	FDOFFSETS:		fd_offsets.in
224*7c478bd9Sstevel@tonic-gate#
225*7c478bd9Sstevel@tonic-gateMAPFILE		 = $(UTSBASE)/$(PLATFORM)/conf/Mapfile
226*7c478bd9Sstevel@tonic-gateMODSTUBS	 = $(UTSBASE)/sparc/ml/modstubs.s
227*7c478bd9Sstevel@tonic-gateGENCONST_SRC	 = $(UTSBASE)/sun4/ml/genconst.c
228*7c478bd9Sstevel@tonic-gateOFFSETS		 = $(UTSBASE)/sun4/ml/offsets.in
229*7c478bd9Sstevel@tonic-gatePLATFORM_OFFSETS = $(UTSBASE)/sun4u/ml/mach_offsets.in
230*7c478bd9Sstevel@tonic-gateFDOFFSETS 	 = $(UTSBASE)/sun/io/fd_offsets.in
231*7c478bd9Sstevel@tonic-gate
232*7c478bd9Sstevel@tonic-gate#
233*7c478bd9Sstevel@tonic-gate#	Define the actual specific platforms
234*7c478bd9Sstevel@tonic-gate#
235*7c478bd9Sstevel@tonic-gate
236*7c478bd9Sstevel@tonic-gateMACHINE_DEFS	= -D$(PLATFORM) -D_MACHDEP -DSFMMU
237*7c478bd9Sstevel@tonic-gate
238*7c478bd9Sstevel@tonic-gate$(MPSAS_BUILD)MACHINE_DEFS      += -DMPSAS
239*7c478bd9Sstevel@tonic-gate
240*7c478bd9Sstevel@tonic-gate#
241*7c478bd9Sstevel@tonic-gate#	Software workarounds for hardware "features"
242*7c478bd9Sstevel@tonic-gate#
243*7c478bd9Sstevel@tonic-gate
244*7c478bd9Sstevel@tonic-gateinclude $(UTSBASE)/$(PLATFORM)/Makefile.workarounds
245*7c478bd9Sstevel@tonic-gate
246*7c478bd9Sstevel@tonic-gate#
247*7c478bd9Sstevel@tonic-gate#	Debugging level
248*7c478bd9Sstevel@tonic-gate#
249*7c478bd9Sstevel@tonic-gate#	Special knowledge of which special debugging options effect which
250*7c478bd9Sstevel@tonic-gate#	file is used to optimize the build if these flags are changed.
251*7c478bd9Sstevel@tonic-gate#
252*7c478bd9Sstevel@tonic-gate#	XXX: The above could possibly be done for more flags and files, but
253*7c478bd9Sstevel@tonic-gate#	     is left as an experiment to the interested reader. Be forewarned,
254*7c478bd9Sstevel@tonic-gate#	     that excessive use could lead to maintenance difficulties.
255*7c478bd9Sstevel@tonic-gate#
256*7c478bd9Sstevel@tonic-gate#	Note: kslice can be enabled for the sun4u, but is disabled by default
257*7c478bd9Sstevel@tonic-gate#	      in all cases.
258*7c478bd9Sstevel@tonic-gate#
259*7c478bd9Sstevel@tonic-gate
260*7c478bd9Sstevel@tonic-gateDEBUG_DEFS_OBJ64	=
261*7c478bd9Sstevel@tonic-gateDEBUG_DEFS_DBG64	= -DDEBUG
262*7c478bd9Sstevel@tonic-gateDEBUG_DEFS		= $(DEBUG_DEFS_$(BUILD_TYPE))
263*7c478bd9Sstevel@tonic-gate
264*7c478bd9Sstevel@tonic-gateDEBUG_COND_OBJ64	:sh = echo \\043
265*7c478bd9Sstevel@tonic-gateDEBUG_COND_DBG64	=
266*7c478bd9Sstevel@tonic-gateIF_DEBUG_OBJ		= $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/
267*7c478bd9Sstevel@tonic-gate
268*7c478bd9Sstevel@tonic-gate$(IF_DEBUG_OBJ)trap.o		:=	DEBUG_DEFS	+= -DTRAPDEBUG
269*7c478bd9Sstevel@tonic-gate$(IF_DEBUG_OBJ)mach_trap.o	:=	DEBUG_DEFS	+= -DTRAPDEBUG
270*7c478bd9Sstevel@tonic-gate$(IF_DEBUG_OBJ)syscall_trap.o	:=	DEBUG_DEFS	+= -DSYSCALLTRACE
271*7c478bd9Sstevel@tonic-gate$(IF_DEBUG_OBJ)clock.o		:=	DEBUG_DEFS	+= -DKSLICE=0
272*7c478bd9Sstevel@tonic-gate
273*7c478bd9Sstevel@tonic-gateIF_TRAPTRACE_OBJ = $(IF_DEBUG_OBJ)
274*7c478bd9Sstevel@tonic-gate# comment this out for a non-debug kernel with TRAPTRACE
275*7c478bd9Sstevel@tonic-gate#IF_TRAPTRACE_OBJ = $(OBJS_DIR)/
276*7c478bd9Sstevel@tonic-gate
277*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)locore.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
278*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)mach_locore.o	:=	DEBUG_DEFS	+= -DTRAPTRACE
279*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)mlsetup.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
280*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)syscall_trap.o 	:=	DEBUG_DEFS	+= -DTRAPTRACE
281*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)startup.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
282*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)mach_startup.o	:=	DEBUG_DEFS	+= -DTRAPTRACE
283*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)mp_startup.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
284*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)mach_mp_startup.o 	:=	DEBUG_DEFS	+= -DTRAPTRACE
285*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)cpu_states.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
286*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)mach_cpu_states.o	:=	DEBUG_DEFS	+= -DTRAPTRACE
287*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)interrupt.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
288*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)mach_interrupt.o	:=	DEBUG_DEFS	+= -DTRAPTRACE
289*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)mach_sfmmu_asm.o	:=	DEBUG_DEFS	+= -DTRAPTRACE
290*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)sfmmu_asm.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
291*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)trap_table.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
292*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)xc.o			:=	DEBUG_DEFS	+= -DTRAPTRACE
293*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)mach_xc.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
294*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)wbuf.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
295*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)trap.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
296*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)mach_trap.o		:=	DEBUG_DEFS	+= -DTRAPTRACE
297*7c478bd9Sstevel@tonic-gate$(IF_TRAPTRACE_OBJ)cheetah_asm.o	:=	DEBUG_DEFS	+= -DTRAPTRACE
298*7c478bd9Sstevel@tonic-gate
299*7c478bd9Sstevel@tonic-gate# Comment these out if you don't want dispatcher lock statistics.
300*7c478bd9Sstevel@tonic-gate
301*7c478bd9Sstevel@tonic-gate#$(IF_DEBUG_OBJ)lock_prim.o	:= DEBUG_DEFS	+= -DDISP_LOCK_STATS
302*7c478bd9Sstevel@tonic-gate#$(IF_DEBUG_OBJ)disp.o		:= DEBUG_DEFS	+= -DDISP_LOCK_STATS
303*7c478bd9Sstevel@tonic-gate
304*7c478bd9Sstevel@tonic-gate# Comment these out if you don't want dispatcher debugging
305*7c478bd9Sstevel@tonic-gate
306*7c478bd9Sstevel@tonic-gate#$(IF_DEBUG_OBJ)lock_prim.o	:= DEBUG_DEFS	+= -DDISP_DEBUG
307*7c478bd9Sstevel@tonic-gate
308*7c478bd9Sstevel@tonic-gate#
309*7c478bd9Sstevel@tonic-gate#	Build `options'. These are mostly historical and the need for these
310*7c478bd9Sstevel@tonic-gate#	is largely removed by the module technology. However, the static
311*7c478bd9Sstevel@tonic-gate#	build will continue to require these.
312*7c478bd9Sstevel@tonic-gate#
313*7c478bd9Sstevel@tonic-gateOPTION_DEFS	 = -DC2_AUDIT
314*7c478bd9Sstevel@tonic-gate
315*7c478bd9Sstevel@tonic-gate#
316*7c478bd9Sstevel@tonic-gate#	Collect the preprocessor definitions to be associated with *all*
317*7c478bd9Sstevel@tonic-gate#	files.
318*7c478bd9Sstevel@tonic-gate#
319*7c478bd9Sstevel@tonic-gateALL_DEFS	 = $(MACHINE_DEFS) $(WORKAROUND_DEFS) $(DEBUG_DEFS) \
320*7c478bd9Sstevel@tonic-gate		   $(OPTION_DEFS)
321*7c478bd9Sstevel@tonic-gateGENCONST_DEFS	 = $(MACHINE_DEFS) $(OPTION_DEFS)
322*7c478bd9Sstevel@tonic-gate
323*7c478bd9Sstevel@tonic-gate#
324*7c478bd9Sstevel@tonic-gate# ----- TRANSITIONAL SECTION --------------------------------------------------
325*7c478bd9Sstevel@tonic-gate#
326*7c478bd9Sstevel@tonic-gate
327*7c478bd9Sstevel@tonic-gate#
328*7c478bd9Sstevel@tonic-gate#	Not everything which *should* be a module is a module yet. The
329*7c478bd9Sstevel@tonic-gate#	following is a list of such objects which are currently part of
330*7c478bd9Sstevel@tonic-gate#	the base kernel but should soon become kmods.
331*7c478bd9Sstevel@tonic-gate#
332*7c478bd9Sstevel@tonic-gateMACH_NOT_YET_KMODS	 = $(AUTOCONF_OBJS)
333*7c478bd9Sstevel@tonic-gate
334*7c478bd9Sstevel@tonic-gate#
335*7c478bd9Sstevel@tonic-gate# ----- END OF TRANSITIONAL SECTION -------------------------------------------
336*7c478bd9Sstevel@tonic-gate#
337*7c478bd9Sstevel@tonic-gate
338*7c478bd9Sstevel@tonic-gate#
339*7c478bd9Sstevel@tonic-gate#	The kernels modules which are "implementation architecture"
340*7c478bd9Sstevel@tonic-gate#	specific for this machine are enumerated below. Note that most
341*7c478bd9Sstevel@tonic-gate#	of these modules must exist (in one form or another) for each
342*7c478bd9Sstevel@tonic-gate#	architecture.
343*7c478bd9Sstevel@tonic-gate#
344*7c478bd9Sstevel@tonic-gate#	Common Drivers (usually pseudo drivers) (/kernel/drv):
345*7c478bd9Sstevel@tonic-gate#
346*7c478bd9Sstevel@tonic-gate
347*7c478bd9Sstevel@tonic-gate#
348*7c478bd9Sstevel@tonic-gate#	Machine Specific Driver Modules (/kernel/drv):
349*7c478bd9Sstevel@tonic-gate#
350*7c478bd9Sstevel@tonic-gate#	XXX: How many of these are really machine specific?
351*7c478bd9Sstevel@tonic-gate#
352*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= bbc_beep
353*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= cgsix
354*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= cpc
355*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= dma fd
356*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= rootnex sbusmem upa64s zs zsh
357*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= sbus
358*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= pcisch pcipsy simba
359*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= px
360*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= ebus
361*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= su
362*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= tod
363*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= sf
364*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= power
365*7c478bd9Sstevel@tonic-gateDRV_KMODS       += fcode
366*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= grbeep
367*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= pcf8584 mi2cv i2bsc max1617 seeprom tda8444 pca9556 ics951601 adm1031
368*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= lm75 ltc1427 pcf8591 pcf8574 smbus_ara ssc050 ssc100
369*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= pic16f819
370*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= pic16f747
371*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= scmi2c
372*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= us
373*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= ppm schppm jbusppm m1535ppm
374*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= mc-us3
375*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= mc-us3i
376*7c478bd9Sstevel@tonic-gateDRV_KMODS       += smbus
377*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= db21554
378*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= gpio_87317
379*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= isadma
380*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= sbbc
381*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= pmubus
382*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= pmugpio
383*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= rmcadm
384*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= rmc_comm
385*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= rmclomv
386*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= pmc
387*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= wrsmd
388*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= memtest
389*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= trapstat
390*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= dmfe
391*7c478bd9Sstevel@tonic-gateDRV_KMODS	+= ctsmc
392*7c478bd9Sstevel@tonic-gate
393*7c478bd9Sstevel@tonic-gate#
394*7c478bd9Sstevel@tonic-gate#	Exec Class Modules (/kernel/exec):
395*7c478bd9Sstevel@tonic-gate#
396*7c478bd9Sstevel@tonic-gateEXEC_KMODS	+=
397*7c478bd9Sstevel@tonic-gate
398*7c478bd9Sstevel@tonic-gate#
399*7c478bd9Sstevel@tonic-gate#	Scheduling Class Modules (/kernel/sched):
400*7c478bd9Sstevel@tonic-gate#
401*7c478bd9Sstevel@tonic-gateSCHED_KMODS	+=
402*7c478bd9Sstevel@tonic-gate
403*7c478bd9Sstevel@tonic-gate#
404*7c478bd9Sstevel@tonic-gate#	File System Modules (/kernel/fs):
405*7c478bd9Sstevel@tonic-gate#
406*7c478bd9Sstevel@tonic-gateFS_KMODS	+=
407*7c478bd9Sstevel@tonic-gate
408*7c478bd9Sstevel@tonic-gate#
409*7c478bd9Sstevel@tonic-gate#	Streams Modules (/kernel/strmod):
410*7c478bd9Sstevel@tonic-gate#
411*7c478bd9Sstevel@tonic-gateSTRMOD_KMODS	+= kb
412*7c478bd9Sstevel@tonic-gate
413*7c478bd9Sstevel@tonic-gate#
414*7c478bd9Sstevel@tonic-gate#	'System' Modules (/kernel/sys):
415*7c478bd9Sstevel@tonic-gate#
416*7c478bd9Sstevel@tonic-gateSYS_KMODS	+=
417*7c478bd9Sstevel@tonic-gate
418*7c478bd9Sstevel@tonic-gate#
419*7c478bd9Sstevel@tonic-gate#	'User' Modules (/kernel/misc):
420*7c478bd9Sstevel@tonic-gate#
421*7c478bd9Sstevel@tonic-gateMISC_KMODS	+= obpsym bootdev vis cpr platmod md5 sha1 i2c_svc
422*7c478bd9Sstevel@tonic-gateMISC_KMODS	+= sbd
423*7c478bd9Sstevel@tonic-gate
424*7c478bd9Sstevel@tonic-gateMISC_KMODS	+= fcodem fcpci gptwocfg gptwo_cpu pcicfg.e
425*7c478bd9Sstevel@tonic-gateMISC_KMODS	+= kmech_krb5
426*7c478bd9Sstevel@tonic-gateMISC_KMODS	+= zuluvm
427*7c478bd9Sstevel@tonic-gate
428*7c478bd9Sstevel@tonic-gate#
429*7c478bd9Sstevel@tonic-gate#	Software Cryptographic Providers (/kernel/crypto):
430*7c478bd9Sstevel@tonic-gate#
431*7c478bd9Sstevel@tonic-gateCRYPTO_KMODS	+= aes
432*7c478bd9Sstevel@tonic-gateCRYPTO_KMODS	+= arcfour
433*7c478bd9Sstevel@tonic-gateCRYPTO_KMODS	+= des
434*7c478bd9Sstevel@tonic-gateCRYPTO_KMODS	+= rsa
435*7c478bd9Sstevel@tonic-gate
436*7c478bd9Sstevel@tonic-gate#
437*7c478bd9Sstevel@tonic-gate#	generic-unix module (/kernel/genunix):
438*7c478bd9Sstevel@tonic-gate#
439*7c478bd9Sstevel@tonic-gateGENUNIX_KMODS	+= genunix
440*7c478bd9Sstevel@tonic-gate
441*7c478bd9Sstevel@tonic-gate#	'User' "Modules" excluded from the Full Kernel lint target:
442*7c478bd9Sstevel@tonic-gate#
443*7c478bd9Sstevel@tonic-gateNLMISC_KMODS	+= forthdebug
444*7c478bd9Sstevel@tonic-gate
445*7c478bd9Sstevel@tonic-gate#
446*7c478bd9Sstevel@tonic-gate#	Modules eXcluded from the product:
447*7c478bd9Sstevel@tonic-gate#
448*7c478bd9Sstevel@tonic-gateXMODS		+=
449*7c478bd9Sstevel@tonic-gate
450*7c478bd9Sstevel@tonic-gate#
451*7c478bd9Sstevel@tonic-gate#	cpu modules
452*7c478bd9Sstevel@tonic-gate#
453*7c478bd9Sstevel@tonic-gateCPU_KMODS	+= cheetah cheetahplus jalapeno serrano spitfire hummingbird
454*7c478bd9Sstevel@tonic-gate
455*7c478bd9Sstevel@tonic-gate#
456*7c478bd9Sstevel@tonic-gate#	sun4u 'TOD' Modules (/platform/.../kernel/tod):
457*7c478bd9Sstevel@tonic-gate#
458*7c478bd9Sstevel@tonic-gateTOD_KMODS	+= todds1287 todds1337 todmostek todstarfire todsg todstarcat
459*7c478bd9Sstevel@tonic-gateTOD_KMODS	+= todm5819 todm5819p_rmc todblade todm5823
460*7c478bd9Sstevel@tonic-gate
461*7c478bd9Sstevel@tonic-gate#
462*7c478bd9Sstevel@tonic-gate#	Performance Counter BackEnd Modules (/usr/kernel/pcbe):
463*7c478bd9Sstevel@tonic-gate#
464*7c478bd9Sstevel@tonic-gatePCBE_KMODS	+= us234_pcbe
465