]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/modules/Makefile
Merge commit 'd0e943077d94e6266ece9856789c5d5313676e38'
[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         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         filemon \
124         firewire \
125         firmware \
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         ${_hwpmc_mips24k} \
143         ${_hwpmc_mips74k} \
144         ${_hyperv} \
145         i2c \
146         ${_iavf} \
147         ${_ibcore} \
148         ${_ichwd} \
149         ${_ice} \
150         ${_ice_ddp} \
151         ${_ida} \
152         if_bridge \
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_stf} \
163         if_tuntap \
164         if_vlan \
165         if_vxlan \
166         iflib \
167         ${_iir} \
168         imgact_binmisc \
169         ${_intelspi} \
170         ${_io} \
171         ${_ioat} \
172         ${_ipoib} \
173         ${_ipdivert} \
174         ${_ipfilter} \
175         ${_ipfw} \
176         ipfw_nat \
177         ${_ipfw_nat64} \
178         ${_ipfw_nptv6} \
179         ${_ipfw_pmod} \
180         ${_ipmi} \
181         ip6_mroute_mod \
182         ip_mroute_mod \
183         ${_ips} \
184         ${_ipsec} \
185         ${_ipw} \
186         ${_ipwfw} \
187         ${_isci} \
188         ${_iser} \
189         isp \
190         ${_ispfw} \
191         ${_itwd} \
192         ${_iwi} \
193         ${_iwifw} \
194         ${_iwm} \
195         ${_iwmfw} \
196         ${_iwn} \
197         ${_iwnfw} \
198         ${_ix} \
199         ${_ixv} \
200         ${_ixl} \
201         jme \
202         kbdmux \
203         kgssapi \
204         kgssapi_krb5 \
205         khelp \
206         krpc \
207         ksyms \
208         ${_ktls_ocf} \
209         le \
210         lge \
211         libalias \
212         libiconv \
213         libmchain \
214         lindebugfs \
215         linuxkpi \
216         ${_lio} \
217         lpt \
218         mac_biba \
219         mac_bsdextended \
220         mac_ifoff \
221         mac_lomac \
222         mac_mls \
223         mac_none \
224         mac_ntpd \
225         mac_partition \
226         mac_portacl \
227         mac_seeotheruids \
228         mac_stub \
229         mac_test \
230         ${_malo} \
231         md \
232         mdio \
233         mem \
234         mfi \
235         mii \
236         mlx \
237         mlxfw \
238         ${_mlx4} \
239         ${_mlx4ib} \
240         ${_mlx4en} \
241         ${_mlx5} \
242         ${_mlx5en} \
243         ${_mlx5ib} \
244         ${_mly} \
245         mmc \
246         mmcsd \
247         ${_mpr} \
248         ${_mps} \
249         mpt \
250         mqueue \
251         mrsas \
252         msdosfs \
253         msdosfs_iconv \
254         msk \
255         ${_mthca} \
256         mvs \
257         mwl \
258         ${_mwlfw} \
259         mxge \
260         my \
261         ${_nctgpio} \
262         ${_netgraph} \
263         ${_nfe} \
264         nfscl \
265         nfscommon \
266         nfsd \
267         nfslockd \
268         nfssvc \
269         nge \
270         nmdm \
271         nullfs \
272         ${_ntb} \
273         ${_nvd} \
274         ${_nvdimm} \
275         ${_nvme} \
276         ${_nvram} \
277         oce \
278         ${_ocs_fc} \
279         ${_ossl} \
280         otus \
281         ${_otusfw} \
282         ow \
283         ${_padlock} \
284         ${_padlock_rng} \
285         ${_pccard} \
286         ${_pchtherm} \
287         ${_pcfclock} \
288         ${_pf} \
289         ${_pflog} \
290         ${_pfsync} \
291         plip \
292         ${_pms} \
293         ppbus \
294         ppc \
295         ppi \
296         pps \
297         procfs \
298         proto \
299         pseudofs \
300         ${_pst} \
301         pty  \
302         puc \
303         pwm \
304         ${_qat} \
305         ${_qatfw} \
306         ${_qlxge} \
307         ${_qlxgb} \
308         ${_qlxgbe} \
309         ${_qlnx} \
310         ral \
311         ${_ralfw} \
312         ${_random_fortuna} \
313         ${_random_other} \
314         rc4 \
315         ${_rdma} \
316         ${_rdrand_rng} \
317         re \
318         rl \
319         ${_rockchip} \
320         rtsx \
321         rtwn \
322         rtwn_pci \
323         rtwn_usb \
324         ${_rtwnfw} \
325         ${_s3} \
326         ${_safe} \
327         safexcel \
328         ${_sbni} \
329         scc \
330         ${_sctp} \
331         sdhci \
332         ${_sdhci_acpi} \
333         sdhci_pci \
334         sdio \
335         sem \
336         send \
337         ${_sfxge} \
338         sge \
339         ${_sgx} \
340         ${_sgx_linux} \
341         siftr \
342         siis \
343         sis \
344         sk \
345         ${_smartpqi} \
346         smbfs \
347         snp \
348         sound \
349         ${_speaker} \
350         spi \
351         ${_splash} \
352         ${_sppp} \
353         ste \
354         stge \
355         ${_sume} \
356         ${_superio} \
357         ${_sym} \
358         ${_syscons} \
359         sysvipc \
360         tcp \
361         ${_ti} \
362         tmpfs \
363         ${_toecore} \
364         ${_tpm} \
365         ${_twa} \
366         twe \
367         tws \
368         uart \
369         udf \
370         udf_iconv \
371         ufs \
372         uinput \
373         unionfs \
374         usb \
375         ${_vesa} \
376         virtio \
377         vge \
378         ${_viawd} \
379         videomode \
380         vkbd \
381         ${_vmd} \
382         ${_vmm} \
383         ${_vmware} \
384         vr \
385         vte \
386         ${_wbwd} \
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}
411 SUBDIR+=        dtrace
412 .endif
413 .endif
414 SUBDIR+=        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)
428 SUBDIR+=        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_wg=         if_wg
460 .endif
461
462 .if ${MK_INET_SUPPORT} != "no" || defined(ALL_MODULES)
463 _if_me=         if_me
464 _ipdivert=      ipdivert
465 _ipfw=          ipfw
466 .if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES)
467 _ipfw_nat64=    ipfw_nat64
468 .endif
469 .endif
470
471 .if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES)
472 _ipfw_nptv6=    ipfw_nptv6
473 .endif
474
475 .if ${MK_IPFILTER} != "no" || defined(ALL_MODULES)
476 _ipfilter=      ipfilter
477 .endif
478
479 .if ${MK_INET_SUPPORT} != "no" && ${KERN_OPTS:MFIB_ALGO}
480 _dpdk_lpm4=     dpdk_lpm4
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)
488 SUBDIR+=        cfiscsi
489 SUBDIR+=        iscsi
490 SUBDIR+=        iscsi_initiator
491 .endif
492
493 .if !empty(OPT_FDT)
494 SUBDIR+=        fdt
495 .endif
496
497 # Linuxulator
498 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
499     ${MACHINE_CPUARCH} == "i386"
500 SUBDIR+=        linprocfs
501 SUBDIR+=        linsysfs
502 .endif
503 .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
504 SUBDIR+=        linux
505 .endif
506 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64"
507 SUBDIR+=        linux64
508 SUBDIR+=        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)
585 SUBDIR+=        tests
586 .endif
587
588 .if ${MK_ZFS} != "no" || (defined(ALL_MODULES)  && ${MACHINE_CPUARCH} != "powerpc")
589 SUBDIR+=        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 _rockchip=      rockchip
619 .endif
620
621 .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
622 _agp=           agp
623 _an=            an
624 _aout=          aout
625 _bios=          bios
626 .if ${MK_SOURCELESS_UCODE} != "no"
627 _bxe=           bxe
628 .endif
629 _cardbus=       cardbus
630 _cbb=           cbb
631 _cpuctl=        cpuctl
632 _cpufreq=       cpufreq
633 _dpms=          dpms
634 _em=            em
635 _et=            et
636 _ftwd=          ftwd
637 _exca=          exca
638 _io=            io
639 _itwd=          itwd
640 _ix=            ix
641 _ixv=           ixv
642 .if ${MK_SOURCELESS_UCODE} != "no"
643 _lio=           lio
644 .endif
645 _nctgpio=       nctgpio
646 _ntb=           ntb
647 _ocs_fc=        ocs_fc
648 _pccard=        pccard
649 _qat=           qat
650 _qatfw=         qatfw
651 .if ${MK_OFED} != "no" || defined(ALL_MODULES)
652 _rdma=          rdma
653 .endif
654 _safe=          safe
655 _speaker=       speaker
656 _splash=        splash
657 _sppp=          sppp
658 _wbwd=          wbwd
659
660 _aac=           aac
661 _aacraid=       aacraid
662 _acpi=          acpi
663 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
664 _aesni=         aesni
665 .endif
666 _amd_ecc_inject=amd_ecc_inject
667 _amdsbwd=       amdsbwd
668 _amdsmn=        amdsmn
669 _amdtemp=       amdtemp
670 _arcmsr=        arcmsr
671 _asmc=          asmc
672 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
673 _blake2=        blake2
674 .endif
675 _bytgpio=       bytgpio
676 _chvgpio=       chvgpio
677 _ciss=          ciss
678 _chromebook_platform=   chromebook_platform
679 _coretemp=      coretemp
680 .if ${MK_SOURCELESS_HOST} != "no" && empty(KCSAN_ENABLED)
681 _hpt27xx=       hpt27xx
682 .endif
683 _hptiop=        hptiop
684 .if ${MK_SOURCELESS_HOST} != "no" && empty(KCSAN_ENABLED)
685 _hptmv=         hptmv
686 _hptnr=         hptnr
687 _hptrr=         hptrr
688 .endif
689 _hyperv=        hyperv
690 _ichwd=         ichwd
691 _ida=           ida
692 _iir=           iir
693 _intelspi=      intelspi
694 _ips=           ips
695 _isci=          isci
696 _ipw=           ipw
697 _iwi=           iwi
698 _iwm=           iwm
699 _iwn=           iwn
700 .if ${MK_SOURCELESS_UCODE} != "no"
701 _ipwfw=         ipwfw
702 _iwifw=         iwifw
703 _iwmfw=         iwmfw
704 _iwnfw=         iwnfw
705 .endif
706 _mly=           mly
707 _nfe=           nfe
708 _nvd=           nvd
709 _nvme=          nvme
710 _nvram=         nvram
711 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
712 _padlock=       padlock
713 _padlock_rng=   padlock_rng
714 _rdrand_rng=    rdrand_rng
715 .endif
716 _pchtherm = pchtherm
717 _s3=            s3
718 _sdhci_acpi=    sdhci_acpi
719 _superio=       superio
720 _tpm=           tpm
721 _twa=           twa
722 _vesa=          vesa
723 _viawd=         viawd
724 _wpi=           wpi
725 .if ${MK_SOURCELESS_UCODE} != "no"
726 _wpifw=         wpifw
727 .endif
728 _x86bios=       x86bios
729 .endif
730
731 .if ${MACHINE_CPUARCH} == "amd64"
732 _amdgpio=       amdgpio
733 _ccp=           ccp
734 _iavf=          iavf
735 _ioat=          ioat
736 _ixl=           ixl
737 _nvdimm=        nvdimm
738 _pms=           pms
739 _qlxge=         qlxge
740 _qlxgb=         qlxgb
741 _sume=          sume
742 _vmd=           vmd
743 .if ${MK_SOURCELESS_UCODE} != "no"
744 _qlxgbe=        qlxgbe
745 _qlnx=          qlnx
746 .endif
747 _sfxge=         sfxge
748 _sgx=           sgx
749 _sgx_linux=     sgx_linux
750 _smartpqi=      smartpqi
751
752 .if ${MK_BHYVE} != "no" || defined(ALL_MODULES)
753 .if ${KERN_OPTS:MSMP}
754 _vmm=           vmm
755 .endif
756 .endif
757 .endif
758
759 .if ${MACHINE_CPUARCH} == "i386"
760 # XXX some of these can move to the general case when de-i386'ed
761 # XXX some of these can move now, but are untested on other architectures.
762 _3dfx=          3dfx
763 _3dfx_linux=    3dfx_linux
764 .if ${MK_SOURCELESS_HOST} != "no"
765 _ce=            ce
766 .endif
767 .if ${MK_SOURCELESS_HOST} != "no"
768 _cp=            cp
769 .endif
770 _glxiic=        glxiic
771 _glxsb=         glxsb
772 _pcfclock=      pcfclock
773 _pst=           pst
774 _sbni=          sbni
775 .endif
776
777 .if ${MACHINE_ARCH} == "armv7"
778 _cfi=           cfi
779 _cpsw=          cpsw
780 .endif
781
782 .if ${MACHINE_CPUARCH} == "powerpc"
783 _aacraid=       aacraid
784 _agp=           agp
785 _an=            an
786 _cardbus=       cardbus
787 _cbb=           cbb
788 _cfi=           cfi
789 _cpufreq=       cpufreq
790 _exca=          exca
791 _ffec=          ffec
792 _nvd=           nvd
793 _nvme=          nvme
794 _pccard=        pccard
795 .endif
796
797 .if ${MACHINE_ARCH:Mpowerpc64*} != ""
798 _ipmi=          ipmi
799 _ixl=           ixl
800 _nvram=         opal_nvram
801 .endif
802 .if ${MACHINE_CPUARCH} == "powerpc" && ${MACHINE_ARCH} != "powerpcspe"
803 # Don't build powermac_nvram for powerpcspe, it's never supported.
804 _nvram+=        powermac_nvram
805 .endif
806
807 .if (${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
808      ${MACHINE_ARCH:Marmv[67]*} != "" || ${MACHINE_CPUARCH} == "i386")
809 _cloudabi32=    cloudabi32
810 .endif
811 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64"
812 _cloudabi64=    cloudabi64
813 .endif
814
815 .endif
816
817 .if ${MACHINE_ARCH:Marmv[67]*} != "" || ${MACHINE_CPUARCH} == "aarch64"
818 _bcm283x_clkman=  bcm283x_clkman
819 _bcm283x_pwm=  bcm283x_pwm
820 .endif
821
822 .if !(${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} < 110000)
823 # LLVM 10 crashes when building if_malo_pci.c, fixed in LLVM11:
824 # https://bugs.llvm.org/show_bug.cgi?id=44351
825 _malo=  malo
826 .endif
827
828 SUBDIR+=${MODULES_EXTRA}
829
830 .for reject in ${WITHOUT_MODULES}
831 SUBDIR:= ${SUBDIR:N${reject}}
832 .endfor
833
834 # Calling kldxref(8) for each module is expensive.
835 .if !defined(NO_XREF)
836 .MAKEFLAGS+=    -DNO_XREF
837 afterinstall: .PHONY
838         @if type kldxref >/dev/null 2>&1; then \
839                 ${ECHO} ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \
840                 ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \
841         fi
842 .endif
843
844 SUBDIR:= ${SUBDIR:u:O}
845
846 .include <bsd.subdir.mk>