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