880N/A# The contents of this file are subject to the terms of the
880N/A# Common Development and Distribution License (the "License").
880N/A# You may not use this file except in compliance with the License.
880N/A# See the License for the specific language governing permissions
880N/A# and limitations under the License.
880N/A# When distributing Covered Code, include this CDDL HEADER in each
880N/A# If applicable, add the following below this CDDL HEADER, with the
880N/A# fields enclosed by brackets "[]" replaced with your own identifying
880N/A# information: Portions Copyright [yyyy] [name of copyright owner]
880N/A# Copyright (c) 2005, 2010, Oracle
and/or its affiliates. All rights reserved.
880N/A# This makefile contains the common definitions for all intel
3215N/A# implementation architecture independent modules.
880N/A# Machine type (implementation architecture):
880N/A# Note that
unix.o must currently be selected from among the possible
3827N/A# "implementation architectures". Note further, that
unix.o is only
880N/A# used as an optional error check for undefines so (theoretically)
880N/A# any "implementation architectures" could be used. We choose i86pc
880N/A# because it is the reference port.
880N/AMODSTUBS_DIR = $(UNIX_DIR)
3827N/ADSF_DIR = $(UTSBASE)/$(PLATFORM)/genassym
# 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) $(VCONS_CONF_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
# 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
DRV_KMODS += audiovia823x
DRV_KMODS_32 += audiovia97
DRV_KMODS += intel_nb5000
DRV_KMODS += ncall nsctl sdbc nskern sv
DRV_KMODS += ii rdc rdcsrv rdcstub
$(CLOSED_BUILD)CLOSED_DRV_KMODS += bmc
$(CLOSED_BUILD)CLOSED_DRV_KMODS += glm
$(CLOSED_BUILD)CLOSED_DRV_KMODS += intel_nhmex
$(CLOSED_BUILD)CLOSED_DRV_KMODS += iprb
$(CLOSED_BUILD)CLOSED_DRV_KMODS += llc2
$(CLOSED_BUILD)CLOSED_DRV_KMODS += cpqary3
$(CLOSED_BUILD)CLOSED_DRV_KMODS += marvell88sx
$(CLOSED_BUILD)CLOSED_DRV_KMODS += bcm_sata
$(CLOSED_BUILD)CLOSED_DRV_KMODS += memtest
$(CLOSED_BUILD)CLOSED_DRV_KMODS += mpt
$(CLOSED_BUILD)CLOSED_DRV_KMODS_32 += ncrs
$(CLOSED_BUILD)CLOSED_DRV_KMODS += pcn
$(CLOSED_BUILD)CLOSED_DRV_KMODS += atiatom
$(CLOSED_BUILD)CLOSED_DRV_KMODS += acpi_toshiba
$(CLOSED_BUILD)CLOSED_DRV_KMODS += ixgb
# DTrace and DTrace Providers
# I/O framework test drivers
DRV_KMODS += tvhci tphci tclient
# PCMCIA specific module(s)
$(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 ibp rdsib sdp iser daplt hermon tavor sol_ucma sol_uverbs
MISC_KMODS += md_stripe md_hotspares md_mirror md_raid md_trans md_notify
BRAND_KMODS += sn1_brand s10_brand lx_brand
DRV_KMODS += lx_systrace lx_ptm lx_audio
EXEC_KMODS += elfexec intpexec shbinexec javaexec
SCHED_KMODS += IA RT TS RT_DPTBL TS_DPTBL FSS FX FX_DPTBL SDC
FS_KMODS += autofs cachefs ctfs dcfs dev devfs fdfs fifofs hsfs lofs
FS_KMODS += lx_afs lx_proc mntfs namefs nfs objfs zfs zut
FS_KMODS += pcfs procfs sockfs specfs tmpfs udfs ufs sharefs
STRMOD_KMODS += bufmod connld dedump ldterm pckt pfmod pipemod
STRMOD_KMODS += ptem redirmod rpcmod rlmod telmod timod
STRMOD_KMODS += spppasyn spppcomp
STRMOD_KMODS += tirdwr ttcompat
# 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_hds
MISC_KMODS += scsi_vhci_f_sym
MISC_KMODS += scsi_vhci_f_tpgs
MISC_KMODS += scsi_vhci_f_asym_sun
MISC_KMODS += scsi_vhci_f_tape
MISC_KMODS += scsi_vhci_f_tpgs_tape
MISC_KMODS += qlc_fw_2200
MISC_KMODS += qlc_fw_2300
MISC_KMODS += qlc_fw_2400
MISC_KMODS += qlc_fw_2500
MISC_KMODS += qlc_fw_6322
MISC_KMODS += qlc_fw_8100
$(CLOSED_BUILD)CLOSED_MISC_KMODS += klmmod klmops
$(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
# 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 svvslo tidg tivc tmux
$(CLOSED_BUILD)SVVS += svvs
# Modules eXcluded from the product:
$(CLOSED_BUILD)CLOSED_XMODS = \
PCBE_KMODS += p123_pcbe p4_pcbe opteron_pcbe core_pcbe
KICONV_KMODS += kiconv_emea kiconv_ja kiconv_ko kiconv_sc kiconv_tc