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