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