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