Print this page
4266 remove Makefile*.shared nonsense in uts
@@ -1,5 +1,6 @@
+#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
@@ -16,18 +17,483 @@
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
+# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013 Andrew Stormont. All rights reserved.
+
+
+#
+# This makefile contains the common definitions for all sparc
+# implementation architecture independent modules.
+#
+
+#
+# Define supported builds
+#
+DEF_BUILDS = $(DEF_BUILDS64)
+ALL_BUILDS = $(ALL_BUILDS64)
+
+#
+# Everybody needs to know how to build modstubs.o and to locate unix.o.
+# Note that unix.o must currently be selected from among the possible
+# "implementation architectures". Note further, that unix.o is only
+# used as an optional error check for undefines so (theoretically)
+# any "implementation architectures" could be used. We choose sun4u
+# because it is the reference port.
+#
+UNIX_DIR = $(UTSBASE)/sun4u/unix
+GENLIB_DIR = $(UTSBASE)/sun4u/genunix
+IPDRV_DIR = $(UTSBASE)/sparc/ip
+MODSTUBS_DIR = $(UNIX_DIR)
+DSF_DIR = $(UNIX_DIR)
+LINTS_DIR = $(OBJS_DIR)
+LINT_LIB_DIR = $(UTSBASE)/sparc/lint-libs/$(OBJS_DIR)
+
+UNIX_O = $(UNIX_DIR)/$(OBJS_DIR)/unix.o
+MODSTUBS_O = $(MODSTUBS_DIR)/$(OBJS_DIR)/modstubs.o
+GENLIB = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/libgenunix.so
+
+LINT_LIB_32 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lunix.ln
+GEN_LINT_LIB_32 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lgenunix.ln
+
+LINT_LIB_64 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lunix.ln
+GEN_LINT_LIB_64 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lgenunix.ln
+
+LINT_LIB = $(LINT_LIB_$(CLASS))
+GEN_LINT_LIB = $(GEN_LINT_LIB_$(CLASS))
+
+LINT32_DIRS = $(LINT32_BUILDS:%=$(UTSBASE)/sparc/lint-libs/%)
+LINT32_FILES = $(LINT32_DIRS:%=%/llib-l$(MODULE).ln)
+
+LINT64_DIRS = $(LINT64_BUILDS:%=$(UTSBASE)/sparc/lint-libs/%)
+LINT64_FILES = $(LINT64_DIRS:%=%/llib-l$(MODULE).ln)
+
+#
+# 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
+# interfaces.)
+#
+include $(UTSBASE)/sparc/Makefile.files
+include $(UTSBASE)/sparc/v9/Makefile.files
+include $(UTSBASE)/sun/Makefile.files
+include $(UTSBASE)/common/Makefile.files
+
+#
+# ----- 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.
+#
+include $(UTSBASE)/Makefile.uts
+
+#
+# machine specific optimization, override default in Makefile.master
+#
+XARCH_32 = -xarch=v8
+XARCH_64 = -m64
+XARCH = $(XARCH_$(CLASS))
+
+COPTIMIZE_32 = -xO3
+COPTIMIZE_64 = -xO3
+COPTIMIZE = $(COPTIMIZE_$(CLASS))
+
+CCMODE = -Xa
+
+CFLAGS_32 = -xcg92
+CFLAGS_64 = -xchip=ultra $(CCABS32) $(CCREGSYM)
+CFLAGS = $(CFLAGS_$(CLASS))
+
+CFLAGS += $(XARCH)
+CFLAGS += $(COPTIMIZE)
+CFLAGS += $(EXTRA_CFLAGS)
+CFLAGS += $(XAOPT)
+CFLAGS += $(INLINES) -D_ASM_INLINES
+CFLAGS += $(CCMODE)
+CFLAGS += $(SPACEFLAG)
+CFLAGS += $(CERRWARN)
+CFLAGS += $(CTF_FLAGS_$(CLASS))
+CFLAGS += $(C99MODE)
+CFLAGS += $(CCUNBOUND)
+CFLAGS += $(CCSTATICSYM)
+CFLAGS += $(CC32BITCALLERS)
+CFLAGS += $(CCNOAUTOINLINE)
+CFLAGS += $(IROPTFLAG)
+CFLAGS += $(CGLOBALSTATIC)
+CFLAGS += -xregs=no%float
+CFLAGS += -xstrconst
+CFLAGS += $(CSOURCEDEBUGFLAGS)
+CFLAGS += $(CUSERFLAGS)
+
+ASFLAGS += $(XARCH)
+
+LINT_DEFS_32 =
+LINT_DEFS_64 = -m64
+LINT_DEFS += $(LINT_DEFS_$(CLASS))
+
+#
+# The following must be defined for all implementations:
+#
+# MODSTUBS: Module stubs source file.
+#
+MODSTUBS = $(UTSBASE)/sparc/ml/modstubs.s
+
+#
+# Define the actual specific platforms - obviously none.
+#
+MACHINE_DEFS =
+
+#
+# Debugging level
+#
+# Special knowledge of which special debugging options effect which
+# file is used to optimize the build if these flags are changed.
#
-# Copyright 2010 Sun Microsystems, Inc. All rights reserved.
-# Use is subject to license terms.
+# XXX: The above could possibly be done for more flags and files, but
+# is left as an experiment to the interested reader. Be forewarned,
+# that excessive use could lead to maintenance difficulties.
#
+DEBUG_DEFS_OBJ32 =
+DEBUG_DEFS_DBG32 = -DDEBUG
+DEBUG_DEFS_OBJ64 =
+DEBUG_DEFS_DBG64 = -DDEBUG
+DEBUG_DEFS = $(DEBUG_DEFS_$(BUILD_TYPE))
-UTSTREE=$(UTSBASE)
+DEBUG_COND_OBJ32 = $(POUND_SIGN)
+DEBUG_COND_DBG32 =
+DEBUG_COND_OBJ64 = $(POUND_SIGN)
+DEBUG_COND_DBG64 =
+IF_DEBUG_OBJ = $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/
-include $(UTSBASE)/sparc/Makefile.sparc.shared
+$(IF_DEBUG_OBJ)syscall.o := DEBUG_DEFS += -DSYSCALLTRACE
+$(IF_DEBUG_OBJ)clock.o := DEBUG_DEFS += -DKSLICE=1
+
+# Comment these out if you don't want dispatcher lock statistics.
+
+# $(IF_DEBUG_OBJ)disp_lock.o := DEBUG_DEFS += -DDISP_LOCK_STATS
+
+#
+# Collect the preprocessor definitions to be associated with *all*
+# files.
+#
+ALL_DEFS = $(MACHINE_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
+# architecture.
+#
+# Common Drivers (usually pseudo drivers) (/kernel/drv):
+#
+DRV_KMODS += aggr arp audio bl blkdev bofi clone cn conskbd consms cpuid
+DRV_KMODS += crypto cryptoadm devinfo dump
+DRV_KMODS += dtrace fasttrap fbt lockstat profile sdt systrace dcpc
+DRV_KMODS += fssnap icmp icmp6 ip ip6 ipnet ipsecah
+DRV_KMODS += ipsecesp iptun iwscn keysock kmdb kstat ksyms llc1
+DRV_KMODS += lofi
+DRV_KMODS += log logindmux kssl mm nca physmem pm poll pool
+DRV_KMODS += pseudo ptc ptm pts ptsl ramdisk random rsm rts sad
+DRV_KMODS += simnet softmac sppp sppptun sy sysevent sysmsg
+DRV_KMODS += spdsock
+DRV_KMODS += tcp tcp6 tl tnf ttymux udp udp6 wc winlock zcons
+DRV_KMODS += ippctl
+DRV_KMODS += dld
+DRV_KMODS += ipf
+DRV_KMODS += rpcib
+DRV_KMODS += dlpistub
+DRV_KMODS += vnic
+DRV_KMODS += xge
+DRV_KMODS += rds
+DRV_KMODS += rdsv3
+DRV_KMODS += chxge
+DRV_KMODS += smbsrv
+DRV_KMODS += vscan
+DRV_KMODS += nsmb
+DRV_KMODS += fm
+DRV_KMODS += nulldriver
+DRV_KMODS += bridge trill
+DRV_KMODS += bpf
+DRV_KMODS += dca
+
+#
+# Hardware Drivers in common space
+#
+
+DRV_KMODS += afe
+DRV_KMODS += audio1575
+DRV_KMODS += audioens
+DRV_KMODS += audiols
+DRV_KMODS += audiop16x
+DRV_KMODS += audiopci
+DRV_KMODS += audiots
+DRV_KMODS += e1000g
+DRV_KMODS += efe
+DRV_KMODS += hxge
+DRV_KMODS += mxfe
+DRV_KMODS += rge
+DRV_KMODS += rtls
+DRV_KMODS += sfe
+DRV_KMODS += aac
+DRV_KMODS += igb
+DRV_KMODS += ixgbe
+DRV_KMODS += vr
+DRV_KMODS += mr_sas
+DRV_KMODS += yge
+
+#
+# Machine Specific Driver Modules (/kernel/drv):
+#
+DRV_KMODS += audiocs
+DRV_KMODS += bge dmfe eri fas hme qfe
+DRV_KMODS += openeepr options sd ses st
+DRV_KMODS += ssd
+DRV_KMODS += ecpp
+DRV_KMODS += hid hubd ehci ohci uhci usb_mid usb_ia scsa2usb usbprn ugen
+DRV_KMODS += usbser usbsacm usbsksp usbsprl
+DRV_KMODS += usb_as usb_ac
+DRV_KMODS += usbskel
+DRV_KMODS += usbvc
+DRV_KMODS += usbftdi
+DRV_KMODS += wusb_df hwahc hwarc wusb_ca
+DRV_KMODS += usbecm
+DRV_KMODS += hci1394 av1394 scsa1394 dcam1394
+DRV_KMODS += sbp2
+DRV_KMODS += ib ibp eibnx eoib rdsib sdp iser daplt hermon tavor sol_ucma sol_uverbs
+DRV_KMODS += sol_umad
+DRV_KMODS += pci_pci pcieb pcieb_bcm
+DRV_KMODS += i8042 kb8042 mouse8042
+DRV_KMODS += fcode
+DRV_KMODS += mpt_sas
+DRV_KMODS += socal
+DRV_KMODS += sgen
+DRV_KMODS += myri10ge
+DRV_KMODS += smp
+DRV_KMODS += dad
+DRV_KMODS += scsi_vhci
+DRV_KMODS += fcp
+DRV_KMODS += fcip
+DRV_KMODS += fcsm
+DRV_KMODS += fp
+DRV_KMODS += qlc
+DRV_KMODS += qlge
+DRV_KMODS += stmf
+DRV_KMODS += stmf_sbd
+DRV_KMODS += fct
+DRV_KMODS += fcoe
+DRV_KMODS += fcoet
+DRV_KMODS += fcoei
+DRV_KMODS += qlt
+DRV_KMODS += iscsit
+DRV_KMODS += pppt
+DRV_KMODS += ncall nsctl sdbc nskern sv
+DRV_KMODS += ii rdc rdcsrv rdcstub
+DRV_KMODS += iscsi
+DRV_KMODS += emlxs
+DRV_KMODS += oce
+DRV_KMODS += srpt
+DRV_KMODS += pmcs
+DRV_KMODS += pmcs8001fw
+
+#
+# I/O framework test drivers
+#
+DRV_KMODS += pshot
+DRV_KMODS += gen_drv
+DRV_KMODS += tvhci tphci tclient
+DRV_KMODS += emul64
+
+#
+# PCMCIA specific module(s)
+#
+DRV_KMODS += pcs
+MISC_KMODS += busra cardbus dada pcmcia
+DRV_KMODS += pcic
+
+# Add lvm
+#
+DRV_KMODS += md
+MISC_KMODS += md_mirror md_stripe md_hotspares md_raid md_trans md_notify
+MISC_KMODS += md_sp
+
+#
+# Exec Class Modules (/kernel/exec):
+#
+EXEC_KMODS += aoutexec elfexec intpexec shbinexec javaexec
+
+#
+# Scheduling Class Modules (/kernel/sched):
+#
+SCHED_KMODS += RT TS RT_DPTBL TS_DPTBL IA FSS FX FX_DPTBL SDC
+
+#
+# File System Modules (/kernel/fs):
+#
+FS_KMODS += dev devfs fdfs fifofs hsfs lofs namefs nfs pcfs tmpfs zfs
+FS_KMODS += zut specfs udfs ufs autofs cachefs procfs sockfs mntfs
+FS_KMODS += ctfs objfs sharefs dcfs smbfs
+
+#
+# Streams Modules (/kernel/strmod):
+#
+STRMOD_KMODS += bufmod connld dedump ldterm ms pckt pfmod
+STRMOD_KMODS += pipemod ptem redirmod rpcmod rlmod telmod timod
+STRMOD_KMODS += spppasyn spppcomp
+STRMOD_KMODS += tirdwr ttcompat
+STRMOD_KMODS += usbkbm usbms usbwcm usb_ah
+STRMOD_KMODS += drcompat
+STRMOD_KMODS += cryptmod
+STRMOD_KMODS += vuid3ps2
+
+#
+# 'System' Modules (/kernel/sys):
+#
+SYS_KMODS += c2audit
+SYS_KMODS += exacctsys
+SYS_KMODS += inst_sync kaio msgsys semsys shmsys sysacct pipe
+SYS_KMODS += doorfs pset acctctl portfs
+
+#
+# 'User' Modules (/kernel/misc):
+#
+MISC_KMODS += ac97
+MISC_KMODS += bignum
+MISC_KMODS += consconfig gld ipc nfs_dlboot nfssrv scsi
+MISC_KMODS += strplumb swapgeneric tlimod
+MISC_KMODS += rpcsec rpcsec_gss kgssapi kmech_dummy
+MISC_KMODS += kmech_krb5
+MISC_KMODS += fssnap_if
+MISC_KMODS += hidparser kbtrans usba usba10 usbs49_fw
+MISC_KMODS += s1394
+MISC_KMODS += hpcsvc pcihp
+MISC_KMODS += rsmops
+MISC_KMODS += kcf
+MISC_KMODS += ksocket
+MISC_KMODS += ibcm
+MISC_KMODS += ibdm
+MISC_KMODS += ibdma
+MISC_KMODS += ibmf
+MISC_KMODS += ibtl
+MISC_KMODS += sol_ofs
+MISC_KMODS += idm
+MISC_KMODS += idmap
+MISC_KMODS += hook
+MISC_KMODS += neti
+MISC_KMODS += ctf
+MISC_KMODS += mac dls
+MISC_KMODS += cmlb
+MISC_KMODS += tem
+MISC_KMODS += pcicfg fcodem fcpci
+MISC_KMODS += scsi_vhci_f_sym scsi_vhci_f_tpgs scsi_vhci_f_asym_sun
+MISC_KMODS += scsi_vhci_f_sym_hds
+MISC_KMODS += scsi_vhci_f_tape scsi_vhci_f_tpgs_tape
+MISC_KMODS += fctl
+MISC_KMODS += emlxs_fw
+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
+MISC_KMODS += spuni
+MISC_KMODS += hwa1480_fw uwba
+MISC_KMODS += mii
+
+MISC_KMODS += klmmod klmops
+
+#
+# Software Cryptographic Providers (/kernel/crypto):
+#
+CRYPTO_KMODS += aes
+CRYPTO_KMODS += arcfour
+CRYPTO_KMODS += blowfish
+CRYPTO_KMODS += des
+CRYPTO_KMODS += md4
+CRYPTO_KMODS += md5
+CRYPTO_KMODS += ecc
+CRYPTO_KMODS += rsa
+CRYPTO_KMODS += sha1
+CRYPTO_KMODS += sha2
+CRYPTO_KMODS += swrand
+
+#
+# IP Policy Modules (/kernel/ipp):
+#
+IPP_KMODS += dlcosmk
+IPP_KMODS += flowacct
+IPP_KMODS += ipgpc
+IPP_KMODS += dscpmk
+IPP_KMODS += tokenmt
+IPP_KMODS += tswtclmt
+
+#
+# 'Dacf' modules (/kernel/dacf)
+DACF_KMODS += consconfig_dacf
+
+#
+# SVVS Testing Modules (/kernel/strmod):
+#
+# 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
+
+#
+# Modules eXcluded from the product:
+#
+XMODS +=
+
+#
+# 'Dacf' Modules (/kernel/dacf):
+#
+DACF_KMODS += net_dacf
+
+#
+# MAC-Type Plugin Modules (/kernel/mac)
+#
+MAC_KMODS += mac_6to4
+MAC_KMODS += mac_ether
+MAC_KMODS += mac_ipv4
+MAC_KMODS += mac_ipv6
+MAC_KMODS += mac_wifi
+MAC_KMODS += mac_ib
+
+#
+# socketmod (kernel/socketmod)
+#
+SOCKET_KMODS += sockpfp
+SOCKET_KMODS += socksctp
+SOCKET_KMODS += socksdp
+SOCKET_KMODS += sockrds
+SOCKET_KMODS += ksslf
+
+#
+# kiconv modules (/kernel/kiconv):
+#
+KICONV_KMODS += kiconv_emea kiconv_ja kiconv_ko kiconv_sc kiconv_tc
#
# Ensure that the variable member of the cpu_t (cpu_m) is defined
# for the lint builds so as not to cause lint errors during the
# global cross check.