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