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