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