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