xref: /freebsd/sys/modules/Makefile (revision 9f31240773ae369c8285b700840a35e6bfa9f762)
1# $FreeBSD$
2
3SYSDIR?=${.CURDIR}/..
4.include "${SYSDIR}/conf/kern.opts.mk"
5
6SUBDIR_PARALLEL=
7
8# Modules that include binary-only blobs of microcode should be selectable by
9# MK_SOURCELESS_UCODE option (see below).
10
11.if defined(MODULES_OVERRIDE) && !defined(ALL_MODULES)
12SUBDIR=${MODULES_OVERRIDE}
13.else
14SUBDIR=	\
15	${_3dfx} \
16	${_3dfx_linux} \
17	${_aac} \
18	${_aacraid} \
19	accf_data \
20	accf_dns \
21	accf_http \
22	acl_nfs4 \
23	acl_posix1e \
24	${_acpi} \
25	ae \
26	${_aesni} \
27	age \
28	${_agp} \
29	aha \
30	${_ahb} \
31	ahci \
32	${_aic} \
33	aic7xxx \
34	aio \
35	alc \
36	ale \
37	alq \
38	${_amdsbwd} \
39	${_amdtemp} \
40	amr \
41	${_an} \
42	${_aout} \
43	${_apm} \
44	${_arcmsr} \
45	${_arcnet} \
46	${_asmc} \
47	${_asr} \
48	ata \
49	ath \
50	ath_pci \
51	${_auxio} \
52	${_bce} \
53	bfe \
54	bge \
55	${_bxe} \
56	${_bios} \
57	${_bktr} \
58	${_bm} \
59	bridgestp \
60	bwi \
61	bwn \
62	cam \
63	${_canbepm} \
64	${_canbus} \
65	${_cardbus} \
66	${_carp} \
67	cas \
68	${_cbb} \
69	cc \
70	cd9660 \
71	cd9660_iconv \
72	${_ce} \
73	${_cfi} \
74	${_ciss} \
75	${_cm} \
76	${_cmx} \
77	${_coff} \
78	${_coretemp} \
79	${_cp} \
80	${_cpsw} \
81	${_cpuctl} \
82	${_cpufreq} \
83	${_crypto} \
84	${_cryptodev} \
85	${_cs} \
86	${_ct} \
87	${_ctau} \
88	ctl \
89	cuse \
90	${_cxgb} \
91	${_cxgbe} \
92	${_cyclic} \
93	dc \
94	dcons \
95	dcons_crom \
96	de \
97	${_dpms} \
98	${_dpt} \
99	${_drm} \
100	${_drm2} \
101	${_dtrace} \
102	dummynet \
103	${_ed} \
104	${_elink} \
105	${_em} \
106	en \
107	${_ep} \
108	${_epic} \
109	esp \
110	${_et} \
111	${_ex} \
112	${_exca} \
113	${_ext2fs} \
114	${_fatm} \
115	fdc \
116	fdescfs \
117	${_fe} \
118	${_filemon} \
119	firewire \
120	firmware \
121	fuse \
122	${_fxp} \
123	gem \
124	geom \
125	${_glxiic} \
126	${_glxsb} \
127	hatm \
128	hifn \
129	hme \
130	${_hpt27xx} \
131	${_hptiop} \
132	${_hptmv} \
133	${_hptnr} \
134	${_hptrr} \
135	hwpmc \
136	${_hyperv} \
137	${_i2c} \
138        ${_ibcore} \
139	${_ibcs2} \
140	${_ichwd} \
141	${_ida} \
142	${_ie} \
143	if_bridge \
144	if_disc \
145	if_edsc \
146	if_epair \
147	if_faith \
148	if_gif \
149	${_if_gre} \
150	if_lagg \
151	${_if_ndis} \
152	if_stf \
153	if_tap \
154	if_tun \
155	if_vlan \
156	${_igb} \
157	${_iir} \
158	imgact_binmisc \
159	${_io} \
160        ${_ipoib} \
161	${_ipdivert} \
162	${_ipfilter} \
163	${_ipfw} \
164	ipfw_nat \
165	${_ipmi} \
166	ip6_mroute_mod \
167	ip_mroute_mod \
168	${_ips} \
169	${_ipw} \
170	${_ipwfw} \
171	${_isci} \
172	iscsi \
173	iscsi_initiator \
174	isp \
175	${_ispfw} \
176	${_iwi} \
177	${_iwifw} \
178	${_iwn} \
179	${_iwnfw} \
180	${_ixgb} \
181	${_ixgbe} \
182	jme \
183	joy \
184	kbdmux \
185	kgssapi \
186	kgssapi_krb5 \
187	khelp \
188	krpc \
189	ksyms \
190	le \
191	lge \
192	libalias \
193	libiconv \
194	libmbpool \
195	libmchain \
196	${_linprocfs} \
197	${_linsysfs} \
198	${_linux} \
199	lmc \
200	lpt \
201	mac_biba \
202	mac_bsdextended \
203	mac_ifoff \
204	mac_lomac \
205	mac_mls \
206	mac_none \
207	mac_partition \
208	mac_portacl \
209	mac_seeotheruids \
210	mac_stub \
211	mac_test \
212	malo \
213	mcd \
214	md \
215	mem \
216	mfi \
217	mii \
218	mlx \
219	${_mlx4} \
220	${_mlx4ib} \
221	${_mlxen} \
222	${_mly} \
223	mmc \
224	mmcsd \
225	mpr \
226	mps \
227	mpt \
228	mqueue \
229	mrsas \
230	msdosfs \
231	msdosfs_iconv \
232	${_mse} \
233	msk \
234	${_mthca} \
235	mvs \
236	mwl \
237	${_mwlfw} \
238	mxge \
239	my \
240	${_nandfs} \
241	${_nandsim} \
242	${_ncp} \
243	${_ncv} \
244	${_ndis} \
245	netfpga10g \
246	${_netgraph} \
247	${_nfe} \
248	nfs_common \
249	nfscl \
250	nfsclient \
251	nfscommon \
252	nfsd \
253	nfslock \
254	nfslockd \
255	nfsserver \
256	nfssvc \
257	nge \
258	nmdm \
259	${_nsp} \
260	nullfs \
261	${_ntb} \
262	${_nvd} \
263	${_nvme} \
264	${_nvram} \
265	${_nxge} \
266	${_opensolaris} \
267	oce \
268	${_padlock} \
269	patm \
270	${_pccard} \
271	${_pcfclock} \
272	pcn \
273	${_pf} \
274	${_pflog} \
275	${_pfsync} \
276	plip \
277	${_pmc} \
278	ppbus \
279	ppc \
280	ppi \
281	pps \
282	procfs \
283	proto \
284	pseudofs \
285	${_pst} \
286	pty  \
287	puc \
288	${_qlxge} \
289	${_qlxgb} \
290	${_qlxgbe} \
291	ral \
292	${_ralfw} \
293	${_random} \
294	rc4 \
295	${_rdma} \
296	re \
297	reiserfs \
298	rl \
299	${_s3} \
300	${_safe} \
301	${_sbni} \
302	scc \
303	scd \
304	${_scsi_low} \
305	sdhci \
306	sdhci_pci \
307	sem \
308	send \
309	${_sf} \
310	${_sfxge} \
311	sge \
312	siba_bwn \
313	siftr \
314	siis \
315	sis \
316	sk \
317	${_smbfs} \
318	${_sn} \
319	${_snc} \
320	snp \
321	${_sound} \
322	${_speaker} \
323	${_splash} \
324	${_sppp} \
325	ste \
326	${_stg} \
327	stge \
328	${_streams} \
329	${_svr4} \
330	${_sym} \
331	${_syscons} \
332	sysvipc \
333	${_ti} \
334	tl \
335	tmpfs \
336	${_toecore} \
337	${_tpm} \
338	trm \
339	${_twa} \
340	twe \
341	tws \
342	tx \
343	${_txp} \
344	uart \
345	ubsec \
346	udf \
347	udf_iconv \
348	ufs \
349	unionfs \
350	usb \
351	utopia \
352	${_vesa} \
353	${_virtio} \
354	vge \
355	${_viawd} \
356	vkbd \
357	${_vmm} \
358	${_vmware} \
359	${_vpo} \
360	vr \
361	vte \
362	vx \
363	${_vxge} \
364	wb \
365	${_wbwd} \
366	${_wi} \
367	wlan \
368	wlan_acl \
369	wlan_amrr \
370	wlan_ccmp \
371	wlan_rssadapt \
372	wlan_tkip \
373	wlan_wep \
374	wlan_xauth \
375	${_wpi} \
376	${_wpifw} \
377	${_x86bios} \
378	${_xe} \
379	xl \
380	${_zfs} \
381	zlib \
382
383.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
384_filemon=	filemon
385_vmware=	vmware
386.endif
387
388.if ${MACHINE_CPUARCH} != "powerpc" && ${MACHINE_CPUARCH} != "arm" && \
389	${MACHINE_CPUARCH} != "mips"
390_syscons=	syscons
391_vpo=		vpo
392.endif
393
394.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips"
395# no BUS_SPACE_UNSPECIFIED
396# No barrier instruction support (specific to this driver)
397_sym=		sym
398# intr_disable() is a macro, causes problems
399.if ${MK_SOURCELESS_UCODE} != "no"
400_cxgb=		cxgb
401.endif
402.endif
403
404.if ${MK_SOURCELESS_UCODE} != "no"
405_cxgbe=		cxgbe
406.endif
407
408.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
409.if exists(${.CURDIR}/../opencrypto)
410_crypto=	crypto
411_cryptodev=	cryptodev
412.endif
413.if exists(${.CURDIR}/../crypto)
414_random=	random
415.endif
416.endif
417
418.if (${MK_INET_SUPPORT} != "no" || ${MK_INET6_SUPPORT} != "no") || \
419	defined(ALL_MODULES)
420_carp=	carp
421_toecore=	toecore
422.endif
423
424.if ${MK_INET_SUPPORT} != "no" || defined(ALL_MODULES)
425_if_gre=	if_gre
426.endif
427
428.if ${MK_IPFILTER} != "no" || defined(ALL_MODULES)
429_ipfilter=	ipfilter
430.endif
431
432.if ${MK_INET_SUPPORT} != "no" || defined(ALL_MODULES)
433_ipdivert=	ipdivert
434_ipfw=		ipfw
435.endif
436
437.if ${MK_NAND} != "no" || defined(ALL_MODULES)
438_nandfs=	nandfs
439_nandsim=	nandsim
440.endif
441
442.if ${MK_NETGRAPH} != "no" || defined(ALL_MODULES)
443_netgraph=	netgraph
444.endif
445
446.if (${MK_PF} != "no" && (${MK_INET_SUPPORT} != "no" || \
447	${MK_INET6_SUPPORT} != "no")) || defined(ALL_MODULES)
448_pf=		pf
449_pflog=		pflog
450.if ${MK_INET_SUPPORT} != "no"
451_pfsync=	pfsync
452.endif
453.endif
454
455.if ${MK_SOURCELESS_UCODE} != "no"
456_bce=		bce
457_fatm=		fatm
458_fxp=		fxp
459_ispfw=		ispfw
460_mwlfw=		mwlfw
461_ralfw=		ralfw
462_sf=		sf
463_sn=		sn
464_ti=		ti
465_txp=		txp
466.endif
467
468.if ${MACHINE_CPUARCH} == "i386"
469# XXX some of these can move to the general case when de-i386'ed
470# XXX some of these can move now, but are untested on other architectures.
471_3dfx=		3dfx
472_3dfx_linux=	3dfx_linux
473_agp=		agp
474_aic=		aic
475_an=		an
476_aout=		aout
477_apm=		apm
478_arcnet=	arcnet
479_bktr=		bktr
480_bxe=		bxe
481_cardbus=	cardbus
482_cbb=		cbb
483.if ${MK_SOURCELESS_UCODE} != "no"
484_ce=		ce
485.endif
486_coff=		coff
487.if ${MK_SOURCELESS_UCODE} != "no"
488_cp=		cp
489.endif
490_cpuctl=	cpuctl
491_cpufreq=	cpufreq
492_cs=		cs
493.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
494_cyclic=	cyclic
495.endif
496_dpms=		dpms
497_drm=		drm
498_drm2=		drm2
499.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
500_dtrace=	dtrace
501.endif
502_ed=		ed
503_elink=		elink
504_em=		em
505_ep=		ep
506_et=		et
507_exca=		exca
508_ext2fs=	ext2fs
509_fe=		fe
510_glxiic=	glxiic
511_glxsb=		glxsb
512_i2c=		i2c
513.if ${MK_OFED} != "no" || defined(ALL_MODULES)
514_ibcore=        ibcore
515.endif
516_ibcs2=		ibcs2
517_ie=		ie
518_if_ndis=	if_ndis
519_igb=		igb
520_io=		io
521.if ${MK_OFED} != "no" || defined(ALL_MODULES)
522_ipoib=         ipoib
523.endif
524_linprocfs=	linprocfs
525_linsysfs=	linsysfs
526_linux=		linux
527_mse=		mse
528.if ${MK_OFED} != "no" || defined(ALL_MODULES)
529_mlx4=		mlx4
530_mlx4ib=	mlx4ib
531_mlxen=		mlxen
532_mthca=		mthca
533.endif
534_ncv=		ncv
535_ndis=		ndis
536_nsp=		nsp
537.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
538_opensolaris=	opensolaris
539.endif
540_pccard=	pccard
541_pcfclock=	pcfclock
542_pst=		pst
543.if ${MK_OFED} != "no" || defined(ALL_MODULES)
544_rdma=		rdma
545.endif
546_safe=		safe
547_sbni=		sbni
548_scsi_low=	scsi_low
549_smbfs=		smbfs
550_sound=		sound
551_speaker=	speaker
552_splash=	splash
553_sppp=		sppp
554_stg=		stg
555_streams=	streams
556_svr4=		svr4
557_vxge=  	vxge
558_wbwd=		wbwd
559_wi=		wi
560_xe=		xe
561.if ${MK_ZFS} != "no" || defined(ALL_MODULES)
562_zfs=		zfs
563.endif
564.if ${MACHINE} == "i386"
565_aac=		aac
566_aacraid=	aacraid
567_acpi=		acpi
568.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
569_aesni=		aesni
570.endif
571.if ${MK_EISA} != "no"
572_ahb=		ahb
573.endif
574_amdsbwd=	amdsbwd
575_amdtemp=	amdtemp
576_arcmsr=	arcmsr
577_asmc=		asmc
578_asr=		asr
579_bios=		bios
580_ciss=		ciss
581_cm=		cm
582_cmx=		cmx
583_coretemp=	coretemp
584.if ${MK_SOURCELESS_UCODE} != "no"
585_ctau=		ctau
586.endif
587_dpt=		dpt
588_ex=		ex
589.if ${MK_SOURCELESS_HOST} != "no"
590_hpt27xx=	hpt27xx
591.endif
592_hptiop=	hptiop
593.if ${MK_SOURCELESS_HOST} != "no"
594_hptmv=		hptmv
595_hptnr=		hptnr
596_hptrr=		hptrr
597.endif
598_hyperv=	hyperv
599_ichwd=		ichwd
600_ida=		ida
601_iir=		iir
602_ipmi=		ipmi
603_ips=		ips
604_ipw=		ipw
605.if ${MK_SOURCELESS_UCODE} != "no"
606_ipwfw=		ipwfw
607.endif
608_isci=		isci
609_iwi=		iwi
610.if ${MK_SOURCELESS_UCODE} != "no"
611_iwifw=		iwifw
612.endif
613_iwn=		iwn
614.if ${MK_SOURCELESS_UCODE} != "no"
615_iwnfw=		iwnfw
616.endif
617_ixgb=		ixgb
618_ixgbe=		ixgbe
619_mly=		mly
620_nfe=		nfe
621_nvd=		nvd
622_nvme=		nvme
623_nvram=		nvram
624_nxge=		nxge
625_tpm=		tpm
626_viawd=		viawd
627_wpi=		wpi
628.if ${MK_SOURCELESS_UCODE} != "no"
629_wpifw=		wpifw
630.endif
631.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
632_padlock=	padlock
633.endif
634_s3=		s3
635_twa=		twa
636_vesa=		vesa
637_virtio=	virtio
638_x86bios=	x86bios
639.elif ${MACHINE} == "pc98"
640_canbepm=	canbepm
641_canbus=	canbus
642_ct=		ct
643_pmc=		pmc
644_snc=		snc
645.endif
646.endif
647
648.if ${MACHINE_CPUARCH} == "amd64"
649_aac=		aac
650_aacraid=	aacraid
651_aout=		aout
652_acpi=		acpi
653.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
654_aesni=		aesni
655.endif
656_agp=		agp
657_an=		an
658_amdsbwd=	amdsbwd
659_amdtemp=	amdtemp
660_arcmsr=	arcmsr
661_asmc=		asmc
662_bktr=		bktr
663_bxe=		bxe
664_cardbus=	cardbus
665_cbb=		cbb
666_cmx=		cmx
667_ciss=		ciss
668_coretemp=	coretemp
669_cpuctl=	cpuctl
670_cpufreq=	cpufreq
671.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
672_cyclic=	cyclic
673.endif
674_dpms=		dpms
675_drm=		drm
676_drm2=		drm2
677.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
678_dtrace=	dtrace
679.endif
680_ed=		ed
681_et=		et
682_em=		em
683_exca=		exca
684_ext2fs=	ext2fs
685.if ${MK_SOURCELESS_HOST} != "no"
686_hpt27xx=	hpt27xx
687.endif
688_hptiop=	hptiop
689.if ${MK_SOURCELESS_HOST} != "no"
690_hptmv=		hptmv
691_hptnr=		hptnr
692_hptrr=		hptrr
693.endif
694_hyperv=	hyperv
695_i2c=		i2c
696.if ${MK_OFED} != "no" || defined(ALL_MODULES)
697_ibcore=        ibcore
698.endif
699_ichwd=		ichwd
700_ida=		ida
701_if_ndis=	if_ndis
702_igb=		igb
703_iir=		iir
704_io=		io
705_ipmi=		ipmi
706.if ${MK_OFED} != "no" || defined(ALL_MODULES)
707_ipoib=         ipoib
708.endif
709_ips=		ips
710_ipw=		ipw
711.if ${MK_SOURCELESS_UCODE} != "no"
712_ipwfw=		ipwfw
713.endif
714_isci=		isci
715_iwi=		iwi
716.if ${MK_SOURCELESS_UCODE} != "no"
717_iwifw=		iwifw
718.endif
719_iwn=		iwn
720.if ${MK_SOURCELESS_UCODE} != "no"
721_iwnfw=		iwnfw
722.endif
723_ixgb=		ixgb
724_ixgbe=		ixgbe
725_linprocfs=	linprocfs
726_linsysfs=	linsysfs
727_linux=		linux
728_mly=		mly
729.if ${MK_OFED} != "no" || defined(ALL_MODULES)
730_mlx4=		mlx4
731_mlx4ib=	mlx4ib
732_mlxen=		mlxen
733_mthca=		mthca
734.endif
735_ndis=		ndis
736_nfe=		nfe
737_ntb=		ntb
738_nvd=		nvd
739_nvme=		nvme
740_nvram=		nvram
741_nxge=		nxge
742.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
743_opensolaris=	opensolaris
744.endif
745.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
746_padlock=	padlock
747.endif
748_pccard=	pccard
749_qlxge=		qlxge
750_qlxgb=		qlxgb
751_qlxgbe=	qlxgbe
752.if ${MK_OFED} != "no" || defined(ALL_MODULES)
753_rdma=		rdma
754.endif
755_s3=		s3
756_safe=		safe
757_scsi_low=	scsi_low
758_sfxge=		sfxge
759_smbfs=		smbfs
760_sound=		sound
761_speaker=	speaker
762_splash=	splash
763_sppp=		sppp
764_tpm=		tpm
765_twa=		twa
766_vesa=		vesa
767_viawd=		viawd
768_virtio=	virtio
769_vmm=		vmm
770_vxge=  	vxge
771_x86bios=	x86bios
772_wbwd=		wbwd
773_wi=		wi
774_wpi=		wpi
775.if ${MK_SOURCELESS_UCODE} != "no"
776_wpifw=		wpifw
777.endif
778.if ${MK_ZFS} != "no" || defined(ALL_MODULES)
779_zfs=		zfs
780.endif
781.endif
782
783.if ${MACHINE_CPUARCH} == "arm"
784_cfi=		cfi
785_cpsw=		cpsw
786_sound=		sound
787.endif
788
789.if ${MACHINE_CPUARCH} == "powerpc"
790_agp=		agp
791_an=		an
792_bm=		bm
793_cardbus=	cardbus
794_cbb=		cbb
795_cfi=		cfi
796_cpufreq=	cpufreq
797.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
798_cyclic=	cyclic
799.endif
800_drm=		drm
801.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
802_dtrace=	dtrace
803.endif
804_exca=		exca
805_nvram=		powermac_nvram
806_pccard=	pccard
807_smbfs=		smbfs
808_sound=		sound
809.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
810_opensolaris=	opensolaris
811.endif
812_wi=		wi
813.endif
814
815.if ${MACHINE_ARCH} == "powerpc64"
816.if ${MK_ZFS} != "no" || defined(ALL_MODULES)
817_zfs=		zfs
818.endif
819.endif
820
821.if ${MACHINE_CPUARCH} == "sparc64"
822_auxio=		auxio
823_em=		em
824_epic=		epic
825_i2c=		i2c
826_igb=		igb
827.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
828_opensolaris=	opensolaris
829.endif
830_smbfs=		smbfs
831_sound=		sound
832.if ${MK_ZFS} != "no" || defined(ALL_MODULES)
833_zfs=		zfs
834.endif
835.endif
836.endif
837
838.for reject in ${WITHOUT_MODULES}
839SUBDIR:= ${SUBDIR:N${reject}}
840.endfor
841
842# Calling kldxref(8) for each module is expensive.
843.if !defined(NO_XREF)
844.MAKEFLAGS+=	-DNO_XREF
845afterinstall:
846	@if type kldxref >/dev/null 2>&1; then \
847		${ECHO} kldxref ${DESTDIR}${KMODDIR}; \
848		kldxref ${DESTDIR}${KMODDIR}; \
849	fi
850.endif
851
852.include <bsd.subdir.mk>
853