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