| # |
| # 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. |
| # |
| # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| # or http://www.opensolaris.org/os/licensing. |
| # See the License for the specific language governing permissions |
| # and limitations under the License. |
| # |
| # When distributing Covered Code, include this CDDL HEADER in each |
| # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| # If applicable, add the following below this CDDL HEADER, with the |
| # fields enclosed by brackets "[]" replaced with your own identifying |
| # information: Portions Copyright [yyyy] [name of copyright owner] |
| # |
| # CDDL HEADER END |
| # |
| |
| # |
| # Copyright 2009 Sun Microsystems, Inc. All rights reserved. |
| # Use is subject to license terms. |
| # |
| # 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 $(UTSTREE)/sun/Makefile.files |
| include $(UTSTREE)/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) |
| CFLAGS += $(C99MODE) |
| CFLAGS += $(CCUNBOUND) |
| CFLAGS += $(CCSTATICSYM) |
| CFLAGS += $(IROPTFLAG) |
| CFLAGS += $(CGLOBALSTATIC) |
| CFLAGS += -xregs=no%float |
| CFLAGS += -xstrconst |
| |
| 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. |
| # |
| # 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)) |
| |
| DEBUG_COND_OBJ32 :sh = echo \\043 |
| DEBUG_COND_DBG32 = |
| DEBUG_COND_OBJ64 :sh = echo \\043 |
| DEBUG_COND_DBG64 = |
| 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 |
| |
| # 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 bl bofi clone cn conskbd consms cpuid |
| DRV_KMODS += crypto cryptoadm devinfo dump |
| DRV_KMODS += dtrace fasttrap fbt lockstat profile sdt systrace |
| DRV_KMODS += fssnap icmp icmp6 ip ip6 ipnet ipsecah |
| DRV_KMODS += ipsecesp 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 += softmac sppp sppptun sy sysevent sysmsg |
| DRV_KMODS += spdsock |
| DRV_KMODS += tcp tcp6 tl tnf ttymux udp udp6 wc winlock zcons |
| DRV_KMODS += ippctl sctp sctp6 |
| DRV_KMODS += dld |
| DRV_KMODS += ipf |
| DRV_KMODS += rpcib |
| DRV_KMODS += dlpistub |
| DRV_KMODS += vnic |
| DRV_KMODS += xge |
| DRV_KMODS += rds |
| DRV_KMODS += chxge |
| DRV_KMODS += smbsrv |
| DRV_KMODS += vscan |
| DRV_KMODS += nsmb |
| DRV_KMODS += fm |
| DRV_KMODS += nulldriver |
| |
| # |
| # 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 += glm |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += isp |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += llc2 |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += mpt |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += qus |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += se |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += rtls |
| |
| # |
| # Hardware Drivers in common space |
| # |
| |
| DRV_KMODS += afe |
| DRV_KMODS += e1000g |
| DRV_KMODS += hxge |
| DRV_KMODS += mxfe |
| DRV_KMODS += pcan |
| DRV_KMODS += pcwl |
| DRV_KMODS += rge |
| DRV_KMODS += sfe |
| DRV_KMODS += aac |
| DRV_KMODS += igb |
| DRV_KMODS += ixgbe |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += ixgb |
| |
| # |
| # Machine Specific Driver Modules (/kernel/drv): |
| # |
| DRV_KMODS += audio1575 audio810 audiohd audiocs audiots |
| DRV_KMODS += bge bpp dmfe eri esp 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 += hci1394 av1394 scsa1394 dcam1394 |
| DRV_KMODS += sbp2 |
| DRV_KMODS += ib ibd rdsib sdp |
| DRV_KMODS += pci_pci px_pci pxb_plx pxb_bcm pcie |
| DRV_KMODS += i8042 kb8042 mouse8042 |
| DRV_KMODS += fcode |
| DRV_KMODS += socal |
| DRV_KMODS += sgen |
| 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 += sdcard |
| DRV_KMODS += sdhost |
| DRV_KMODS += wbsd |
| DRV_KMODS += dda |
| DRV_KMODS += dmd |
| DRV_KMODS += stmf |
| DRV_KMODS += stmf_sbd |
| DRV_KMODS += fct |
| DRV_KMODS += qlt |
| DRV_KMODS += iscsit |
| DRV_KMODS += ncall nsctl sdbc nskern sv |
| DRV_KMODS += ii rdc rdcsrv rdcstub |
| DRV_KMODS += iscsi |
| DRV_KMODS += emlxs |
| |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += audioens |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += audiovia823x |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += ifp |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += uata |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += usbser_edge |
| |
| # |
| # 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 += stp4020 pcs |
| MISC_KMODS += busra cardbus dada pcmcia |
| DRV_KMODS += pcata pcmem pcram |
| DRV_KMODS += pcic |
| DRV_KMODS += pem |
| |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += pcelx |
| $(CLOSED_BUILD)CLOSED_DRV_KMODS += pcser |
| |
| # 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 |
| |
| # |
| # File System Modules (/kernel/fs): |
| # |
| FS_KMODS += dev devfs fdfs fifofs hsfs lofs namefs nfs pcfs tmpfs zfs |
| FS_KMODS += specfs udfs ufs autofs cachefs procfs sockfs mntfs |
| FS_KMODS += ctfs objfs sharefs dcfs smbfs |
| |
| # |
| # Streams Modules (/kernel/strmod): |
| # |
| STRMOD_KMODS += 6to4tun atun bufmod connld dedump ldterm ms pckt pfmod |
| STRMOD_KMODS += pipemod ptem redirmod rpcmod rlmod telmod timod |
| STRMOD_KMODS += spppasyn spppcomp |
| STRMOD_KMODS += tirdwr ttcompat tun |
| STRMOD_KMODS += usbkbm usbms 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 += amsrc2 audiosup mixer |
| 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 pciehpc pcishpc |
| MISC_KMODS += rsmops |
| MISC_KMODS += kcf |
| MISC_KMODS += ksocket |
| MISC_KMODS += ibcm |
| MISC_KMODS += ibdm |
| MISC_KMODS += ibmf |
| MISC_KMODS += ibtl |
| 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.e 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 += qlc_fw_2200 qlc_fw_2300 qlc_fw_2400 qlc_fw_2500 qlc_fw_6322 |
| MISC_KMODS += blk2scsa |
| MISC_KMODS += sda |
| MISC_KMODS += spuni |
| |
| $(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 |
| |
| # |
| # Software Cryptographic Providers (/kernel/crypto): |
| # |
| # 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 |
| 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 |
| |
| SVVS += svvs |
| |
| # |
| # Modules eXcluded from the product: |
| # |
| XMODS += |
| $(CLOSED_BUILD)CLOSED_XMODS = \ |
| daplt \ |
| hermon \ |
| sdpib \ |
| tavor \ |
| wsdrv |
| |
| # |
| # 'Dacf' Modules (/kernel/dacf): |
| # |
| DACF_KMODS += usb_ac_dacf net_dacf |
| |
| # |
| # MAC-Type Plugin Modules (/kernel/mac) |
| # |
| MAC_KMODS += mac_ether |
| MAC_KMODS += mac_wifi |
| MAC_KMODS += mac_ib |
| |
| # |
| # 'Devname' Modules (kernel/devname) |
| # |
| DEVNAME_KMODS += sdev_nsconfig_mod |
| |
| # |
| # socketmod (kernel/socketmod) |
| # |
| SOCKET_KMODS += socksctp |
| SOCKET_KMODS += socksdp |
| |
| # |
| # kiconv modules (/kernel/kiconv): |
| # |
| KICONV_KMODS += kiconv_emea kiconv_ja kiconv_ko kiconv_sc kiconv_tc |