1N/A# The contents of this file are subject to the terms of the
1N/A# Common Development and Distribution License (the "License").
1N/A# You may not use this file except in compliance with the License.
1N/A# See the License for the specific language governing permissions
1N/A# and limitations under the License.
1N/A# When distributing Covered Code, include this CDDL HEADER in each
1N/A# If applicable, add the following below this CDDL HEADER, with the
1N/A# fields enclosed by brackets "[]" replaced with your own identifying
1N/A# information: Portions Copyright [yyyy] [name of copyright owner]
1N/A# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
1N/A# Use is subject to license terms.
1N/A# ident "%Z%%M% %I% %E% SMI"
1N/A# This makefile contains the common definitions for all intel
1N/A# implementation architecture independent modules.
1N/A# Machine type (implementation architecture):
1N/A# Note that
unix.o must currently be selected from among the possible
1N/A# "implementation architectures". Note further, that
unix.o is only
1N/A# used as an optional error check for undefines so (theoretically)
1N/A# any "implementation architectures" could be used. We choose i86pc
1N/A# because it is the reference port.
1N/AMODSTUBS_DIR = $(UNIX_DIR)
1N/ADSF_DIR = $(UTSBASE)/$(PLATFORM)/genassym
1N/ALINTS_DIR = $(OBJS_DIR)
UNIX_O = $(UNIX_DIR)/$(OBJS_DIR)/
unix.oMODSTUBS_O = $(MODSTUBS_DIR)/$(OBJS_DIR)/
modstubs.o# Include the makefiles which define build rule templates, the
# collection of files per module, and a few specific flags. Note
# that order is significant, just as with an include path. The
# first build rule template which matches the files name will be
# used. By including these in order from most machine dependent
# to most machine independent, we allow a machine dependent file
# to be used in preference over a machine independent version
# (Such as a machine specific optimization, which preserves the
# ----- TRANSITIONAL SECTION --------------------------------------------------
# Not everything which *should* be a module is a module yet. The
# following is a list of such objects which are currently part of
# genunix but which might someday become kmods. This must be
# defined before we include
Makefile.uts, or else genunix's build
# won't be as parallel as we might like.
NOT_YET_KMODS = $(OLDPTY_OBJS) $(PTY_OBJS) $(MOD_OBJS)
# ----- END OF TRANSITIONAL SECTION -------------------------------------------
# Include machine independent rules. Note that this does not imply
# that the resulting module from rules in
Makefile.uts is machine
# independent. Only that the build rules are machine independent.
# The following must be defined for all implementations:
# Define supported builds
DEF_BUILDS = $(DEF_BUILDS64) $(DEF_BUILDS32)
ALL_BUILDS = $(ALL_BUILDS64) $(ALL_BUILDS32)
# x86 or amd64 inline templates
INLINES += $(INLINES_$(CLASS))
CFLAGS_XARCH_32 = $(i386_CFLAGS)
CFLAGS_XARCH_64 = $(amd64_CFLAGS)
CFLAGS_XARCH = $(CFLAGS_XARCH_$(CLASS))
COPTFLAG_32 = $(COPTFLAG)
COPTFLAG_64 = $(COPTFLAG64)
COPTIMIZE = $(COPTFLAG_$(CLASS))
CFLAGS += $(INLINES) -D_ASM_INLINES
ASFLAGS_XARCH_32 = $(i386_ASFLAGS)
ASFLAGS_XARCH_64 = $(amd64_ASFLAGS)
ASFLAGS_XARCH = $(ASFLAGS_XARCH_$(CLASS))
ASFLAGS += $(ASFLAGS_XARCH)
AS_INC_PATH += -I$(GENASSYM_DIR)/$(OBJS_DIR)
# Define the base directory for installation.
# Special knowledge of which special debugging options affect which
# file is used to optimize the build if these flags are changed.
DEBUG_DEFS_DBG32 = -DDEBUG
DEBUG_DEFS_DBG64 = -DDEBUG
DEBUG_DEFS = $(DEBUG_DEFS_$(BUILD_TYPE))
DEBUG_COND_OBJ32 :sh = echo \\043
DEBUG_COND_OBJ64 :sh = echo \\043
IF_DEBUG_OBJ = $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/
$(IF_DEBUG_OBJ)
syscall.o := DEBUG_DEFS += -DSYSCALLTRACE
$(IF_DEBUG_OBJ)
clock.o := DEBUG_DEFS += -DKSLICE=1
# This rather strange collection of definitions ensures that lint sees
# 'struct cpu' containing a fully declared embedded 'struct machcpu'
# There's something deeply dissatisfying about this.
LINTMACHFLAGS = -D_MACHDEP -I../../i86pc
$(LINTS_DIR)/
kcpc.ln := LINTFLAGS += $(LINTMACHFLAGS)
$(LINTS_DIR)/
kdi.ln := LINTFLAGS += $(LINTMACHFLAGS)
$(LINTS_DIR)/
msacct.ln := LINTFLAGS += $(LINTMACHFLAGS)
$(LINTS_DIR)/
thread.ln := LINTFLAGS += $(LINTMACHFLAGS)
# Collect the preprocessor definitions to be associated with *all*
ALL_DEFS = $(DEBUG_DEFS) $(OPTION_DEFS)
# The kernels modules which are "implementation architecture"
# specific for this machine are enumerated below. Note that most
# of these modules must exist (in one form or another) for each
# Common Drivers (usually pseudo drivers) (
/kernel/drv)
# DRV_KMODS are built both 32-bit and 64-bit
# DRV_KMODS_32 are built only 32-bit
# DRV_KMODS_64 are built only 64-bit
# Don't build some of these for OpenSolaris, since they will be
# replaced by binaries that are signed by Sun Release Engineering.
$(CLOSED_BUILD)DRV_KMODS += dca
$(CLOSED_BUILD)CLOSED_DRV_KMODS += audioens
$(CLOSED_BUILD)CLOSED_DRV_KMODS += audiovia823x
$(CLOSED_BUILD)CLOSED_DRV_KMODS += bmc
$(CLOSED_BUILD)CLOSED_DRV_KMODS += elxl
$(CLOSED_BUILD)CLOSED_DRV_KMODS += glm
$(CLOSED_BUILD)CLOSED_DRV_KMODS += iprb
$(CLOSED_BUILD)CLOSED_DRV_KMODS += llc2
$(CLOSED_BUILD)CLOSED_DRV_KMODS += marvell88sx
$(CLOSED_BUILD)CLOSED_DRV_KMODS += mpt
$(CLOSED_BUILD)CLOSED_DRV_KMODS_32 += ncrs
$(CLOSED_BUILD)CLOSED_DRV_KMODS += pcn
$(CLOSED_BUILD)CLOSED_DRV_KMODS += rtls
$(CLOSED_BUILD)CLOSED_DRV_KMODS_32 += sbpro
$(CLOSED_BUILD)CLOSED_DRV_KMODS += ixgb
# DTrace and DTrace Providers
# I/O framework test drivers
DRV_KMODS += tvhci tphci tclient
# PCMCIA specific module(s)
DRV_KMODS += pcata pcmem pcram
$(CLOSED_BUILD)CLOSED_DRV_KMODS += pcelx
$(CLOSED_BUILD)CLOSED_DRV_KMODS += pcser
# SCSI Enclosure Services driver
$(CLOSED_BUILD)CLOSED_DRV_KMODS += usbser_edge
DRV_KMODS += hci1394 scsa1394
# InfiniBand pseudo drivers
DRV_KMODS += ib ibd rdsib sdp
MISC_KMODS += md_stripe md_hotspares md_mirror md_raid md_trans md_notify
BRAND_KMODS += sn1_brand lx_brand
DRV_KMODS += lx_systrace lx_ptm lx_audio
EXEC_KMODS += elfexec intpexec javaexec
SCHED_KMODS += IA RT TS RT_DPTBL TS_DPTBL FSS FX FX_DPTBL
FS_KMODS += autofs cachefs ctfs dev devfs fdfs fifofs hsfs lofs
FS_KMODS += lx_afs lx_proc mntfs namefs nfs objfs zfs
FS_KMODS += pcfs procfs sockfs specfs tmpfs udfs ufs sharefs
STRMOD_KMODS += 6to4tun atun bufmod connld dedump ldterm pckt pfmod pipemod
STRMOD_KMODS += ptem redirmod rpcmod rlmod telmod timod
STRMOD_KMODS += spppasyn spppcomp
STRMOD_KMODS += tirdwr ttcompat tun
# MISC_KMODS are built both 32-bit and 64-bit
# MISC_KMODS_32 are built only 32-bit
# MISC_KMODS_64 are built only 64-bit
MISC_KMODS += kmech_dummy
MISC_KMODS += pci_autoconfig
MISC_KMODS += usba usba10 usbs49_fw
MISC_KMODS += scsi_vhci_f_sym
MISC_KMODS += scsi_vhci_f_tpgs
MISC_KMODS += scsi_vhci_f_asym_sun
$(CLOSED_BUILD)CLOSED_MISC_KMODS += amsrc1
$(CLOSED_BUILD)CLOSED_MISC_KMODS += klmmod klmops
$(CLOSED_BUILD)CLOSED_MISC_KMODS += phx
$(CLOSED_BUILD)CLOSED_MISC_KMODS += scsi_vhci_f_asym_lsi
$(CLOSED_BUILD)CLOSED_MISC_KMODS += scsi_vhci_f_asym_emc
$(CLOSED_BUILD)CLOSED_MISC_KMODS += scsi_vhci_f_sym_emc
# Don't build some of these for OpenSolaris, since they will be
# replaced by binaries that are signed by Sun RE.
$(CLOSED_BUILD)CRYPTO_KMODS += aes
$(CLOSED_BUILD)CRYPTO_KMODS += arcfour
$(CLOSED_BUILD)CRYPTO_KMODS += blowfish
$(CLOSED_BUILD)CRYPTO_KMODS += des
$(CLOSED_BUILD)CRYPTO_KMODS += ecc
# These are streams and driver modules which are not to be
# delivered with a released system. However, during development
# it is convenient to build and install the SVVS kernel modules.
SVVS_KMODS += lmodb lmode lmodr lmodt lo tidg tivc tmux
# Modules eXcluded from the product:
$(CLOSED_BUILD)CLOSED_XMODS = \
DACF_KMODS += usb_ac_dacf
PCBE_KMODS += p123_pcbe p4_pcbe opteron_pcbe
DEVNAME_KMODS += sdev_nsconfig_mod
KICONV_KMODS += kiconv_emea