xref: /freebsd/sys/modules/Makefile (revision dd9e49a10bc14f7d876426d7d85fed0d1fe9699d)
1SYSDIR?=${SRCTOP}/sys
2.include "${SYSDIR}/conf/kern.opts.mk"
3
4SUBDIR_PARALLEL=
5
6# Modules that include binary-only blobs of microcode should be selectable by
7# MK_SOURCELESS_UCODE option (see below).
8
9.include "${SYSDIR}/conf/config.mk"
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	accf_tls \
23	acl_nfs4 \
24	acl_posix1e \
25	${_acpi} \
26	ae \
27	${_aesni} \
28	age \
29	${_agp} \
30	ahci \
31	aic7xxx \
32	alc \
33	ale \
34	alq \
35	${_amd_ecc_inject} \
36	${_amdgpio} \
37	${_amdsmu} \
38	${_amdsbwd} \
39	${_amdsmn} \
40	${_amdtemp} \
41	${_aout} \
42	${_arcmsr} \
43	${_allwinner} \
44	${_armv8crypto} \
45	${_armv8_rng} \
46	${_apple_bce} \
47	${_asmc} \
48	ata \
49	${_aq} \
50	ath \
51	ath_dfs \
52	ath_hal \
53	ath_hal_ar5210 \
54	ath_hal_ar5211 \
55	ath_hal_ar5212 \
56	ath_hal_ar5416 \
57	ath_hal_ar9300 \
58	ath_main \
59	ath_rate \
60	${_autofs} \
61	axgbe \
62	backlight \
63	${_bce} \
64	${_bcm283x_clkman} \
65	${_bcm283x_pwm} \
66	bfe \
67	bge \
68	bhnd \
69	${_bxe} \
70	${_bios} \
71	${_blake2} \
72	${_bnxt} \
73	bridgestp \
74	bwi \
75	bwn \
76	${_adlngpio} \
77	${_bytgpio} \
78	${_chvgpio} \
79	cam \
80	${_cardbus} \
81	${_carp} \
82	cas \
83	${_cbb} \
84	cc \
85	${_ccp} \
86	cd9660 \
87	cd9660_iconv \
88	${_cfi} \
89	${_chromebook_platform} \
90	${_ciss} \
91	${_coreboot} \
92	${_coretemp} \
93	${_cpsw} \
94	${_cpuctl} \
95	${_cpufreq} \
96	${_crypto} \
97	${_cryptodev} \
98	ctl \
99	${_cxgb} \
100	${_cxgbe} \
101	dc \
102	dcons \
103	dcons_crom \
104	${_dpaa2} \
105	${_dpdk_lpm4} \
106	${_dpdk_lpm6} \
107	${_dpms} \
108	dummymbuf \
109	dummynet \
110	${_dwwdt} \
111	e6000sw \
112	${_efirt} \
113	${_em} \
114	${_ena} \
115	${_enic} \
116	${_enetc} \
117	${_et} \
118	etherswitch \
119	evdev \
120	${_exca} \
121	ext2fs \
122	fdc \
123	fdescfs \
124	${_felix} \
125	${_ffec} \
126	${_fib_dxr} \
127	filemon \
128	firewire \
129	firmware \
130	flash \
131	${_ftgpio} \
132	${_ftwd} \
133	fusefs \
134	${_fxp} \
135	gem \
136	geom \
137	${_glxiic} \
138	${_glxsb} \
139	gpio \
140	${_gve} \
141	hid \
142	${_hpt27xx} \
143	${_hptiop} \
144	${_hptmv} \
145	${_hptnr} \
146	${_hptrr} \
147	hwpmc \
148	${_hwt} \
149	${_hyperv} \
150	i2c \
151	${_iavf} \
152        ${_ibcore} \
153	${_ichwd} \
154	${_ice} \
155	${_ice_ddp} \
156	${_irdma} \
157	${_ida} \
158	if_bridge \
159	${_if_cgem} \
160	if_disc \
161	if_edsc \
162	${_if_enc} \
163	if_epair \
164	${_genet} \
165	${_if_gif} \
166	${_if_gre} \
167	${_if_me} \
168	if_infiniband \
169	if_lagg \
170	if_ovpn \
171	${_if_stf} \
172	if_tuntap \
173	if_vlan \
174	if_vxlan \
175	if_geneve \
176	${_if_wg} \
177	iflib \
178	${_igc} \
179	imgact_binmisc \
180	${_imx} \
181	${_intel_pmc} \
182	${_intelspi} \
183	${_io} \
184	${_ioat} \
185        ${_ipoib} \
186	ipdivert \
187	${_ipfilter} \
188	${_ipfw} \
189	ipfw_nat \
190	${_ipfw_nat64} \
191	${_ipfw_nptv6} \
192	${_ipfw_pmod} \
193	${_ipmi} \
194	ip6_mroute_mod \
195	ip_mroute_mod \
196	${_ips} \
197	${_ipsec} \
198	${_ipw} \
199	${_ipwfw} \
200	${_isci} \
201	${_iser} \
202	isp \
203	${_ispfw} \
204	${_itwd} \
205	${_iwi} \
206	${_iwifw} \
207	${_iwlwifi} \
208	${_iwm} \
209	${_iwn} \
210	${_iwnfw} \
211	${_iwx} \
212	${_ix} \
213	${_ixv} \
214	${_ixl} \
215	jme \
216	kbdmux \
217	kgssapi \
218	kgssapi_krb5 \
219	khelp \
220	krpc \
221	ksyms \
222	lge \
223	libalias \
224	libiconv \
225	libmchain \
226	lindebugfs \
227	linuxkpi \
228	linuxkpi_hdmi \
229	linuxkpi_video \
230	linuxkpi_wlan \
231	${_lio} \
232	lpt \
233	${_mac_biba} \
234	${_mac_bsdextended} \
235	${_mac_ddb} \
236	${_mac_do} \
237	${_mac_ifoff} \
238	${_mac_ipacl} \
239	${_mac_lomac} \
240	${_mac_mls} \
241	${_mac_none} \
242	${_mac_ntpd} \
243	${_mac_partition} \
244	${_mac_pimd} \
245	${_mac_portacl} \
246	${_mac_priority} \
247	${_mac_seeotheruids} \
248	${_mac_stub} \
249	${_mac_test} \
250	${_mac_veriexec} \
251	${_mac_veriexec_sha1} \
252	${_mac_veriexec_sha256} \
253	${_mac_veriexec_sha384} \
254	${_mac_veriexec_sha512} \
255	${_malo} \
256	${_mana} \
257	md \
258	mdio \
259	${_mgb} \
260	mem \
261	mfi \
262	mii \
263	miiproxy \
264	mlx \
265	mlxfw \
266	${_mlx4} \
267	${_mlx4ib} \
268	${_mlx4en} \
269	${_mlx5} \
270	${_mlx5en} \
271	${_mlx5ib} \
272	mmc \
273	mmcsd \
274	${_mpi3mr} \
275	${_mpr} \
276	${_mps} \
277	mpt \
278	mqueue \
279	mrsas \
280	msdosfs \
281	msdosfs_iconv \
282	msk \
283	${_mthca} \
284	mvs \
285	mwl \
286	${_mwlfw} \
287	mxge \
288	my \
289	${_nctgpio} \
290	${_ncthwm} \
291	${_neta} \
292	netlink \
293	${_netgraph} \
294	${_nfe} \
295	nfscl \
296	nfscommon \
297	nfsd \
298	nfslockd \
299	nfssvc \
300	nlsysevent \
301	nge \
302	nmdm \
303	ntsync \
304	nullfs \
305	${_ntb} \
306	nvd \
307	${_nvdimm} \
308	nvme \
309	nvmf \
310	${_nvram} \
311	oce \
312	${_ocs_fc} \
313	${_ossl} \
314	otus \
315	${_otusfw} \
316	ow \
317	p9fs \
318	${_padlock} \
319	${_padlock_rng} \
320	${_pchtherm} \
321	${_pcfclock} \
322	${_pf} \
323	${_pflog} \
324	${_pflow} \
325	${_pfsync} \
326	plip \
327	${_pms} \
328	ppbus \
329	ppc \
330	ppi \
331	pps \
332	procfs \
333	proto \
334	pseudofs \
335	${_pst} \
336	${_pt} \
337	pty  \
338	puc \
339	pwm \
340	${_qat} \
341	${_qatfw} \
342	${_qat_c2xxx} \
343	${_qat_c2xxxfw} \
344	${_qlxge} \
345	${_qlxgb} \
346	${_qlxgbe} \
347	${_qlnx} \
348	ral \
349	${_ralfw} \
350	${_random_fortuna} \
351	${_random_other} \
352	rc4 \
353	${_rdma} \
354	${_rdrand_rng} \
355	${_rdseed_rng} \
356	re \
357	rge \
358	rl \
359	${_rockchip} \
360	rtsx \
361	${_rtw88} \
362	${_rtw89} \
363	rtwn \
364	rtwn_pci \
365	${_rtwn_usb} \
366	${_rtwnfw} \
367	${_s3} \
368	${_safe} \
369	safexcel \
370	${_sbni} \
371	scc \
372	${_sctp} \
373	sdhci \
374	${_sdhci_acpi} \
375	${_sdhci_fdt} \
376	sdhci_pci \
377	sdio \
378	${_sff} \
379	sem \
380	send \
381	${_sfxge} \
382	sge \
383	${_sgx} \
384	${_sgx_linux} \
385	siftr \
386	siis \
387	sis \
388	sk \
389	${_smartpqi} \
390	smbfs \
391	snp \
392	sound \
393	${_spe} \
394	${_speaker} \
395	spi \
396	${_splash} \
397	ste \
398	stge \
399	${_sume} \
400	${_superio} \
401	${_p2sb} \
402	sym \
403	${_syscons} \
404	sysvipc \
405	tarfs \
406	tcp \
407	${_tglhgpio} \
408	${_thunderbolt} \
409	${_ti} \
410	tmpfs \
411	${_toecore} \
412	tpm \
413	tws \
414	uart \
415	udf \
416	udf_iconv \
417	ufs \
418	${_ufshci} \
419	uinput \
420	unionfs \
421	${_usb} \
422	${_vesa} \
423	${_vf_i2c} \
424	virtio \
425	vge \
426	${_viawd} \
427	video \
428	videomode \
429	vkbd \
430	${_vmd} \
431	${_vmm} \
432	${_vmware} \
433	vr \
434	vte \
435	${_wbwd} \
436	${_wdatwd} \
437	wlan \
438	wlan_acl \
439	wlan_amrr \
440	wlan_ccmp \
441	wlan_gcmp \
442	wlan_rssadapt \
443	wlan_tkip \
444	wlan_wep \
445	wlan_xauth \
446	${_wpi} \
447	${_wpifw} \
448	${_wtap} \
449	${_x86bios} \
450	xdr \
451	xl \
452	xz \
453	zlib
454
455.if ${MK_AUTOFS} != "no" || defined(ALL_MODULES)
456_autofs=	autofs
457.endif
458
459.if ${MK_DTRACE} != "no" || defined(ALL_MODULES)
460.if ${KERN_OPTS:MKDTRACE_HOOKS}
461SUBDIR+=	dtrace
462.endif
463SUBDIR+=	opensolaris
464.endif
465
466.if !${MACHINE_ABI:Mlong32}
467_bnxt=		bnxt
468.endif
469
470.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
471.if exists(${SRCTOP}/sys/opencrypto)
472_crypto=	crypto
473_cryptodev=	cryptodev
474_random_fortuna=random_fortuna
475_random_other=	random_other
476.endif
477.endif
478
479.if ${MK_CUSE} != "no" || defined(ALL_MODULES)
480SUBDIR+=	cuse
481.endif
482
483.if ${MK_EFI} != "no"
484.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64"
485_efirt=		efirt
486.endif
487.endif
488
489.if (${MK_INET_SUPPORT} != "no" || ${MK_INET6_SUPPORT} != "no") || \
490	defined(ALL_MODULES)
491_carp=		carp
492_toecore=	toecore
493_if_enc=	if_enc
494_if_gif=	if_gif
495_if_gre=	if_gre
496.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
497_if_wg=		if_wg
498.endif
499_ipfw_pmod=	ipfw_pmod
500.if ${KERN_OPTS:MIPSEC_SUPPORT} && !${KERN_OPTS:MIPSEC}
501_ipsec=		ipsec
502.endif
503.if ${KERN_OPTS:MSCTP_SUPPORT} || ${KERN_OPTS:MSCTP}
504_sctp=		sctp
505.endif
506.endif
507
508.if (${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no") || \
509	defined(ALL_MODULES)
510_if_stf=	if_stf
511.endif
512
513.if (${KERN_OPTS:MINET} && ${MK_INET_SUPPORT} != "no") || defined(ALL_MODULES)
514_if_me=		if_me
515_ipfw=		ipfw
516.if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES)
517_ipfw_nat64=	ipfw_nat64
518.endif
519.endif
520
521.if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES)
522_ipfw_nptv6=	ipfw_nptv6
523.endif
524
525.if ${MK_IPFILTER} != "no" || defined(ALL_MODULES)
526_ipfilter=	ipfilter
527.endif
528
529.if ${MK_INET_SUPPORT} != "no" && ${KERN_OPTS:MFIB_ALGO} && ${KERN_OPTS:MINET}
530_dpdk_lpm4=	dpdk_lpm4
531_fib_dxr=	fib_dxr
532.endif
533
534.if ${MK_INET6_SUPPORT} != "no" && ${KERN_OPTS:MFIB_ALGO}
535_dpdk_lpm6=	dpdk_lpm6
536.endif
537
538.if ${MK_ISCSI} != "no" || defined(ALL_MODULES)
539SUBDIR+=	cfiscsi
540SUBDIR+=	iscsi
541.endif
542
543.if !empty(OPT_FDT)
544SUBDIR+=	fdt
545.endif
546
547# Linuxulator
548.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
549    ${MACHINE_CPUARCH} == "i386"
550SUBDIR+=	linprocfs
551SUBDIR+=	linsysfs
552SUBDIR+=	linux_ntsync
553.endif
554.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
555SUBDIR+=	linux
556.endif
557.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64"
558SUBDIR+=	linux64
559SUBDIR+=	linux_common
560.endif
561
562# LinuxKPI based wireless drivers.
563.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
564    ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "riscv"
565_iwlwifi=	iwlwifi
566_rtw88=		rtw88
567# rtw89 currently cannot be compiled without ACPI (seems also broken in Linux).
568.if ${KERN_OPTS:MDEV_ACPI}
569_rtw89=		rtw89
570.endif
571.endif
572
573.if ${MACHINE_CPUARCH} != "arm"
574.if ${MK_OFED} != "no" || defined(ALL_MODULES)
575_ibcore=	ibcore
576_ipoib=		ipoib
577_iser=		iser
578_mthca=		mthca
579_rdma=		rdma
580.endif
581.endif
582
583.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
584    ${MACHINE_CPUARCH} == "i386" || ${MACHINE_ARCH:Mpowerpc64*} != ""
585_ipmi=		ipmi
586_mlx4=		mlx4
587_mlx5=		mlx5
588.if (${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no") || \
589	defined(ALL_MODULES)
590_mlx4en=	mlx4en
591_mlx5en=	mlx5en
592.endif
593.if ${MK_OFED} != "no" || defined(ALL_MODULES)
594_mlx4ib=	mlx4ib
595_mlx5ib=	mlx5ib
596.endif
597.endif
598
599.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
600    ${MACHINE_CPUARCH} == "i386"
601_acpi=		acpi
602_ena=		ena
603_gve=		gve
604_igc=		igc
605_vmware=	vmware
606.endif
607
608.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
609    ${MACHINE_CPUARCH} == "i386" || ${MACHINE_ARCH} == "armv7" || \
610	${MACHINE_ARCH:Mpowerpc64*} != ""
611_ossl=		ossl
612.endif
613
614# MAC framework
615.if ${KERN_OPTS:MMAC} || defined(ALL_MODULES)
616_mac_biba=	mac_biba
617_mac_bsdextended= mac_bsdextended
618.if ${KERN_OPTS:MDDB} || defined(ALL_MODULES)
619_mac_ddb=	mac_ddb
620.endif
621_mac_do=	mac_do
622_mac_ifoff=	mac_ifoff
623_mac_ipacl=	mac_ipacl
624_mac_lomac=	mac_lomac
625_mac_mls=	mac_mls
626_mac_none=	mac_none
627_mac_ntpd=	mac_ntpd
628_mac_partition=	mac_partition
629_mac_pimd=	mac_pimd
630_mac_portacl=	mac_portacl
631_mac_priority=	mac_priority
632_mac_seeotheruids= mac_seeotheruids
633_mac_stub=	mac_stub
634_mac_test=	mac_test
635.if ${MK_VERIEXEC} != "no" || defined(ALL_MODULES)
636_mac_veriexec=	mac_veriexec
637_mac_veriexec_sha1= mac_veriexec_sha1
638_mac_veriexec_sha256= mac_veriexec_sha256
639_mac_veriexec_sha384= mac_veriexec_sha384
640_mac_veriexec_sha512= mac_veriexec_sha512
641.endif
642.endif
643
644.if ${MK_NETGRAPH} != "no" || defined(ALL_MODULES)
645_netgraph=	netgraph
646.endif
647
648.if (${MK_PF} != "no" && (${MK_INET_SUPPORT} != "no" || \
649	${MK_INET6_SUPPORT} != "no")) || defined(ALL_MODULES)
650_pf=		pf
651_pflog=		pflog
652_pflow=		pflow
653.if ${MK_INET_SUPPORT} != "no"
654_pfsync=	pfsync
655.endif
656.endif
657
658.if ${MK_SOURCELESS_UCODE} != "no"
659_bce=		bce
660_fxp=		fxp
661_ispfw=		ispfw
662_ti=		ti
663_mwlfw=		mwlfw
664_otusfw=	otusfw
665_ralfw=		ralfw
666_rtwnfw=	rtwnfw
667.endif
668
669.if ${MK_SOURCELESS_UCODE} != "no" && ${MACHINE_CPUARCH} != "arm" && \
670	${MACHINE_ARCH} != "powerpc" && ${MACHINE_CPUARCH} != "riscv"
671_cxgbe=		cxgbe
672.endif
673
674# This has only been tested on amd64 and arm64
675.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64"
676_mpi3mr=mpi3mr
677.endif
678
679# Specific to the Raspberry Pi.
680.if ${MACHINE_CPUARCH} == "aarch64"
681_genet=		genet
682.endif
683
684.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64" || \
685	${MACHINE_ARCH:Mpowerpc64*} != ""
686_ice=		ice
687.if ${MK_SOURCELESS_UCODE} != "no"
688_ice_ddp=	ice_ddp
689.endif
690.if ${MK_OFED} != "no" || defined(ALL_MODULES)
691.if ${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no"
692_irdma=		irdma
693.endif
694.endif
695_ixl=		ixl
696.endif
697
698.if ${MACHINE_CPUARCH} == "aarch64"
699_spe=		spe
700.endif
701
702.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm" || \
703	${MACHINE_CPUARCH} == "riscv"
704.if !empty(OPT_FDT)
705_allwinner=	allwinner
706_if_cgem=	if_cgem
707_sdhci_fdt=	sdhci_fdt
708.endif
709.endif
710
711# These rely on 64bit atomics
712.if ${MACHINE_ARCH} != "powerpc"
713_mps=		mps
714_mpr=		mpr
715.endif
716
717.if ${MK_TESTS} != "no" || defined(ALL_MODULES)
718SUBDIR+=	ktest
719SUBDIR+=	tests
720.endif
721
722.if ${MK_USB} != "no" || defined(ALL_MODULES)
723_rtwn_usb=	rtwn_usb
724_usb=		usb
725. if ${MACHINE_CPUARCH} == "amd64"
726_thunderbolt=	thunderbolt
727. endif
728.endif
729
730.if ${MK_ZFS} != "no" || defined(ALL_MODULES)
731SUBDIR+=	zfs
732.endif
733
734.if ${MK_SOURCELESS_UCODE} != "no"
735_cxgb=		cxgb
736.endif
737
738.if ${MACHINE_CPUARCH} == "aarch64"
739_armv8crypto=	armv8crypto
740_armv8_rng=	armv8_rng
741_dpaa2=		dpaa2
742_sff=		sff
743_em=		em
744_hyperv=  hyperv
745_vf_i2c=	vf_i2c
746
747.if !empty(OPT_FDT)
748_dwwdt=		dwwdt
749_enetc=		enetc
750_felix=		felix
751_rockchip=	rockchip
752.endif
753.endif
754
755.if ${MACHINE_CPUARCH} == "arm"
756_imx=		imx
757.endif
758
759.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
760_aq=		aq
761_agp=		agp
762.if ${MACHINE_CPUARCH} == "i386" || !empty(COMPAT_FREEBSD32_ENABLED)
763_aout=		aout
764.endif
765_bios=		bios
766.if ${MK_SOURCELESS_UCODE} != "no"
767_bxe=		bxe
768.endif
769_cardbus=	cardbus
770_cbb=		cbb
771_cpuctl=	cpuctl
772_cpufreq=	cpufreq
773_dpms=		dpms
774_em=		em
775_et=		et
776_ftgpio=	ftgpio
777_ftwd=		ftwd
778_exca=		exca
779_io=		io
780_itwd=		itwd
781_ix=		ix
782_ixv=		ixv
783.if ${MK_SOURCELESS_UCODE} != "no"
784_lio=		lio
785.endif
786_mana=		mana
787_mgb=		mgb
788_nctgpio=	nctgpio
789_ncthwm=	ncthwm
790_ntb=		ntb
791_ocs_fc=	ocs_fc
792_p2sb=		p2sb
793_qat_c2xxx=	qat_c2xxx
794_qat_c2xxxfw=	qat_c2xxxfw
795_safe=		safe
796_speaker=	speaker
797_splash=	splash
798_syscons=	syscons
799_wbwd=		wbwd
800_wdatwd=	wdatwd
801
802_aac=		aac
803_aacraid=	aacraid
804_adlngpio=	adlngpio
805.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
806_aesni=		aesni
807.endif
808_amd_ecc_inject=amd_ecc_inject
809_amdsmu=	amdsmu
810_amdsbwd=	amdsbwd
811_amdsmn=	amdsmn
812_amdtemp=	amdtemp
813_arcmsr=	arcmsr
814.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
815_blake2=	blake2
816.endif
817_bytgpio=	bytgpio
818_chvgpio=	chvgpio
819_ciss=		ciss
820_chromebook_platform=	chromebook_platform
821_coreboot=	coreboot
822_coretemp=	coretemp
823.if ${MK_SOURCELESS_HOST} != "no" && empty(KCSAN_ENABLED)
824_hpt27xx=	hpt27xx
825.endif
826_hptiop=	hptiop
827.if ${MK_SOURCELESS_HOST} != "no" && empty(KCSAN_ENABLED)
828_hptmv=		hptmv
829_hptnr=		hptnr
830_hptrr=		hptrr
831.endif
832_hyperv=	hyperv
833_ichwd=		ichwd
834_ida=		ida
835_intel_pmc=	intel_pmc
836_intelspi=	intelspi
837_ips=		ips
838_isci=		isci
839_ipw=		ipw
840_iwi=		iwi
841_iwm=		iwm
842_iwn=		iwn
843.if ${MK_SOURCELESS_UCODE} != "no"
844_ipwfw=		ipwfw
845_iwifw=		iwifw
846_iwnfw=		iwnfw
847.endif
848_nfe=		nfe
849_nvram=		nvram
850.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
851_padlock=	padlock
852_padlock_rng=	padlock_rng
853_rdrand_rng=	rdrand_rng
854_rdseed_rng=	rdseed_rng
855.endif
856_pchtherm = pchtherm
857_s3=		s3
858_sdhci_acpi=	sdhci_acpi
859_superio=	superio
860_tglhgpio=	tglhgpio
861_vesa=		vesa
862_viawd=		viawd
863_vmd=		vmd
864_wpi=		wpi
865.if ${MK_SOURCELESS_UCODE} != "no"
866_wpifw=		wpifw
867.endif
868.if ${KERN_OPTS:MVIMAGE}
869_wtap=		wtap
870.endif
871_x86bios=	x86bios
872.endif
873
874.if ${MACHINE_CPUARCH} == "amd64"
875_amdgpio=	amdgpio
876_apple_bce=	apple_bce
877_asmc=		asmc
878_ccp=		ccp
879_enic=		enic
880_iavf=		iavf
881_ioat=		ioat
882_iwx=		iwx
883_ixl=		ixl
884_nvdimm=	nvdimm
885_pms=		pms
886_pt=		pt
887_qat=		qat
888.if ${MK_SOURCELESS_UCODE} != "no"
889_qatfw=		qatfw
890.endif
891_qlxge=		qlxge
892_qlxgb=		qlxgb
893_sume=		sume
894.if ${MK_SOURCELESS_UCODE} != "no"
895_qlxgbe=	qlxgbe
896_qlnx=		qlnx
897.endif
898_sfxge=		sfxge
899_sgx=		sgx
900_sgx_linux=	sgx_linux
901_smartpqi=	smartpqi
902_p2sb=		p2sb
903.endif
904
905.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64"
906_hwt=		hwt
907.endif
908
909.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
910    ${MACHINE_CPUARCH} == "riscv"
911.if ${MK_BHYVE} != "no" || defined(ALL_MODULES)
912.if ${KERN_OPTS:MSMP}
913_vmm=		vmm
914.endif
915.endif
916.endif
917
918.if ${MACHINE_CPUARCH} == "i386"
919# XXX some of these can move to the general case when de-i386'ed
920# XXX some of these can move now, but are untested on other architectures.
921_3dfx=		3dfx
922_3dfx_linux=	3dfx_linux
923_glxiic=	glxiic
924_glxsb=		glxsb
925_pcfclock=	pcfclock
926_pst=		pst
927_sbni=		sbni
928.endif
929
930.if ${MACHINE_ARCH} == "armv7"
931_cfi=		cfi
932_cpsw=		cpsw
933.endif
934
935.if ${MACHINE_CPUARCH} == "powerpc"
936_aacraid=	aacraid
937_agp=		agp
938_an=		an
939_cardbus=	cardbus
940_cbb=		cbb
941_cfi=		cfi
942_cpufreq=	cpufreq
943_exca=		exca
944_ffec=		ffec
945.endif
946
947.if ${MACHINE_ARCH:Mpowerpc64*} != ""
948_nvram=		opal_nvram
949.endif
950
951.if ${MACHINE_CPUARCH} == "powerpc"
952_nvram+=	powermac_nvram
953.endif
954
955.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "aarch64"
956_bcm283x_clkman=  bcm283x_clkman
957_bcm283x_pwm=	bcm283x_pwm
958_neta=		neta
959.endif
960
961.if !(${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} < 110000)
962# LLVM 10 crashes when building if_malo_pci.c, fixed in LLVM11:
963# https://bugs.llvm.org/show_bug.cgi?id=44351
964_malo=	malo
965.endif
966
967.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64"
968_ufshci=ufshci
969.endif
970
971SUBDIR+=${MODULES_EXTRA}
972
973.for reject in ${WITHOUT_MODULES}
974SUBDIR:= ${SUBDIR:N${reject}}
975.endfor
976
977.endif # MODULES_OVERRIDE -- Keep last
978
979# Calling kldxref(8) for each module is expensive.
980.if !defined(NO_XREF)
981.MAKEFLAGS+=	-DNO_XREF
982afterinstall: .PHONY
983	${KLDXREF_CMD} ${DESTDIR}${KMODDIR}
984.if defined(NO_ROOT) && defined(METALOG)
985	echo ".${DISTBASE}${KMODDIR}/linker.hints type=file uname=root gname=wheel mode=0644" | \
986	    cat -l >> ${METALOG}
987.endif
988.endif
989
990SUBDIR:= ${SUBDIR:u:O}
991
992.include <bsd.subdir.mk>
993