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