Makefile.sparc.shared revision 12206:96c3e6ae396d
1# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. 2 3 4# 5# This makefile contains the common definitions for all sparc 6# implementation architecture independent modules. 7# 8 9# 10# Define supported builds 11# 12DEF_BUILDS = $(DEF_BUILDS64) 13ALL_BUILDS = $(ALL_BUILDS64) 14 15# 16# Everybody needs to know how to build modstubs.o and to locate unix.o. 17# Note that unix.o must currently be selected from among the possible 18# "implementation architectures". Note further, that unix.o is only 19# used as an optional error check for undefines so (theoretically) 20# any "implementation architectures" could be used. We choose sun4u 21# because it is the reference port. 22# 23UNIX_DIR = $(UTSBASE)/sun4u/unix 24GENLIB_DIR = $(UTSBASE)/sun4u/genunix 25IPDRV_DIR = $(UTSBASE)/sparc/ip 26MODSTUBS_DIR = $(UNIX_DIR) 27DSF_DIR = $(UNIX_DIR) 28LINTS_DIR = $(OBJS_DIR) 29LINT_LIB_DIR = $(UTSBASE)/sparc/lint-libs/$(OBJS_DIR) 30 31UNIX_O = $(UNIX_DIR)/$(OBJS_DIR)/unix.o 32MODSTUBS_O = $(MODSTUBS_DIR)/$(OBJS_DIR)/modstubs.o 33GENLIB = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/libgenunix.so 34 35LINT_LIB_32 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lunix.ln 36GEN_LINT_LIB_32 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lgenunix.ln 37 38LINT_LIB_64 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lunix.ln 39GEN_LINT_LIB_64 = $(UTSBASE)/sun4u/lint-libs/$(OBJS_DIR)/llib-lgenunix.ln 40 41LINT_LIB = $(LINT_LIB_$(CLASS)) 42GEN_LINT_LIB = $(GEN_LINT_LIB_$(CLASS)) 43 44LINT32_DIRS = $(LINT32_BUILDS:%=$(UTSBASE)/sparc/lint-libs/%) 45LINT32_FILES = $(LINT32_DIRS:%=%/llib-l$(MODULE).ln) 46 47LINT64_DIRS = $(LINT64_BUILDS:%=$(UTSBASE)/sparc/lint-libs/%) 48LINT64_FILES = $(LINT64_DIRS:%=%/llib-l$(MODULE).ln) 49 50# 51# Include the makefiles which define build rule templates, the 52# collection of files per module, and a few specific flags. Note 53# that order is significant, just as with an include path. The 54# first build rule template which matches the files name will be 55# used. By including these in order from most machine dependent 56# to most machine independent, we allow a machine dependent file 57# to be used in preference over a machine independent version 58# (Such as a machine specific optimization, which preserves the 59# interfaces.) 60# 61include $(UTSBASE)/sparc/Makefile.files 62include $(UTSBASE)/sparc/v9/Makefile.files 63include $(UTSTREE)/sun/Makefile.files 64include $(UTSTREE)/common/Makefile.files 65 66# 67# ----- TRANSITIONAL SECTION -------------------------------------------------- 68# 69 70# 71# Not everything which *should* be a module is a module yet. The 72# following is a list of such objects which are currently part of 73# genunix but which might someday become kmods. This must be 74# defined before we include Makefile.uts, or else genunix's build 75# won't be as parallel as we might like. 76# 77NOT_YET_KMODS = $(OLDPTY_OBJS) $(PTY_OBJS) $(VCONS_CONF_OBJS) $(MOD_OBJS) 78 79# 80# ----- END OF TRANSITIONAL SECTION ------------------------------------------- 81# 82# Include machine independent rules. Note that this does not imply 83# that the resulting module from rules in Makefile.uts is machine 84# independent. Only that the build rules are machine independent. 85# 86include $(UTSBASE)/Makefile.uts 87 88# 89# machine specific optimization, override default in Makefile.master 90# 91XARCH_32 = -xarch=v8 92XARCH_64 = -m64 93XARCH = $(XARCH_$(CLASS)) 94 95COPTIMIZE_32 = -xO3 96COPTIMIZE_64 = -xO3 97COPTIMIZE = $(COPTIMIZE_$(CLASS)) 98 99CCMODE = -Xa 100 101CFLAGS_32 = -xcg92 102CFLAGS_64 = -xchip=ultra $(CCABS32) $(CCREGSYM) 103CFLAGS = $(CFLAGS_$(CLASS)) 104 105CFLAGS += $(XARCH) 106CFLAGS += $(COPTIMIZE) 107CFLAGS += $(EXTRA_CFLAGS) 108CFLAGS += $(XAOPT) 109CFLAGS += $(INLINES) -D_ASM_INLINES 110CFLAGS += $(CCMODE) 111CFLAGS += $(SPACEFLAG) 112CFLAGS += $(CERRWARN) 113CFLAGS += $(CTF_FLAGS) 114CFLAGS += $(C99MODE) 115CFLAGS += $(CCUNBOUND) 116CFLAGS += $(CCSTATICSYM) 117CFLAGS += $(IROPTFLAG) 118CFLAGS += $(CGLOBALSTATIC) 119CFLAGS += -xregs=no%float 120CFLAGS += -xstrconst 121 122ASFLAGS += $(XARCH) 123 124LINT_DEFS_32 = 125LINT_DEFS_64 = -m64 126LINT_DEFS += $(LINT_DEFS_$(CLASS)) 127 128# 129# The following must be defined for all implementations: 130# 131# MODSTUBS: Module stubs source file. 132# 133MODSTUBS = $(UTSBASE)/sparc/ml/modstubs.s 134 135# 136# Define the actual specific platforms - obviously none. 137# 138MACHINE_DEFS = 139 140# 141# Debugging level 142# 143# Special knowledge of which special debugging options effect which 144# file is used to optimize the build if these flags are changed. 145# 146# XXX: The above could possibly be done for more flags and files, but 147# is left as an experiment to the interested reader. Be forewarned, 148# that excessive use could lead to maintenance difficulties. 149# 150DEBUG_DEFS_OBJ32 = 151DEBUG_DEFS_DBG32 = -DDEBUG 152DEBUG_DEFS_OBJ64 = 153DEBUG_DEFS_DBG64 = -DDEBUG 154DEBUG_DEFS = $(DEBUG_DEFS_$(BUILD_TYPE)) 155 156DEBUG_COND_OBJ32 :sh = echo \\043 157DEBUG_COND_DBG32 = 158DEBUG_COND_OBJ64 :sh = echo \\043 159DEBUG_COND_DBG64 = 160IF_DEBUG_OBJ = $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/ 161 162$(IF_DEBUG_OBJ)syscall.o := DEBUG_DEFS += -DSYSCALLTRACE 163$(IF_DEBUG_OBJ)clock.o := DEBUG_DEFS += -DKSLICE=1 164 165# Comment these out if you don't want dispatcher lock statistics. 166 167# $(IF_DEBUG_OBJ)disp_lock.o := DEBUG_DEFS += -DDISP_LOCK_STATS 168 169# 170# Collect the preprocessor definitions to be associated with *all* 171# files. 172# 173ALL_DEFS = $(MACHINE_DEFS) $(DEBUG_DEFS) $(OPTION_DEFS) 174# 175# 176# The kernels modules which are "implementation architecture" 177# specific for this machine are enumerated below. Note that most 178# of these modules must exist (in one form or another) for each 179# architecture. 180# 181# Common Drivers (usually pseudo drivers) (/kernel/drv): 182# 183DRV_KMODS += aggr arp audio bl bofi clone cn conskbd consms cpuid 184DRV_KMODS += crypto cryptoadm devinfo dump 185DRV_KMODS += dtrace fasttrap fbt lockstat profile sdt systrace dcpc 186DRV_KMODS += fssnap icmp icmp6 ip ip6 ipnet ipsecah 187DRV_KMODS += ipsecesp iptun iwscn keysock kmdb kstat ksyms llc1 188DRV_KMODS += lofi 189DRV_KMODS += log logindmux kssl mm nca physmem pm poll pool 190DRV_KMODS += pseudo ptc ptm pts ptsl ramdisk random rsm rts sad 191DRV_KMODS += simnet softmac sppp sppptun sy sysevent sysmsg 192DRV_KMODS += spdsock 193DRV_KMODS += tcp tcp6 tl tnf ttymux udp udp6 wc winlock zcons 194DRV_KMODS += ippctl 195DRV_KMODS += dld 196DRV_KMODS += ipf 197DRV_KMODS += rpcib 198DRV_KMODS += dlpistub 199DRV_KMODS += vnic 200DRV_KMODS += xge 201DRV_KMODS += rds 202DRV_KMODS += rdsv3 203DRV_KMODS += chxge 204DRV_KMODS += smbsrv 205DRV_KMODS += vscan 206DRV_KMODS += nsmb 207DRV_KMODS += fm 208DRV_KMODS += nulldriver 209DRV_KMODS += bridge trill 210DRV_KMODS += bpf 211DRV_KMODS += dca 212 213$(CLOSED_BUILD)CLOSED_DRV_KMODS += glm 214$(CLOSED_BUILD)CLOSED_DRV_KMODS += isp 215$(CLOSED_BUILD)CLOSED_DRV_KMODS += llc2 216$(CLOSED_BUILD)CLOSED_DRV_KMODS += mpt 217$(CLOSED_BUILD)CLOSED_DRV_KMODS += qus 218$(CLOSED_BUILD)CLOSED_DRV_KMODS += se 219 220# 221# Hardware Drivers in common space 222# 223 224DRV_KMODS += afe 225DRV_KMODS += audio1575 226DRV_KMODS += audioens 227DRV_KMODS += audiols 228DRV_KMODS += audiop16x 229DRV_KMODS += audiopci 230DRV_KMODS += audiots 231DRV_KMODS += e1000g 232DRV_KMODS += hxge 233DRV_KMODS += mxfe 234DRV_KMODS += pcan 235DRV_KMODS += pcwl 236DRV_KMODS += rge 237DRV_KMODS += rtls 238DRV_KMODS += sfe 239DRV_KMODS += aac 240DRV_KMODS += igb 241DRV_KMODS += ixgbe 242DRV_KMODS += vr 243DRV_KMODS += mr_sas 244$(CLOSED_BUILD)CLOSED_DRV_KMODS += ixgb 245DRV_KMODS += yge 246 247# 248# Machine Specific Driver Modules (/kernel/drv): 249# 250DRV_KMODS += audiocs 251DRV_KMODS += bge dmfe eri fas hme qfe 252DRV_KMODS += openeepr options sd ses st 253DRV_KMODS += ssd 254DRV_KMODS += ecpp 255DRV_KMODS += hid hubd ehci ohci uhci usb_mid usb_ia scsa2usb usbprn ugen 256DRV_KMODS += usbser usbsacm usbsksp usbsprl 257DRV_KMODS += usb_as usb_ac 258DRV_KMODS += usbskel 259DRV_KMODS += usbvc 260DRV_KMODS += usbftdi 261DRV_KMODS += wusb_df hwahc hwarc wusb_ca 262DRV_KMODS += usbecm 263DRV_KMODS += hci1394 av1394 scsa1394 dcam1394 264DRV_KMODS += sbp2 265DRV_KMODS += ib ibp rdsib sdp iser daplt hermon tavor sol_ucma sol_uverbs 266DRV_KMODS += pci_pci pcieb pcieb_bcm 267DRV_KMODS += i8042 kb8042 mouse8042 268DRV_KMODS += fcode 269DRV_KMODS += mpt_sas 270DRV_KMODS += socal 271DRV_KMODS += sgen 272DRV_KMODS += myri10ge 273DRV_KMODS += smp 274DRV_KMODS += dad 275DRV_KMODS += scsi_vhci 276DRV_KMODS += fcp 277DRV_KMODS += fcip 278DRV_KMODS += fcsm 279DRV_KMODS += fp 280DRV_KMODS += qlc 281DRV_KMODS += qlge 282DRV_KMODS += stmf 283DRV_KMODS += stmf_sbd 284DRV_KMODS += fct 285DRV_KMODS += fcoe 286DRV_KMODS += fcoet 287DRV_KMODS += fcoei 288DRV_KMODS += qlt 289DRV_KMODS += iscsit 290DRV_KMODS += pppt 291DRV_KMODS += ncall nsctl sdbc nskern sv 292DRV_KMODS += ii rdc rdcsrv rdcstub 293DRV_KMODS += iscsi 294DRV_KMODS += emlxs 295DRV_KMODS += oce 296DRV_KMODS += srpt 297DRV_KMODS += pmcs 298DRV_KMODS += pmcs8001fw 299 300$(CLOSED_BUILD)CLOSED_DRV_KMODS += ifp 301$(CLOSED_BUILD)CLOSED_DRV_KMODS += uata 302$(CLOSED_BUILD)CLOSED_DRV_KMODS += usbser_edge 303 304# 305# I/O framework test drivers 306# 307DRV_KMODS += pshot 308DRV_KMODS += gen_drv 309DRV_KMODS += tvhci tphci tclient 310DRV_KMODS += emul64 311 312# 313# PCMCIA specific module(s) 314# 315DRV_KMODS += pcs 316MISC_KMODS += busra cardbus dada pcmcia 317DRV_KMODS += pcata 318DRV_KMODS += pcic 319 320$(CLOSED_BUILD)CLOSED_DRV_KMODS += pcser 321 322# Add lvm 323# 324DRV_KMODS += md 325MISC_KMODS += md_mirror md_stripe md_hotspares md_raid md_trans md_notify 326MISC_KMODS += md_sp 327 328# 329# Exec Class Modules (/kernel/exec): 330# 331EXEC_KMODS += aoutexec elfexec intpexec shbinexec javaexec 332 333# 334# Scheduling Class Modules (/kernel/sched): 335# 336SCHED_KMODS += RT TS RT_DPTBL TS_DPTBL IA FSS FX FX_DPTBL SDC 337 338# 339# File System Modules (/kernel/fs): 340# 341FS_KMODS += dev devfs fdfs fifofs hsfs lofs namefs nfs pcfs tmpfs zfs 342FS_KMODS += zut specfs udfs ufs autofs cachefs procfs sockfs mntfs 343FS_KMODS += ctfs objfs sharefs dcfs smbfs 344 345# 346# Streams Modules (/kernel/strmod): 347# 348STRMOD_KMODS += bufmod connld dedump ldterm ms pckt pfmod 349STRMOD_KMODS += pipemod ptem redirmod rpcmod rlmod telmod timod 350STRMOD_KMODS += spppasyn spppcomp 351STRMOD_KMODS += tirdwr ttcompat 352STRMOD_KMODS += usbkbm usbms usbwcm usb_ah 353STRMOD_KMODS += drcompat 354STRMOD_KMODS += cryptmod 355STRMOD_KMODS += vuid3ps2 356 357# 358# 'System' Modules (/kernel/sys): 359# 360SYS_KMODS += c2audit 361SYS_KMODS += exacctsys 362SYS_KMODS += inst_sync kaio msgsys semsys shmsys sysacct pipe 363SYS_KMODS += doorfs pset acctctl portfs 364 365# 366# 'User' Modules (/kernel/misc): 367# 368MISC_KMODS += ac97 369MISC_KMODS += bignum 370MISC_KMODS += consconfig gld ipc nfs_dlboot nfssrv scsi 371MISC_KMODS += strplumb swapgeneric tlimod 372MISC_KMODS += rpcsec rpcsec_gss kgssapi kmech_dummy 373MISC_KMODS += kmech_krb5 374MISC_KMODS += fssnap_if 375MISC_KMODS += hidparser kbtrans usba usba10 usbs49_fw 376MISC_KMODS += s1394 377MISC_KMODS += hpcsvc pcihp 378MISC_KMODS += rsmops 379MISC_KMODS += kcf 380MISC_KMODS += ksocket 381MISC_KMODS += ibcm 382MISC_KMODS += ibdm 383MISC_KMODS += ibdma 384MISC_KMODS += ibmf 385MISC_KMODS += ibtl 386MISC_KMODS += sol_ofs 387MISC_KMODS += idm 388MISC_KMODS += idmap 389MISC_KMODS += hook 390MISC_KMODS += neti 391MISC_KMODS += ctf 392MISC_KMODS += mac dls 393MISC_KMODS += cmlb 394MISC_KMODS += tem 395MISC_KMODS += pcicfg fcodem fcpci 396MISC_KMODS += scsi_vhci_f_sym scsi_vhci_f_tpgs scsi_vhci_f_asym_sun 397MISC_KMODS += scsi_vhci_f_sym_hds 398MISC_KMODS += scsi_vhci_f_tape scsi_vhci_f_tpgs_tape 399MISC_KMODS += fctl 400MISC_KMODS += emlxs_fw 401MISC_KMODS += qlc_fw_2200 402MISC_KMODS += qlc_fw_2300 403MISC_KMODS += qlc_fw_2400 404MISC_KMODS += qlc_fw_2500 405MISC_KMODS += qlc_fw_6322 406MISC_KMODS += qlc_fw_8100 407MISC_KMODS += blk2scsa 408MISC_KMODS += spuni 409MISC_KMODS += hwa1480_fw uwba 410MISC_KMODS += mii 411 412$(CLOSED_BUILD)CLOSED_MISC_KMODS += klmmod klmops 413$(CLOSED_BUILD)CLOSED_MISC_KMODS += scsi_vhci_f_asym_lsi 414$(CLOSED_BUILD)CLOSED_MISC_KMODS += scsi_vhci_f_asym_emc 415$(CLOSED_BUILD)CLOSED_MISC_KMODS += scsi_vhci_f_sym_emc 416 417# 418# Software Cryptographic Providers (/kernel/crypto): 419# 420CRYPTO_KMODS += aes 421CRYPTO_KMODS += arcfour 422CRYPTO_KMODS += blowfish 423CRYPTO_KMODS += des 424CRYPTO_KMODS += md4 425CRYPTO_KMODS += md5 426CRYPTO_KMODS += ecc 427CRYPTO_KMODS += rsa 428CRYPTO_KMODS += sha1 429CRYPTO_KMODS += sha2 430CRYPTO_KMODS += swrand 431 432# 433# IP Policy Modules (/kernel/ipp): 434# 435IPP_KMODS += dlcosmk 436IPP_KMODS += flowacct 437IPP_KMODS += ipgpc 438IPP_KMODS += dscpmk 439IPP_KMODS += tokenmt 440IPP_KMODS += tswtclmt 441 442# 443# 'Dacf' modules (/kernel/dacf) 444DACF_KMODS += consconfig_dacf 445 446# 447# SVVS Testing Modules (/kernel/strmod): 448# 449# These are streams and driver modules which are not to be 450# delivered with a released system. However, during development 451# it is convenient to build and install the SVVS kernel modules. 452# 453SVVS_KMODS += lmodb lmode lmodr lmodt svvslo tidg tivc tmux 454 455$(CLOSED_BUILD)SVVS += svvs 456 457# 458# Modules eXcluded from the product: 459# 460XMODS += 461$(CLOSED_BUILD)CLOSED_XMODS = \ 462 sdpib \ 463 wsdrv 464 465# 466# 'Dacf' Modules (/kernel/dacf): 467# 468DACF_KMODS += net_dacf 469 470# 471# MAC-Type Plugin Modules (/kernel/mac) 472# 473MAC_KMODS += mac_6to4 474MAC_KMODS += mac_ether 475MAC_KMODS += mac_ipv4 476MAC_KMODS += mac_ipv6 477MAC_KMODS += mac_wifi 478MAC_KMODS += mac_ib 479 480# 481# socketmod (kernel/socketmod) 482# 483SOCKET_KMODS += sockpfp 484SOCKET_KMODS += socksctp 485SOCKET_KMODS += socksdp 486SOCKET_KMODS += sockrds 487 488# 489# kiconv modules (/kernel/kiconv): 490# 491KICONV_KMODS += kiconv_emea kiconv_ja kiconv_ko kiconv_sc kiconv_tc 492