Makefile.sparc.shared revision b86efd96f8acd85ddaa930a2f0c1d664237e4aaf
1N/A#
1N/A# CDDL HEADER START
1N/A#
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#
1N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1N/A# or http://www.opensolaris.org/os/licensing.
1N/A# See the License for the specific language governing permissions
1N/A# and limitations under the License.
1N/A#
1N/A# When distributing Covered Code, include this CDDL HEADER in each
1N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
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#
1N/A# CDDL HEADER END
1N/A#
1N/A
1N/A#
1N/A# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
1N/A# Use is subject to license terms.
1N/A#
1N/A# ident "%Z%%M% %I% %E% SMI"
1N/A#
1N/A# This makefile contains the common definitions for all sparc
1N/A# implementation architecture independent modules.
1N/A#
1N/A
1N/A#
1N/A# Define supported builds
1N/A#
1N/ADEF_BUILDS = $(DEF_BUILDS64)
1N/AALL_BUILDS = $(ALL_BUILDS64)
1N/A
1N/A#
1N/A# Everybody needs to know how to build modstubs.o and to locate unix.o.
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 sun4u
1N/A# because it is the reference port.
1N/A#
1N/AUNIX_DIR = $(UTSBASE)/sun4u/unix
1N/AGENLIB_DIR = $(UTSBASE)/sun4u/genunix
1N/AIPDRV_DIR = $(UTSBASE)/sparc/ip
1N/AMODSTUBS_DIR = $(UNIX_DIR)
1N/ADSF_DIR = $(UNIX_DIR)
1N/ALINTS_DIR = $(OBJS_DIR)
1N/ALINT_LIB_DIR = $(UTSBASE)/sparc/lint-libs/$(OBJS_DIR)
1N/A
1N/AUNIX_O = $(UNIX_DIR)/$(OBJS_DIR)/unix.o
1N/AMODSTUBS_O = $(MODSTUBS_DIR)/$(OBJS_DIR)/modstubs.o
1N/AGENLIB = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/libgenunix.so
1N/A
1N/ALINT_LIB_32 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lunix.ln
1N/AGEN_LINT_LIB_32 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lgenunix.ln
1N/A
1N/ALINT_LIB_64 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lunix.ln
1N/AGEN_LINT_LIB_64 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lgenunix.ln
1N/A
1N/ALINT_LIB = $(LINT_LIB_$(CLASS))
1N/AGEN_LINT_LIB = $(GEN_LINT_LIB_$(CLASS))
1N/A
1N/ALINT32_DIRS = $(LINT32_BUILDS:%=$(UTSBASE)/sparc/lint-libs/%)
1N/ALINT32_FILES = $(LINT32_DIRS:%=%/llib-l$(MODULE).ln)
1N/A
1N/ALINT64_DIRS = $(LINT64_BUILDS:%=$(UTSBASE)/sparc/lint-libs/%)
1N/ALINT64_FILES = $(LINT64_DIRS:%=%/llib-l$(MODULE).ln)
1N/A
1N/A#
1N/A# Include the makefiles which define build rule templates, the
1N/A# collection of files per module, and a few specific flags. Note
1N/A# that order is significant, just as with an include path. The
1N/A# first build rule template which matches the files name will be
1N/A# used. By including these in order from most machine dependent
1N/A# to most machine independent, we allow a machine dependent file
1N/A# to be used in preference over a machine independent version
1N/A# (Such as a machine specific optimization, which preserves the
1N/A# interfaces.)
1N/A#
1N/Ainclude $(UTSBASE)/sparc/Makefile.files
1N/Ainclude $(UTSBASE)/sparc/v9/Makefile.files
1N/Ainclude $(UTSTREE)/sun/Makefile.files
1N/Ainclude $(UTSTREE)/common/Makefile.files
1N/A
1N/A#
1N/A# ----- TRANSITIONAL SECTION --------------------------------------------------
1N/A#
1N/A
1N/A#
1N/A# Not everything which *should* be a module is a module yet. The
1N/A# following is a list of such objects which are currently part of
1N/A# genunix but which might someday become kmods. This must be
1N/A# defined before we include Makefile.uts, or else genunix's build
1N/A# won't be as parallel as we might like.
1N/A#
1N/ANOT_YET_KMODS = $(OLDPTY_OBJS) $(PTY_OBJS) $(MOD_OBJS)
1N/A
1N/A#
1N/A# ----- END OF TRANSITIONAL SECTION -------------------------------------------
1N/A#
1N/A# Include machine independent rules. Note that this does not imply
1N/A# that the resulting module from rules in Makefile.uts is machine
1N/A# independent. Only that the build rules are machine independent.
1N/A#
1N/Ainclude $(UTSBASE)/Makefile.uts
1N/A
1N/A#
1N/A# machine specific optimization, override default in Makefile.master
1N/A#
1N/AXARCH_32 = -xarch=v8
1N/AXARCH_64 = -xarch=v9
1N/AXARCH = $(XARCH_$(CLASS))
1N/A
1N/ACOPTIMIZE_32 = -xO3
1N/ACOPTIMIZE_64 = -xO3
1N/ACOPTIMIZE = $(COPTIMIZE_$(CLASS))
1N/A
1N/ACCMODE = -Xa
1N/A
1N/ACFLAGS_32 = -xcg92
1N/ACFLAGS_64 = -xchip=ultra $(CCABS32) $(CCREGSYM)
1N/ACFLAGS = $(CFLAGS_$(CLASS))
1N/A
1N/ACFLAGS += $(XARCH)
1N/ACFLAGS += $(COPTIMIZE)
1N/ACFLAGS += $(EXTRA_CFLAGS)
1N/ACFLAGS += $(XAOPT)
1N/ACFLAGS += $(INLINES) -D_ASM_INLINES
1N/ACFLAGS += $(CCMODE)
1N/ACFLAGS += $(SPACEFLAG)
1N/ACFLAGS += $(CERRWARN)
1N/ACFLAGS += $(CTF_FLAGS)
1N/ACFLAGS += $(C99MODE)
1N/ACFLAGS += $(CCUNBOUND)
1N/ACFLAGS += $(CCSTATICSYM)
1N/ACFLAGS += $(IROPTFLAG)
1N/ACFLAGS += $(CGLOBALSTATIC)
1N/ACFLAGS += -xregs=no%float
1N/A
1N/AASFLAGS += $(XARCH)
1N/A
1N/ALINT_DEFS_32 =
1N/ALINT_DEFS_64 = -Xarch=v9
1N/ALINT_DEFS += $(LINT_DEFS_$(CLASS))
1N/A
1N/A#
1N/A# The following must be defined for all implementations:
1N/A#
1N/A# MODSTUBS: Module stubs source file.
1N/A#
1N/AMODSTUBS = $(UTSBASE)/sparc/ml/modstubs.s
1N/A
1N/A#
1N/A# Define the actual specific platforms - obviously none.
1N/A#
1N/AMACHINE_DEFS =
1N/A
1N/A#
1N/A# Debugging level
1N/A#
1N/A# Special knowledge of which special debugging options effect which
1N/A# file is used to optimize the build if these flags are changed.
1N/A#
1N/A# XXX: The above could possibly be done for more flags and files, but
1N/A# is left as an experiment to the interested reader. Be forewarned,
1N/A# that excessive use could lead to maintenance difficulties.
1N/A#
1N/ADEBUG_DEFS_OBJ32 =
1N/ADEBUG_DEFS_DBG32 = -DDEBUG
1N/ADEBUG_DEFS_OBJ64 =
1N/ADEBUG_DEFS_DBG64 = -DDEBUG
1N/ADEBUG_DEFS = $(DEBUG_DEFS_$(BUILD_TYPE))
1N/A
1N/ADEBUG_COND_OBJ32 :sh = echo \\043
1N/ADEBUG_COND_DBG32 =
1N/ADEBUG_COND_OBJ64 :sh = echo \\043
1N/ADEBUG_COND_DBG64 =
1N/AIF_DEBUG_OBJ = $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/
1N/A
1N/A$(IF_DEBUG_OBJ)syscall.o := DEBUG_DEFS += -DSYSCALLTRACE
1N/A$(IF_DEBUG_OBJ)clock.o := DEBUG_DEFS += -DKSLICE=1
1N/A
1N/A# Comment these out if you don't want dispatcher lock statistics.
1N/A
1N/A# $(IF_DEBUG_OBJ)disp_lock.o := DEBUG_DEFS += -DDISP_LOCK_STATS
1N/A
1N/A#
1N/A# This rather strange collection of definitions ensures that lint sees
1N/A# 'struct cpu' containing a fully declared embedded 'struct machcpu'
1N/A#
1N/A# There's something deeply dissatisfying about this.
1N/A#
1N/ALINTMACHFLAGS = -D_MACHDEP -I../../sun4 -I../../$(PLATFORM) -I../../sfmmu
1N/A$(LINTS_DIR)/kcpc.ln := LINTFLAGS += $(LINTMACHFLAGS)
1N/A$(LINTS_DIR)/kdi.ln := LINTFLAGS += $(LINTMACHFLAGS)
1N/A$(LINTS_DIR)/msacct.ln := LINTFLAGS += $(LINTMACHFLAGS)
1N/A$(LINTS_DIR)/thread.ln := LINTFLAGS += $(LINTMACHFLAGS)
1N/A
1N/A#
1N/A# Build `options'. These are mostly historical and the need for these
1N/A# is largely removed by the module technology. However, the static
1N/A# build will continue to require these.
1N/A#
1N/AOPTION_DEFS = -DC2_AUDIT
1N/A
1N/A#
1N/A# Collect the preprocessor definitions to be associated with *all*
1N/A# files.
1N/A#
1N/AALL_DEFS = $(MACHINE_DEFS) $(DEBUG_DEFS) $(OPTION_DEFS)
1N/A#
1N/A#
1N/A# The kernels modules which are "implementation architecture"
1N/A# specific for this machine are enumerated below. Note that most
1N/A# of these modules must exist (in one form or another) for each
1N/A# architecture.
1N/A#
1N/A# Common Drivers (usually pseudo drivers) (/kernel/drv):
1N/A#
1N/ADRV_KMODS += aggr arp bl bofi clone cn conskbd consms cpuid
1N/ADRV_KMODS += crypto cryptoadm devinfo dump
1N/ADRV_KMODS += dtrace fasttrap fbt lockstat profile sdt systrace
1N/ADRV_KMODS += fssnap icmp icmp6 ip ip6 ipsecah
1N/ADRV_KMODS += ipsecesp iwscn keysock kmdb kstat ksyms llc1
1N/ADRV_KMODS += lofi
1N/ADRV_KMODS += log logindmux kssl mm nca physmem pm poll pool
1N/ADRV_KMODS += pseudo ptc ptm pts ptsl ramdisk random rsm rts sad
1N/ADRV_KMODS += sppp sppptun sy sysevent sysmsg
1N/ADRV_KMODS += spdsock
1N/ADRV_KMODS += tcp tcp6 tl tnf ttymux udp udp6 wc winlock zcons
1N/ADRV_KMODS += ippctl sctp sctp6
1N/ADRV_KMODS += dld
1N/ADRV_KMODS += ipf
1N/ADRV_KMODS += rpcib
1N/ADRV_KMODS += vni
1N/ADRV_KMODS += xge
1N/ADRV_KMODS += rds
1N/A
1N/A#
1N/A# Don't build some of these for OpenSolaris, since they will be
1N/A# replaced by binaries that are signed by Sun Release Engineering.
1N/A#
1N/A$(CLOSED_BUILD)DRV_KMODS += dca
1N/A
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += glm
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += isp
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += llc2
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += mpt
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += se
1N/A
1N/A#
1N/A# Hardware Drivers in common space
1N/A#
1N/A
1N/ADRV_KMODS += rge
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += ixgb
1N/A
1N/A#
1N/A# Machine Specific Driver Modules (/kernel/drv):
1N/A#
1N/ADRV_KMODS += audio1575 audio810 audiohd audiocs audiots
1N/ADRV_KMODS += bge bpp eri esp fas hme
1N/ADRV_KMODS += openeepr options sd ses st
1N/ADRV_KMODS += ssd
1N/ADRV_KMODS += ecpp
1N/ADRV_KMODS += hid hubd ehci ohci uhci usb_mid scsa2usb usbprn ugen
1N/ADRV_KMODS += usbser usbsacm usbsksp usbsprl
1N/ADRV_KMODS += usb_as usb_ac
1N/ADRV_KMODS += usbskel
1N/ADRV_KMODS += hci1394 av1394 scsa1394 dcam1394
1N/ADRV_KMODS += sbp2
1N/ADRV_KMODS += ib ibd rdsib
1N/ADRV_KMODS += pci_pci px_pci pxb_plx pxb_bcm pcie
1N/ADRV_KMODS += i8042 kb8042 mouse8042
1N/ADRV_KMODS += fcode
1N/ADRV_KMODS += socal
1N/ADRV_KMODS += sgen
1N/A
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += audioens
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += audiovia823x
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += chxge
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += dad
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += ifp
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += scsi_vhci
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += uata
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += usbser_edge
1N/A
1N/A#
1N/A# I/O framework test drivers
1N/A#
1N/ADRV_KMODS += pshot
1N/ADRV_KMODS += gen_drv
1N/ADRV_KMODS += tvhci tphci tclient
1N/ADRV_KMODS += emul64
1N/A
1N/A#
1N/A# PCMCIA specific module(s)
1N/A#
1N/ADRV_KMODS += stp4020 pcs
1N/AMISC_KMODS += busra cardbus dada pcmcia
1N/ADRV_KMODS += pcata pcmem pcram
1N/ADRV_KMODS += pcic
1N/ADRV_KMODS += pem
1N/A
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += pcelx
1N/A$(CLOSED_BUILD)CLOSED_DRV_KMODS += pcser
1N/A
1N/A# Add lvm
1N/A#
1N/ADRV_KMODS += md
1N/AMISC_KMODS += md_mirror md_stripe md_hotspares md_raid md_trans md_notify
1N/AMISC_KMODS += md_sp
1N/A
1N/A#
1N/A# Exec Class Modules (/kernel/exec):
1N/A#
1N/AEXEC_KMODS += aoutexec elfexec intpexec javaexec
1N/A
1N/A#
1N/A# Scheduling Class Modules (/kernel/sched):
1N/A#
1N/ASCHED_KMODS += RT TS RT_DPTBL TS_DPTBL IA FSS FX FX_DPTBL
1N/A
1N/A#
1N/A# File System Modules (/kernel/fs):
1N/A#
1N/AFS_KMODS += dev devfs fdfs fifofs hsfs lofs namefs nfs pcfs tmpfs zfs
1N/AFS_KMODS += specfs udfs ufs autofs cachefs procfs sockfs mntfs
1N/AFS_KMODS += ctfs objfs
1N/A
1N/A#
1N/A# Streams Modules (/kernel/strmod):
1N/A#
1N/ASTRMOD_KMODS += 6to4tun atun bufmod connld dedump ldterm ms pckt pfmod
1N/ASTRMOD_KMODS += pipemod ptem redirmod rpcmod rlmod telmod timod
1N/ASTRMOD_KMODS += spppasyn spppcomp
1N/ASTRMOD_KMODS += tirdwr ttcompat tun
1N/ASTRMOD_KMODS += usbkbm usbms usb_ah
1N/ASTRMOD_KMODS += drcompat
1N/ASTRMOD_KMODS += nattymod
1N/ASTRMOD_KMODS += cryptmod
1N/ASTRMOD_KMODS += vuid3ps2
1N/A
1N/A#
1N/A# 'System' Modules (/kernel/sys):
1N/A#
1N/ASYS_KMODS += c2audit
1N/ASYS_KMODS += exacctsys
1N/ASYS_KMODS += inst_sync kaio msgsys semsys shmsys sysacct pipe
1N/ASYS_KMODS += doorfs pset acctctl portfs
1N/A
1N/A#
1N/A# 'User' Modules (/kernel/misc):
1N/A#
1N/AMISC_KMODS += amsrc2 audiosup diaudio mixer
1N/AMISC_KMODS += consconfig gld ipc nfs_dlboot nfssrv scsi
1N/AMISC_KMODS += strplumb swapgeneric tlimod
1N/AMISC_KMODS += krtld
1N/AMISC_KMODS += rpcsec rpcsec_gss kgssapi kmech_dummy
1N/AMISC_KMODS += kmech_krb5
1N/AMISC_KMODS += fssnap_if
1N/AMISC_KMODS += hidparser kbtrans usba usba10 usbs49_fw
1N/AMISC_KMODS += s1394
1N/AMISC_KMODS += hpcsvc pcihp pciehpc pcishpc
1N/AMISC_KMODS += rsmops
1N/AMISC_KMODS += kcf
1N/AMISC_KMODS += ibcm
1N/AMISC_KMODS += ibdm
1N/AMISC_KMODS += ibmf
1N/AMISC_KMODS += ibtl
1N/AMISC_KMODS += hook
1N/AMISC_KMODS += neti
1N/AMISC_KMODS += ctf
1N/AMISC_KMODS += zmod
1N/AMISC_KMODS += mac dls
1N/AMISC_KMODS += cmlb
1N/AMISC_KMODS += tem
1N/AMISC_KMODS += pcicfg.e fcodem fcpci
1N/A
1N/A$(CLOSED_BUILD)CLOSED_MISC_KMODS += amsrc1
1N/A$(CLOSED_BUILD)CLOSED_MISC_KMODS += klmmod klmops
1N/A$(CLOSED_BUILD)CLOSED_MISC_KMODS += phx
1N/A
1N/A#
1N/A# Software Cryptographic Providers (/kernel/crypto):
1N/A#
1N/A# Don't build some of these for OpenSolaris, since they will be
1N/A# replaced by binaries that are signed by Sun RE.
1N/A#
1N/A$(CLOSED_BUILD)CRYPTO_KMODS += aes
1N/A$(CLOSED_BUILD)CRYPTO_KMODS += arcfour
1N/A$(CLOSED_BUILD)CRYPTO_KMODS += blowfish
1N/A$(CLOSED_BUILD)CRYPTO_KMODS += des
1N/ACRYPTO_KMODS += md5
1N/ACRYPTO_KMODS += rsa
1N/ACRYPTO_KMODS += sha1
1N/ACRYPTO_KMODS += sha2
1N/ACRYPTO_KMODS += swrand
1N/A
1N/A#
1N/A# IP Policy Modules (/kernel/ipp):
1N/A#
1N/AIPP_KMODS += dlcosmk
1N/AIPP_KMODS += flowacct
1N/AIPP_KMODS += ipgpc
1N/AIPP_KMODS += dscpmk
1N/AIPP_KMODS += tokenmt
1N/AIPP_KMODS += tswtclmt
1N/A
1N/A#
1N/A# 'Dacf' modules (/kernel/dacf)
1N/ADACF_KMODS += consconfig_dacf
1N/A
1N/A#
1N/A# SVVS Testing Modules (/kernel/strmod):
1N/A#
1N/A# These are streams and driver modules which are not to be
1N/A# delivered with a released system. However, during development
1N/A# it is convenient to build and install the SVVS kernel modules.
1N/A#
1N/ASVVS_KMODS += lmodb lmode lmodr lmodt lo tidg tivc tmux
1N/A
1N/ASVVS += svvs
1N/A
1N/A#
1N/A# Modules eXcluded from the product:
1N/A#
1N/AXMODS +=
1N/A$(CLOSED_BUILD)CLOSED_XMODS = \
1N/A daplt \
1N/A e1000g \
1N/A tavor \
1N/A wsdrv
1N/A
1N/A#
1N/A# 'Dacf' Modules (/kernel/dacf):
1N/A#
1N/ADACF_KMODS += usb_ac_dacf
1N/A
1N/A#
1N/A# MAC-Type Plugin Modules (/kernel/mac)
1N/A#
1N/AMAC_KMODS += mac_ether
1N/A
1N/A#
1N/A# 'Devname' Modules (kernel/devname)
1N/A#
1N/ADEVNAME_KMODS += sdev_nsconfig_mod
1N/A