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 # Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
23
24
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 blkdev 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
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 += rdsv3
224 DRV_KMODS += chxge
225 DRV_KMODS += smbsrv
226 DRV_KMODS += vscan
227 DRV_KMODS += nsmb
228 DRV_KMODS += fm
229 DRV_KMODS += nulldriver
230 DRV_KMODS += bridge trill
231 DRV_KMODS += bpf
232 DRV_KMODS += dca
233
234 $(CLOSED_BUILD)CLOSED_DRV_KMODS += glm
235 $(CLOSED_BUILD)CLOSED_DRV_KMODS += isp
236 $(CLOSED_BUILD)CLOSED_DRV_KMODS += llc2
237 $(CLOSED_BUILD)CLOSED_DRV_KMODS += mpt
238 $(CLOSED_BUILD)CLOSED_DRV_KMODS += qus
239 $(CLOSED_BUILD)CLOSED_DRV_KMODS += se
240
241 #
242 # Hardware Drivers in common space
243 #
244
245 DRV_KMODS += afe
246 DRV_KMODS += audio1575
247 DRV_KMODS += audioens
248 DRV_KMODS += audiols
249 DRV_KMODS += audiop16x
250 DRV_KMODS += audiopci
251 DRV_KMODS += audiots
252 DRV_KMODS += e1000g
253 DRV_KMODS += hxge
254 DRV_KMODS += mxfe
255 DRV_KMODS += pcan
256 DRV_KMODS += pcwl
257 DRV_KMODS += rge
258 DRV_KMODS += rtls
259 DRV_KMODS += sfe
260 DRV_KMODS += aac
261 DRV_KMODS += igb
262 DRV_KMODS += ixgbe
263 DRV_KMODS += vr
264 DRV_KMODS += mr_sas
265 $(CLOSED_BUILD)CLOSED_DRV_KMODS += ixgb
266 DRV_KMODS += yge
267
268 #
269 # Machine Specific Driver Modules (/kernel/drv):
270 #
271 DRV_KMODS += audiocs
272 DRV_KMODS += bge dmfe eri fas hme qfe
273 DRV_KMODS += openeepr options sd ses st
274 DRV_KMODS += ssd
275 DRV_KMODS += ecpp
276 DRV_KMODS += hid hubd ehci ohci uhci usb_mid usb_ia scsa2usb usbprn ugen
277 DRV_KMODS += usbser usbsacm usbsksp usbsprl
278 DRV_KMODS += usb_as usb_ac
279 DRV_KMODS += usbskel
280 DRV_KMODS += usbvc
281 DRV_KMODS += usbftdi
282 DRV_KMODS += wusb_df hwahc hwarc wusb_ca
283 DRV_KMODS += usbecm
284 DRV_KMODS += hci1394 av1394 scsa1394 dcam1394
285 DRV_KMODS += sbp2
286 DRV_KMODS += ib ibp eibnx eoib rdsib sdp iser daplt hermon tavor sol_ucma sol_uverbs
287 DRV_KMODS += sol_umad
288 DRV_KMODS += pci_pci pcieb pcieb_bcm
289 DRV_KMODS += i8042 kb8042 mouse8042
290 DRV_KMODS += fcode
291 DRV_KMODS += mpt_sas
292 DRV_KMODS += socal
293 DRV_KMODS += sgen
294 DRV_KMODS += myri10ge
295 DRV_KMODS += smp
296 DRV_KMODS += dad
297 DRV_KMODS += scsi_vhci
298 DRV_KMODS += fcp
299 DRV_KMODS += fcip
300 DRV_KMODS += fcsm
301 DRV_KMODS += fp
302 DRV_KMODS += qlc
303 DRV_KMODS += qlge
304 DRV_KMODS += stmf
305 DRV_KMODS += stmf_sbd
306 DRV_KMODS += fct
307 DRV_KMODS += fcoe
308 DRV_KMODS += fcoet
309 DRV_KMODS += fcoei
310 DRV_KMODS += qlt
311 DRV_KMODS += iscsit
312 DRV_KMODS += pppt
313 DRV_KMODS += ncall nsctl sdbc nskern sv
314 DRV_KMODS += ii rdc rdcsrv rdcstub
315 DRV_KMODS += iscsi
316 DRV_KMODS += emlxs
317 DRV_KMODS += oce
318 DRV_KMODS += srpt
319 DRV_KMODS += pmcs
320 DRV_KMODS += pmcs8001fw
321
322 $(CLOSED_BUILD)CLOSED_DRV_KMODS += ifp
323 $(CLOSED_BUILD)CLOSED_DRV_KMODS += uata
324 $(CLOSED_BUILD)CLOSED_DRV_KMODS += usbser_edge
325
326 #
327 # I/O framework test drivers
328 #
329 DRV_KMODS += pshot
330 DRV_KMODS += gen_drv
331 DRV_KMODS += tvhci tphci tclient
332 DRV_KMODS += emul64
333
334 #
335 # PCMCIA specific module(s)
336 #
337 DRV_KMODS += pcs
338 MISC_KMODS += busra cardbus dada pcmcia
339 DRV_KMODS += pcata
340 DRV_KMODS += pcic
341
342 $(CLOSED_BUILD)CLOSED_DRV_KMODS += pcser
343
344 # Add lvm
345 #
346 DRV_KMODS += md
347 MISC_KMODS += md_mirror md_stripe md_hotspares md_raid md_trans md_notify
348 MISC_KMODS += md_sp
349
350 #
351 # Exec Class Modules (/kernel/exec):
352 #
353 EXEC_KMODS += aoutexec elfexec intpexec shbinexec javaexec
354
355 #
356 # Scheduling Class Modules (/kernel/sched):
357 #
358 SCHED_KMODS += RT TS RT_DPTBL TS_DPTBL IA FSS FX FX_DPTBL SDC
359
360 #
361 # File System Modules (/kernel/fs):
362 #
363 FS_KMODS += dev devfs fdfs fifofs hsfs lofs namefs nfs pcfs tmpfs zfs
364 FS_KMODS += zut specfs udfs ufs autofs cachefs procfs sockfs mntfs
365 FS_KMODS += ctfs objfs sharefs dcfs smbfs
366
367 #
368 # Streams Modules (/kernel/strmod):
369 #
370 STRMOD_KMODS += bufmod connld dedump ldterm ms pckt pfmod
371 STRMOD_KMODS += pipemod ptem redirmod rpcmod rlmod telmod timod
372 STRMOD_KMODS += spppasyn spppcomp
373 STRMOD_KMODS += tirdwr ttcompat
374 STRMOD_KMODS += usbkbm usbms usbwcm usb_ah
375 STRMOD_KMODS += drcompat
376 STRMOD_KMODS += cryptmod
377 STRMOD_KMODS += vuid3ps2
378
379 #
380 # 'System' Modules (/kernel/sys):
381 #
382 SYS_KMODS += c2audit
383 SYS_KMODS += exacctsys
384 SYS_KMODS += inst_sync kaio msgsys semsys shmsys sysacct pipe
385 SYS_KMODS += doorfs pset acctctl portfs
386
387 #
388 # 'User' Modules (/kernel/misc):
389 #
390 MISC_KMODS += ac97
391 MISC_KMODS += bignum
392 MISC_KMODS += consconfig gld ipc nfs_dlboot nfssrv scsi
393 MISC_KMODS += strplumb swapgeneric tlimod
394 MISC_KMODS += rpcsec rpcsec_gss kgssapi kmech_dummy
395 MISC_KMODS += kmech_krb5
396 MISC_KMODS += fssnap_if
397 MISC_KMODS += hidparser kbtrans usba usba10 usbs49_fw
398 MISC_KMODS += s1394
399 MISC_KMODS += hpcsvc pcihp
400 MISC_KMODS += rsmops
401 MISC_KMODS += kcf
402 MISC_KMODS += ksocket
403 MISC_KMODS += ibcm
404 MISC_KMODS += ibdm
405 MISC_KMODS += ibdma
406 MISC_KMODS += ibmf
407 MISC_KMODS += ibtl
408 MISC_KMODS += sol_ofs
409 MISC_KMODS += idm
410 MISC_KMODS += idmap
411 MISC_KMODS += hook
412 MISC_KMODS += neti
413 MISC_KMODS += ctf
414 MISC_KMODS += mac dls
415 MISC_KMODS += cmlb
416 MISC_KMODS += tem
417 MISC_KMODS += pcicfg fcodem fcpci
418 MISC_KMODS += scsi_vhci_f_sym scsi_vhci_f_tpgs scsi_vhci_f_asym_sun
419 MISC_KMODS += scsi_vhci_f_sym_hds
420 MISC_KMODS += scsi_vhci_f_tape scsi_vhci_f_tpgs_tape
421 MISC_KMODS += fctl
422 MISC_KMODS += emlxs_fw
423 MISC_KMODS += qlc_fw_2200
424 MISC_KMODS += qlc_fw_2300
425 MISC_KMODS += qlc_fw_2400
426 MISC_KMODS += qlc_fw_2500
427 MISC_KMODS += qlc_fw_6322
428 MISC_KMODS += qlc_fw_8100
429 MISC_KMODS += spuni
430 MISC_KMODS += hwa1480_fw uwba
431 MISC_KMODS += mii
432
433 $(CLOSED_BUILD)CLOSED_MISC_KMODS += klmmod klmops
434 $(CLOSED_BUILD)CLOSED_MISC_KMODS += scsi_vhci_f_asym_lsi
435 $(CLOSED_BUILD)CLOSED_MISC_KMODS += scsi_vhci_f_asym_emc
436 $(CLOSED_BUILD)CLOSED_MISC_KMODS += scsi_vhci_f_sym_emc
437
438 #
439 # Software Cryptographic Providers (/kernel/crypto):
440 #
441 CRYPTO_KMODS += aes
442 CRYPTO_KMODS += arcfour
443 CRYPTO_KMODS += blowfish
444 CRYPTO_KMODS += des
445 CRYPTO_KMODS += md4
446 CRYPTO_KMODS += md5
447 CRYPTO_KMODS += ecc
448 CRYPTO_KMODS += rsa
449 CRYPTO_KMODS += sha1
450 CRYPTO_KMODS += sha2
451 CRYPTO_KMODS += swrand
452
453 #
454 # IP Policy Modules (/kernel/ipp):
455 #
456 IPP_KMODS += dlcosmk
457 IPP_KMODS += flowacct
458 IPP_KMODS += ipgpc
459 IPP_KMODS += dscpmk
460 IPP_KMODS += tokenmt
461 IPP_KMODS += tswtclmt
462
463 #
464 # 'Dacf' modules (/kernel/dacf)
465 DACF_KMODS += consconfig_dacf
466
467 #
468 # SVVS Testing Modules (/kernel/strmod):
469 #
470 # These are streams and driver modules which are not to be
471 # delivered with a released system. However, during development
472 # it is convenient to build and install the SVVS kernel modules.
473 #
474 SVVS_KMODS += lmodb lmode lmodr lmodt svvslo tidg tivc tmux
475
476 $(CLOSED_BUILD)SVVS += svvs
477
478 #
479 # Modules eXcluded from the product:
480 #
481 XMODS +=
482 $(CLOSED_BUILD)CLOSED_XMODS = \
483 sdpib \
484 wsdrv
485
486 #
487 # 'Dacf' Modules (/kernel/dacf):
488 #
489 DACF_KMODS += net_dacf
490
491 #
492 # MAC-Type Plugin Modules (/kernel/mac)
493 #
494 MAC_KMODS += mac_6to4
495 MAC_KMODS += mac_ether
496 MAC_KMODS += mac_ipv4
497 MAC_KMODS += mac_ipv6
498 MAC_KMODS += mac_wifi
499 MAC_KMODS += mac_ib
500
501 #
502 # socketmod (kernel/socketmod)
503 #
504 SOCKET_KMODS += sockpfp
505 SOCKET_KMODS += socksctp
506 SOCKET_KMODS += socksdp
507 SOCKET_KMODS += sockrds
508 SOCKET_KMODS += ksslf
509
510 #
511 # kiconv modules (/kernel/kiconv):
512 #
513 KICONV_KMODS += kiconv_emea kiconv_ja kiconv_ko kiconv_sc kiconv_tc
Cache object: 5c14ad31417b5f532fa9cfcf1fb6f4f7
|