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