3735 should include an empty make variable in the default CFLAGS/CCFLAGS
[unleashed.git] / usr / src / uts / sparc / Makefile.sparc.shared
blob8af720cd3401750e027539177c0095013d92a268
2 # CDDL HEADER START
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.
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.
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]
19 # CDDL HEADER END
22 # Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
26 #       This makefile contains the common definitions for all sparc
27 #       implementation architecture independent modules.
31 #       Define supported builds
33 DEF_BUILDS      = $(DEF_BUILDS64)
34 ALL_BUILDS      = $(ALL_BUILDS64)
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.
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)
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
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
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
62 LINT_LIB         = $(LINT_LIB_$(CLASS))
63 GEN_LINT_LIB     = $(GEN_LINT_LIB_$(CLASS))
65 LINT32_DIRS      = $(LINT32_BUILDS:%=$(UTSBASE)/sparc/lint-libs/%)
66 LINT32_FILES     = $(LINT32_DIRS:%=%/llib-l$(MODULE).ln)
68 LINT64_DIRS      = $(LINT64_BUILDS:%=$(UTSBASE)/sparc/lint-libs/%)
69 LINT64_FILES     = $(LINT64_DIRS:%=%/llib-l$(MODULE).ln)
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.)
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
88 # ----- TRANSITIONAL SECTION --------------------------------------------------
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.
98 NOT_YET_KMODS    = $(OLDPTY_OBJS) $(PTY_OBJS) $(VCONS_CONF_OBJS) $(MOD_OBJS)
101 # ----- END OF TRANSITIONAL SECTION -------------------------------------------
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.
107 include $(UTSBASE)/Makefile.uts
110 #       machine specific optimization, override default in Makefile.master
112 XARCH_32        = -xarch=v8
113 XARCH_64        = -m64
114 XARCH           = $(XARCH_$(CLASS))
116 COPTIMIZE_32    = -xO3
117 COPTIMIZE_64    = -xO3
118 COPTIMIZE       = $(COPTIMIZE_$(CLASS))
120 CCMODE          = -Xa
122 CFLAGS_32       = -xcg92
123 CFLAGS_64       = -xchip=ultra $(CCABS32) $(CCREGSYM)
124 CFLAGS          = $(CFLAGS_$(CLASS))
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_$(CLASS))
135 CFLAGS          += $(C99MODE)
136 CFLAGS          += $(CCUNBOUND)
137 CFLAGS          += $(CCSTATICSYM)
138 CFLAGS          += $(CC32BITCALLERS)
139 CFLAGS          += $(CCNOAUTOINLINE)
140 CFLAGS          += $(IROPTFLAG)
141 CFLAGS          += $(CGLOBALSTATIC)
142 CFLAGS          += -xregs=no%float
143 CFLAGS          += -xstrconst
144 CFLAGS          += $(CSOURCEDEBUGFLAGS)
145 CFLAGS          += $(CUSERFLAGS)
147 ASFLAGS         += $(XARCH)
149 LINT_DEFS_32    =
150 LINT_DEFS_64    = -m64
151 LINT_DEFS       += $(LINT_DEFS_$(CLASS))
154 #       The following must be defined for all implementations:
156 #       MODSTUBS:       Module stubs source file.
158 MODSTUBS         = $(UTSBASE)/sparc/ml/modstubs.s
161 #       Define the actual specific platforms - obviously none.
163 MACHINE_DEFS     =
166 #       Debugging level
168 #       Special knowledge of which special debugging options effect which
169 #       file is used to optimize the build if these flags are changed.
171 #       XXX: The above could possibly be done for more flags and files, but
172 #            is left as an experiment to the interested reader. Be forewarned,
173 #            that excessive use could lead to maintenance difficulties.
175 DEBUG_DEFS_OBJ32        =
176 DEBUG_DEFS_DBG32        = -DDEBUG
177 DEBUG_DEFS_OBJ64        =
178 DEBUG_DEFS_DBG64        = -DDEBUG
179 DEBUG_DEFS              = $(DEBUG_DEFS_$(BUILD_TYPE))
181 DEBUG_COND_OBJ32        :sh = echo \\043
182 DEBUG_COND_DBG32        =
183 DEBUG_COND_OBJ64        :sh = echo \\043
184 DEBUG_COND_DBG64        =
185 IF_DEBUG_OBJ            = $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/
187 $(IF_DEBUG_OBJ)syscall.o        :=      DEBUG_DEFS      += -DSYSCALLTRACE
188 $(IF_DEBUG_OBJ)clock.o          :=      DEBUG_DEFS      += -DKSLICE=1
190 # Comment these out if you don't want dispatcher lock statistics.
192 # $(IF_DEBUG_OBJ)disp_lock.o    := DEBUG_DEFS   += -DDISP_LOCK_STATS
195 #       Collect the preprocessor definitions to be associated with *all*
196 #       files.
198 ALL_DEFS         = $(MACHINE_DEFS) $(DEBUG_DEFS) $(OPTION_DEFS)
201 #       The kernels modules which are "implementation architecture"
202 #       specific for this machine are enumerated below. Note that most
203 #       of these modules must exist (in one form or another) for each
204 #       architecture.
206 #       Common Drivers (usually pseudo drivers) (/kernel/drv):
208 DRV_KMODS       += aggr arp audio bl blkdev bofi clone cn conskbd consms cpuid
209 DRV_KMODS       += crypto cryptoadm devinfo dump
210 DRV_KMODS       += dtrace fasttrap fbt lockstat profile sdt systrace dcpc
211 DRV_KMODS       += fssnap icmp icmp6 ip ip6 ipnet ipsecah
212 DRV_KMODS       += ipsecesp iptun iwscn keysock kmdb kstat ksyms llc1
213 DRV_KMODS       += lofi
214 DRV_KMODS       += log logindmux kssl mm nca physmem pm poll pool
215 DRV_KMODS       += pseudo ptc ptm pts ptsl ramdisk random rsm rts sad
216 DRV_KMODS       += simnet softmac sppp sppptun sy sysevent sysmsg 
217 DRV_KMODS       += spdsock
218 DRV_KMODS       += tcp tcp6 tl tnf ttymux udp udp6 wc winlock zcons
219 DRV_KMODS       += ippctl
220 DRV_KMODS       += dld
221 DRV_KMODS       += ipf
222 DRV_KMODS       += rpcib
223 DRV_KMODS       += dlpistub
224 DRV_KMODS       += vnic
225 DRV_KMODS       += xge
226 DRV_KMODS       += rds
227 DRV_KMODS       += rdsv3
228 DRV_KMODS       += chxge
229 DRV_KMODS       += smbsrv
230 DRV_KMODS       += vscan
231 DRV_KMODS       += nsmb
232 DRV_KMODS       += fm
233 DRV_KMODS       += nulldriver
234 DRV_KMODS       += bridge trill
235 DRV_KMODS       += bpf
236 DRV_KMODS       += dca
238 $(CLOSED_BUILD)CLOSED_DRV_KMODS += glm
239 $(CLOSED_BUILD)CLOSED_DRV_KMODS += isp
240 $(CLOSED_BUILD)CLOSED_DRV_KMODS += mpt
241 $(CLOSED_BUILD)CLOSED_DRV_KMODS += qus
242 $(CLOSED_BUILD)CLOSED_DRV_KMODS += se
245 #       Hardware Drivers in common space
248 DRV_KMODS       += afe
249 DRV_KMODS       += audio1575
250 DRV_KMODS       += audioens
251 DRV_KMODS       += audiols
252 DRV_KMODS       += audiop16x
253 DRV_KMODS       += audiopci
254 DRV_KMODS       += audiots
255 DRV_KMODS       += e1000g
256 DRV_KMODS       += efe
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
273 #       Machine Specific Driver Modules (/kernel/drv):
275 DRV_KMODS       += audiocs
276 DRV_KMODS       += bge dmfe eri 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       += usbecm
288 DRV_KMODS       += hci1394 av1394 scsa1394 dcam1394
289 DRV_KMODS       += sbp2
290 DRV_KMODS       += ib ibp eibnx eoib rdsib sdp iser daplt hermon tavor sol_ucma sol_uverbs
291 DRV_KMODS       += sol_umad
292 DRV_KMODS       += pci_pci pcieb pcieb_bcm
293 DRV_KMODS       += i8042 kb8042 mouse8042
294 DRV_KMODS       += fcode
295 DRV_KMODS       += mpt_sas
296 DRV_KMODS       += socal
297 DRV_KMODS       += sgen
298 DRV_KMODS       += myri10ge
299 DRV_KMODS       += smp
300 DRV_KMODS       += dad
301 DRV_KMODS       += scsi_vhci
302 DRV_KMODS       += fcp
303 DRV_KMODS       += fcip
304 DRV_KMODS       += fcsm
305 DRV_KMODS       += fp
306 DRV_KMODS       += qlc
307 DRV_KMODS       += qlge
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       += oce
322 DRV_KMODS       += srpt
323 DRV_KMODS       += pmcs
324 DRV_KMODS       += pmcs8001fw
326 $(CLOSED_BUILD)CLOSED_DRV_KMODS += ifp
327 $(CLOSED_BUILD)CLOSED_DRV_KMODS += uata
328 $(CLOSED_BUILD)CLOSED_DRV_KMODS += usbser_edge
331 #       I/O framework test drivers
333 DRV_KMODS       += pshot
334 DRV_KMODS       += gen_drv
335 DRV_KMODS       += tvhci tphci tclient
336 DRV_KMODS       += emul64
339 # PCMCIA specific module(s)
341 DRV_KMODS       += pcs
342 MISC_KMODS      += busra cardbus dada pcmcia
343 DRV_KMODS       += pcata
344 DRV_KMODS       += pcic
346 $(CLOSED_BUILD)CLOSED_DRV_KMODS += pcser
348 # Add lvm
350 DRV_KMODS       += md
351 MISC_KMODS      += md_mirror md_stripe md_hotspares md_raid md_trans md_notify
352 MISC_KMODS      += md_sp
355 #       Exec Class Modules (/kernel/exec):
357 EXEC_KMODS      += aoutexec elfexec intpexec shbinexec javaexec
360 #       Scheduling Class Modules (/kernel/sched):
362 SCHED_KMODS     += RT TS RT_DPTBL TS_DPTBL IA FSS FX FX_DPTBL SDC
365 #       File System Modules (/kernel/fs):
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
372 #       Streams Modules (/kernel/strmod):
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 usbwcm usb_ah
379 STRMOD_KMODS    += drcompat
380 STRMOD_KMODS    += cryptmod
381 STRMOD_KMODS    += vuid3ps2
384 #       'System' Modules (/kernel/sys):
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
392 #       'User' Modules (/kernel/misc):
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      += sol_ofs
413 MISC_KMODS      += idm
414 MISC_KMODS      += idmap
415 MISC_KMODS      += hook
416 MISC_KMODS      += neti
417 MISC_KMODS      += ctf 
418 MISC_KMODS      += mac dls
419 MISC_KMODS      += cmlb
420 MISC_KMODS      += tem
421 MISC_KMODS      += pcicfg fcodem fcpci
422 MISC_KMODS      += scsi_vhci_f_sym scsi_vhci_f_tpgs scsi_vhci_f_asym_sun
423 MISC_KMODS      += scsi_vhci_f_sym_hds
424 MISC_KMODS      += scsi_vhci_f_tape scsi_vhci_f_tpgs_tape
425 MISC_KMODS      += fctl
426 MISC_KMODS      += emlxs_fw
427 MISC_KMODS      += qlc_fw_2200
428 MISC_KMODS      += qlc_fw_2300
429 MISC_KMODS      += qlc_fw_2400
430 MISC_KMODS      += qlc_fw_2500
431 MISC_KMODS      += qlc_fw_6322
432 MISC_KMODS      += qlc_fw_8100
433 MISC_KMODS      += spuni
434 MISC_KMODS      += hwa1480_fw uwba
435 MISC_KMODS      += mii
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
443 #       Software Cryptographic Providers (/kernel/crypto):
445 CRYPTO_KMODS    += aes
446 CRYPTO_KMODS    += arcfour
447 CRYPTO_KMODS    += blowfish
448 CRYPTO_KMODS    += des
449 CRYPTO_KMODS    += md4
450 CRYPTO_KMODS    += md5
451 CRYPTO_KMODS    += ecc
452 CRYPTO_KMODS    += rsa
453 CRYPTO_KMODS    += sha1
454 CRYPTO_KMODS    += sha2
455 CRYPTO_KMODS    += swrand
458 # IP Policy Modules (/kernel/ipp):
460 IPP_KMODS       += dlcosmk
461 IPP_KMODS       += flowacct
462 IPP_KMODS       += ipgpc
463 IPP_KMODS       += dscpmk
464 IPP_KMODS       += tokenmt
465 IPP_KMODS       += tswtclmt
468 # 'Dacf' modules (/kernel/dacf)
469 DACF_KMODS      += consconfig_dacf
472 #       SVVS Testing Modules (/kernel/strmod):
474 #       These are streams and driver modules which are not to be
475 #       delivered with a released system. However, during development
476 #       it is convenient to build and install the SVVS kernel modules.
478 SVVS_KMODS      += lmodb lmode lmodr lmodt svvslo tidg tivc tmux
480 $(CLOSED_BUILD)SVVS             += svvs
483 #       Modules eXcluded from the product:
485 XMODS           +=
486 $(CLOSED_BUILD)CLOSED_XMODS =           \
487         sdpib           \
488         wsdrv
491 #       'Dacf' Modules (/kernel/dacf):
493 DACF_KMODS      += net_dacf
496 #       MAC-Type Plugin Modules (/kernel/mac)
498 MAC_KMODS       += mac_6to4
499 MAC_KMODS       += mac_ether
500 MAC_KMODS       += mac_ipv4
501 MAC_KMODS       += mac_ipv6
502 MAC_KMODS       += mac_wifi
503 MAC_KMODS       += mac_ib
506 # socketmod (kernel/socketmod)
508 SOCKET_KMODS    += sockpfp
509 SOCKET_KMODS    += socksctp
510 SOCKET_KMODS    += socksdp
511 SOCKET_KMODS    += sockrds
512 SOCKET_KMODS    += ksslf
515 #       kiconv modules (/kernel/kiconv):
517 KICONV_KMODS    += kiconv_emea kiconv_ja kiconv_ko kiconv_sc kiconv_tc