PSARC 2007/045 I2O EOL and EOF
4863632 Hey Hey! Ho Ho! I2O Has Got to Go!
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 2007 Sun Microsystems, Inc. All rights reserved.
24 # Use is subject to license terms.
25 #
26 # ident "@(#)Makefile.intel.shared 1.30 07/02/20 SMI"
27 #
28
29 #
30 # This makefile contains the common definitions for all intel
31 # implementation architecture independent modules.
32 #
33
34 #
35 # Machine type (implementation architecture):
36 #
37 PLATFORM = i86pc
38
39 #
40 # Everybody needs to know how to build modstubs.o and to locate unix.o.
41 # Note that unix.o must currently be selected from among the possible
42 # "implementation architectures". Note further, that unix.o is only
43 # used as an optional error check for undefines so (theoretically)
44 # any "implementation architectures" could be used. We choose i86pc
45 # because it is the reference port.
46 #
47 UNIX_DIR = $(UTSBASE)/i86pc/unix
48 GENLIB_DIR = $(UTSBASE)/intel/genunix
49 GENASSYM_DIR = $(UTSBASE)/intel/genassym
50 IPDRV_DIR = $(UTSBASE)/intel/ip
51 MODSTUBS_DIR = $(UNIX_DIR)
52 DSF_DIR = $(UTSBASE)/$(PLATFORM)/genassym
53 LINTS_DIR = $(OBJS_DIR)
54 LINT_LIB_DIR = $(UTSBASE)/intel/lint-libs/$(OBJS_DIR)
55
56 UNIX_O = $(UNIX_DIR)/$(OBJS_DIR)/unix.o
57 GENLIB = $(GENLIB_DIR)/$(OBJS_DIR)/libgenunix.so
58 MODSTUBS_O = $(MODSTUBS_DIR)/$(OBJS_DIR)/modstubs.o
59 LINT_LIB = $(UTSBASE)/i86pc/lint-libs/$(OBJS_DIR)/llib-lunix.ln
60 GEN_LINT_LIB = $(UTSBASE)/intel/lint-libs/$(OBJS_DIR)/llib-lgenunix.ln
61
62 #
63 # Include the makefiles which define build rule templates, the
64 # collection of files per module, and a few specific flags. Note
65 # that order is significant, just as with an include path. The
66 # first build rule template which matches the files name will be
67 # used. By including these in order from most machine dependent
68 # to most machine independent, we allow a machine dependent file
69 # to be used in preference over a machine independent version
70 # (Such as a machine specific optimization, which preserves the
71 # interfaces.)
72 #
73 include $(UTSTREE)/intel/Makefile.files
74 include $(UTSTREE)/common/Makefile.files
75
76 #
77 # ----- TRANSITIONAL SECTION --------------------------------------------------
78 #
79
80 #
81 # Not everything which *should* be a module is a module yet. The
82 # following is a list of such objects which are currently part of
83 # genunix but which might someday become kmods. This must be
84 # defined before we include Makefile.uts, or else genunix's build
85 # won't be as parallel as we might like.
86 #
87 NOT_YET_KMODS = $(OLDPTY_OBJS) $(PTY_OBJS) $(MOD_OBJS)
88
89 #
90 # ----- END OF TRANSITIONAL SECTION -------------------------------------------
91 #
92 # Include machine independent rules. Note that this does not imply
93 # that the resulting module from rules in Makefile.uts is machine
94 # independent. Only that the build rules are machine independent.
95 #
96 include $(UTSBASE)/Makefile.uts
97
98 #
99 # The following must be defined for all implementations:
100 #
101 MODSTUBS = $(UTSBASE)/intel/ia32/ml/modstubs.s
102
103 #
104 # Define supported builds
105 #
106 DEF_BUILDS = $(DEF_BUILDS64) $(DEF_BUILDS32)
107 ALL_BUILDS = $(ALL_BUILDS64) $(ALL_BUILDS32)
108
109 #
110 # x86 or amd64 inline templates
111 #
112 INLINES_32 = $(UTSBASE)/intel/ia32/ml/ia32.il
113 INLINES_64 = $(UTSBASE)/intel/amd64/ml/amd64.il
114 INLINES += $(INLINES_$(CLASS))
115
116 #
117 # kernel-specific optimizations; override default in Makefile.master
118 #
119
120 CFLAGS_XARCH_32 = $(i386_CFLAGS)
121 CFLAGS_XARCH_64 = $(amd64_CFLAGS)
122 CFLAGS_XARCH = $(CFLAGS_XARCH_$(CLASS))
123
124 COPTFLAG_32 = $(COPTFLAG)
125 COPTFLAG_64 = $(COPTFLAG64)
126 COPTIMIZE = $(COPTFLAG_$(CLASS))
127
128 CFLAGS = $(CFLAGS_XARCH)
129 CFLAGS += $(COPTIMIZE)
130 CFLAGS += $(INLINES) -D_ASM_INLINES
131 CFLAGS += $(CCMODE)
132 CFLAGS += $(SPACEFLAG)
133 CFLAGS += $(CCUNBOUND)
134 CFLAGS += $(CFLAGS_uts)
135
136 ASFLAGS_XARCH_32 = $(i386_ASFLAGS)
137 ASFLAGS_XARCH_64 = $(amd64_ASFLAGS)
138 ASFLAGS_XARCH = $(ASFLAGS_XARCH_$(CLASS))
139
140 ASFLAGS += $(ASFLAGS_XARCH)
141 AS_INC_PATH += -I$(GENASSYM_DIR)/$(OBJS_DIR)
142
143 #
144 # Define the base directory for installation.
145 #
146 BASE_INS_DIR = $(ROOT)
147
148 #
149 # Debugging level
150 #
151 # Special knowledge of which special debugging options affect which
152 # file is used to optimize the build if these flags are changed.
153 #
154 DEBUG_DEFS_OBJ32 =
155 DEBUG_DEFS_DBG32 = -DDEBUG
156 DEBUG_DEFS_OBJ64 =
157 DEBUG_DEFS_DBG64 = -DDEBUG
158 DEBUG_DEFS = $(DEBUG_DEFS_$(BUILD_TYPE))
159
160 DEBUG_COND_OBJ32 :sh = echo \\043
161 DEBUG_COND_DBG32 =
162 DEBUG_COND_OBJ64 :sh = echo \\043
163 DEBUG_COND_DBG64 =
164 IF_DEBUG_OBJ = $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/
165
166 $(IF_DEBUG_OBJ)syscall.o := DEBUG_DEFS += -DSYSCALLTRACE
167 $(IF_DEBUG_OBJ)clock.o := DEBUG_DEFS += -DKSLICE=1
168
169 #
170 # This rather strange collection of definitions ensures that lint sees
171 # 'struct cpu' containing a fully declared embedded 'struct machcpu'
172 #
173 # There's something deeply dissatisfying about this.
174 #
175 LINTMACHFLAGS = -D_MACHDEP -I../../i86pc
176 $(LINTS_DIR)/kcpc.ln := LINTFLAGS += $(LINTMACHFLAGS)
177 $(LINTS_DIR)/kdi.ln := LINTFLAGS += $(LINTMACHFLAGS)
178 $(LINTS_DIR)/msacct.ln := LINTFLAGS += $(LINTMACHFLAGS)
179 $(LINTS_DIR)/thread.ln := LINTFLAGS += $(LINTMACHFLAGS)
180
181 #
182 # Build `options'. These are entirely historical and the need for these
183 # is completely removed by the module technology.
184 #
185 OPTION_DEFS = -DC2_AUDIT
186
187 #
188 # Collect the preprocessor definitions to be associated with *all*
189 # files.
190 #
191 ALL_DEFS = $(DEBUG_DEFS) $(OPTION_DEFS)
192
193 #
194 # The kernels modules which are "implementation architecture"
195 # specific for this machine are enumerated below. Note that most
196 # of these modules must exist (in one form or another) for each
197 # architecture.
198 #
199 # Common Drivers (usually pseudo drivers) (/kernel/drv)
200 # DRV_KMODS are built both 32-bit and 64-bit
201 # DRV_KMODS_32 are built only 32-bit
202 # DRV_KMODS_64 are built only 64-bit
203 #
204 DRV_KMODS += aac
205 DRV_KMODS += aggr
206 DRV_KMODS += ahci
207 DRV_KMODS += amd64_gart
208 DRV_KMODS += amr
209 DRV_KMODS += agpgart
210 DRV_KMODS += agptarget
211 DRV_KMODS += arp
212 DRV_KMODS += asy
213 DRV_KMODS += ata
214 DRV_KMODS += ath
215 DRV_KMODS += audio810
216 DRV_KMODS += audiohd
217 DRV_KMODS += audioixp
218 DRV_KMODS += bl
219 DRV_KMODS += bge
220 DRV_KMODS += bofi
221 DRV_KMODS += clone
222 DRV_KMODS += cmdk
223 DRV_KMODS += cn
224 DRV_KMODS += conskbd
225 DRV_KMODS += consms
226 DRV_KMODS += cpuid
227 DRV_KMODS += crypto
228 DRV_KMODS += cryptoadm
229 DRV_KMODS += devinfo
230 DRV_KMODS += dld
231 DRV_KMODS_32 += dnet
232 DRV_KMODS += dump
233 DRV_KMODS += ecpp
234 DRV_KMODS += fd
235 DRV_KMODS += fdc
236 DRV_KMODS += fssnap
237 DRV_KMODS += i8042
238 DRV_KMODS += i915
239 DRV_KMODS += icmp
240 DRV_KMODS += icmp6
241 DRV_KMODS += ip
242 DRV_KMODS += ip6
243 DRV_KMODS += ipf
244 DRV_KMODS += ippctl
245 DRV_KMODS += ipsecah
246 DRV_KMODS += ipsecesp
247 DRV_KMODS += iwscn
248 DRV_KMODS += kb8042
249 DRV_KMODS += keysock
250 DRV_KMODS += kssl
251 DRV_KMODS += kstat
252 DRV_KMODS += ksyms
253 DRV_KMODS += kmdb
254 DRV_KMODS += llc1
255 DRV_KMODS += lofi
256 DRV_KMODS += log
257 DRV_KMODS += logi
258 DRV_KMODS += logindmux
259 DRV_KMODS += mm
260 DRV_KMODS += mouse8042
261 DRV_KMODS_32 += mscsi
262 DRV_KMODS_32 += msm
263 DRV_KMODS += nca
264 DRV_KMODS += openeepr
265 DRV_KMODS += pci_pci
266 DRV_KMODS += pcic
267 DRV_KMODS += pcie_pci
268 DRV_KMODS += physmem
269 DRV_KMODS += pm
270 DRV_KMODS += poll
271 DRV_KMODS += pool
272 DRV_KMODS += power
273 DRV_KMODS += pseudo
274 DRV_KMODS += ptc
275 DRV_KMODS += ptm
276 DRV_KMODS += pts
277 DRV_KMODS += ptsl
278 DRV_KMODS += ramdisk
279 DRV_KMODS += random
280 DRV_KMODS += rds
281 DRV_KMODS += rpcib
282 DRV_KMODS += rsm
283 DRV_KMODS += rts
284 DRV_KMODS += sad
285 DRV_KMODS += sctp
286 DRV_KMODS += sctp6
287 DRV_KMODS += sd
288 DRV_KMODS += sgen
289 DRV_KMODS += si3124
290 DRV_KMODS += smbios
291 DRV_KMODS += spdsock
292 DRV_KMODS += sppp
293 DRV_KMODS += sppptun
294 DRV_KMODS += st
295 DRV_KMODS += sy
296 DRV_KMODS += sysevent
297 DRV_KMODS += sysmsg
298 DRV_KMODS += tcp
299 DRV_KMODS += tcp6
300 DRV_KMODS += tl
301 DRV_KMODS += tnf
302 DRV_KMODS += udp
303 DRV_KMODS += udp6
304 DRV_KMODS += vgatext
305 DRV_KMODS += vni
306 DRV_KMODS += wc
307 DRV_KMODS += winlock
308 DRV_KMODS += xge
309 DRV_KMODS += zcons
310
311 #
312 # Don't build some of these for OpenSolaris, since they will be
313 # replaced by binaries that are signed by Sun Release Engineering.
314 #
315 $(CLOSED_BUILD)DRV_KMODS += dca
316
317 $(CLOSED_BUILD)CLOSED_DRV_KMODS += audioens
318 $(CLOSED_BUILD)CLOSED_DRV_KMODS += audiovia823x
319 $(CLOSED_BUILD)CLOSED_DRV_KMODS += bmc
320 $(CLOSED_BUILD)CLOSED_DRV_KMODS += bscbus
321 $(CLOSED_BUILD)CLOSED_DRV_KMODS += bscv
322 $(CLOSED_BUILD)CLOSED_DRV_KMODS += chxge
323 $(CLOSED_BUILD)CLOSED_DRV_KMODS += elxl
324 $(CLOSED_BUILD)CLOSED_DRV_KMODS += glm
325 $(CLOSED_BUILD)CLOSED_DRV_KMODS += iprb
326 $(CLOSED_BUILD)CLOSED_DRV_KMODS += llc2
327 $(CLOSED_BUILD)CLOSED_DRV_KMODS += marvell88sx
328 $(CLOSED_BUILD)CLOSED_DRV_KMODS += mpt
329 $(CLOSED_BUILD)CLOSED_DRV_KMODS_32 += ncrs
330 $(CLOSED_BUILD)CLOSED_DRV_KMODS += pcn
331 $(CLOSED_BUILD)CLOSED_DRV_KMODS += rtls
332 $(CLOSED_BUILD)CLOSED_DRV_KMODS_32 += sbpro
333
334 #
335 # Common code drivers
336 #
337
338 DRV_KMODS += e1000g
339 DRV_KMODS += rge
340 $(CLOSED_BUILD)CLOSED_DRV_KMODS += ixgb
341
342 #
343 # DTrace and DTrace Providers
344 #
345 DRV_KMODS += dtrace
346 DRV_KMODS += fbt
347 DRV_KMODS += lockstat
348 DRV_KMODS += profile
349 DRV_KMODS += sdt
350 DRV_KMODS += systrace
351 DRV_KMODS += fasttrap
352
353 #
354 # I/O framework test drivers
355 #
356 DRV_KMODS += pshot
357 DRV_KMODS += gen_drv
358 DRV_KMODS += tvhci tphci tclient
359 DRV_KMODS += emul64
360
361 #
362 # Machine Specific Driver Modules (/kernel/drv):
363 #
364 DRV_KMODS += options
365 $(CLOSED_BUILD)CLOSED_DRV_KMODS += scsi_vhci
366
367 #
368 # PCMCIA specific module(s)
369 #
370 DRV_KMODS += pcs
371 DRV_KMODS += pcata pcmem pcram
372 DRV_KMODS += pem
373 MISC_KMODS += cardbus
374 $(CLOSED_BUILD)CLOSED_DRV_KMODS += pcelx
375 $(CLOSED_BUILD)CLOSED_DRV_KMODS += pcser
376
377 #
378 # SCSI Enclosure Services driver
379 #
380 DRV_KMODS += ses
381
382 #
383 # USB specific modules
384 #
385 DRV_KMODS += hid
386 DRV_KMODS += hubd
387 DRV_KMODS += uhci
388 DRV_KMODS += ehci
389 DRV_KMODS += ohci
390 DRV_KMODS += usb_mid
391 DRV_KMODS += usb_ia
392 DRV_KMODS += scsa2usb
393 DRV_KMODS += usbprn
394 DRV_KMODS += ugen
395 DRV_KMODS += usbser
396 DRV_KMODS += usbsacm
397 DRV_KMODS += usbsksp
398 DRV_KMODS += usbsprl
399 DRV_KMODS += usb_ac
400 DRV_KMODS += usb_as
401 DRV_KMODS += usbskel
402 DRV_KMODS += usbvc
403
404 $(CLOSED_BUILD)CLOSED_DRV_KMODS += usbser_edge
405
406 #
407 # 1394 modules
408 #
409 MISC_KMODS += s1394 sbp2
410 DRV_KMODS += hci1394 scsa1394
411 DRV_KMODS += av1394
412 DRV_KMODS += dcam1394
413
414 #
415 # InfiniBand pseudo drivers
416 #
417 DRV_KMODS += ib ibd rdsib sdp
418
419 #
420 # LVM modules
421 #
422 DRV_KMODS += md
423 MISC_KMODS += md_stripe md_hotspares md_mirror md_raid md_trans md_notify
424 MISC_KMODS += md_sp
425
426 #
427 # Brand modules
428 #
429 MISC_KMODS += sn1_brand lx_brand
430 DRV_KMODS += lx_systrace lx_ptm lx_audio
431 STRMOD_KMODS += ldlinux
432
433 #
434 # Exec Class Modules (/kernel/exec):
435 #
436 EXEC_KMODS += elfexec intpexec javaexec
437
438 #
439 # Scheduling Class Modules (/kernel/sched):
440 #
441 SCHED_KMODS += IA RT TS RT_DPTBL TS_DPTBL FSS FX FX_DPTBL
442
443 #
444 # File System Modules (/kernel/fs):
445 #
446 FS_KMODS += autofs cachefs ctfs dev devfs fdfs fifofs hsfs lofs
447 FS_KMODS += lx_afs lx_proc mntfs namefs nfs objfs zfs
448 FS_KMODS += pcfs procfs sockfs specfs tmpfs udfs ufs
449
450 #
451 # Streams Modules (/kernel/strmod):
452 #
453 STRMOD_KMODS += 6to4tun atun bufmod connld dedump ldterm pckt pfmod pipemod
454 STRMOD_KMODS += ptem redirmod rpcmod rlmod telmod timod
455 STRMOD_KMODS += spppasyn spppcomp
456 STRMOD_KMODS += tirdwr ttcompat tun
457 STRMOD_KMODS += usbkbm
458 STRMOD_KMODS += usbms
459 STRMOD_KMODS += usb_ah
460 STRMOD_KMODS += drcompat
461 STRMOD_KMODS += nattymod
462 STRMOD_KMODS += cryptmod
463 STRMOD_KMODS += vuid2ps2
464 STRMOD_KMODS += vuid3ps2
465 STRMOD_KMODS += vuidm3p
466 STRMOD_KMODS += vuidm4p
467 STRMOD_KMODS += vuidm5p
468
469 #
470 # 'System' Modules (/kernel/sys):
471 #
472 SYS_KMODS += c2audit
473 SYS_KMODS += doorfs
474 SYS_KMODS += exacctsys
475 SYS_KMODS += inst_sync
476 SYS_KMODS += kaio
477 SYS_KMODS += msgsys
478 SYS_KMODS += pipe
479 SYS_KMODS += portfs
480 SYS_KMODS += pset
481 SYS_KMODS += semsys
482 SYS_KMODS += shmsys
483 SYS_KMODS += sysacct
484 SYS_KMODS += acctctl
485
486 #
487 # 'Misc' Modules (/kernel/misc)
488 # MISC_KMODS are built both 32-bit and 64-bit
489 # MISC_KMODS_32 are built only 32-bit
490 # MISC_KMODS_64 are built only 64-bit
491 #
492 MISC_KMODS += acpica
493 MISC_KMODS += agpmaster
494 MISC_KMODS += amsrc2
495 MISC_KMODS += audiosup
496 MISC_KMODS += bootdev
497 MISC_KMODS += busra
498 MISC_KMODS += cmlb
499 MISC_KMODS += consconfig
500 MISC_KMODS += ctf
501 MISC_KMODS += dadk
502 MISC_KMODS += diaudio
503 MISC_KMODS += dls
504 MISC_KMODS += drm
505 MISC_KMODS += fssnap_if
506 MISC_KMODS += gda
507 MISC_KMODS += gld
508 MISC_KMODS += hidparser
509 MISC_KMODS += hook
510 MISC_KMODS += hpcsvc
511 MISC_KMODS += ibcm
512 MISC_KMODS += ibdm
513 MISC_KMODS += ibmf
514 MISC_KMODS += ibtl
515 MISC_KMODS += ipc
516 MISC_KMODS += kbtrans
517 MISC_KMODS += kcf
518 MISC_KMODS += kgssapi
519 MISC_KMODS += kmech_dummy
520 MISC_KMODS += kmech_krb5
521 MISC_KMODS += mac
522 MISC_KMODS += mixer
523 MISC_KMODS += net80211
524 MISC_KMODS += nfs_dlboot
525 MISC_KMODS += nfssrv
526 MISC_KMODS += neti
527 MISC_KMODS += pci_autoconfig
528 MISC_KMODS += pcicfg
529 MISC_KMODS += pciehpc
530 MISC_KMODS += pcihp
531 MISC_KMODS += pcmcia
532 MISC_KMODS += rpcsec
533 MISC_KMODS += rpcsec_gss
534 MISC_KMODS += rsmops
535 MISC_KMODS += sata
536 MISC_KMODS += scsi
537 MISC_KMODS += strategy
538 MISC_KMODS += strplumb
539 MISC_KMODS += sysinit
540 MISC_KMODS += tem
541 MISC_KMODS += tlimod
542 MISC_KMODS += usba usba10 usbs49_fw
543
544 $(CLOSED_BUILD)CLOSED_MISC_KMODS += amsrc1
545 $(CLOSED_BUILD)CLOSED_MISC_KMODS += klmmod klmops
546 $(CLOSED_BUILD)CLOSED_MISC_KMODS += phx
547
548 #
549 # Software Cryptographic Providers (/kernel/crypto):
550 #
551 # Don't build some of these for OpenSolaris, since they will be
552 # replaced by binaries that are signed by Sun RE.
553 #
554 $(CLOSED_BUILD)CRYPTO_KMODS += aes
555 $(CLOSED_BUILD)CRYPTO_KMODS += arcfour
556 $(CLOSED_BUILD)CRYPTO_KMODS += blowfish
557 $(CLOSED_BUILD)CRYPTO_KMODS += des
558 CRYPTO_KMODS += md5
559 CRYPTO_KMODS += rsa
560 CRYPTO_KMODS += sha1
561 CRYPTO_KMODS += sha2
562 CRYPTO_KMODS += swrand
563
564 #
565 # IP Policy Modules (/kernel/ipp)
566 #
567 IPP_KMODS += dlcosmk
568 IPP_KMODS += flowacct
569 IPP_KMODS += ipgpc
570 IPP_KMODS += dscpmk
571 IPP_KMODS += tokenmt
572 IPP_KMODS += tswtclmt
573
574 #
575 # generic-unix module (/kernel/genunix):
576 #
577 GENUNIX_KMODS += genunix
578
579 #
580 # SVVS Testing Modules (/kernel/strmod):
581 #
582 # These are streams and driver modules which are not to be
583 # delivered with a released system. However, during development
584 # it is convenient to build and install the SVVS kernel modules.
585 #
586 SVVS_KMODS += lmodb lmode lmodr lmodt lo tidg tivc tmux
587
588 SVVS += svvs
589
590 #
591 # Modules eXcluded from the product:
592 #
593 $(CLOSED_BUILD)CLOSED_XMODS = \
594 adpu320 \
595 daplt \
596 lsimega \
597 nge \
598 sdpib \
599 spwr \
600 tavor
601
602
603 #
604 # 'Dacf' Modules (/kernel/dacf):
605 #
606 DACF_KMODS += usb_ac_dacf
607
608 #
609 # Performance Counter BackEnd modules (/usr/kernel/pcbe)
610 #
611 PCBE_KMODS += p123_pcbe p4_pcbe opteron_pcbe
612
613 #
614 # MAC-Type Plugin Modules (/kernel/mac)
615 #
616 MAC_KMODS += mac_ether
617 MAC_KMODS += mac_wifi
618
619 #
620 # 'Devname' Modules (kernel/devname)
621 #
622 DEVNAME_KMODS += sdev_nsconfig_mod
--- EOF ---