]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/modules/Makefile
flex_spi: Support for FlexSPI Flash controller.
[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         ${_ce} \
86         ${_cfi} \
87         ${_chromebook_platform} \
88         ${_ciss} \
89         ${_coretemp} \
90         ${_cp} \
91         ${_cpsw} \
92         ${_cpuctl} \
93         ${_cpufreq} \
94         ${_crypto} \
95         ${_cryptodev} \
96         ctl \
97         ${_cxgb} \
98         ${_cxgbe} \
99         dc \
100         dcons \
101         dcons_crom \
102         ${_dpdk_lpm4} \
103         ${_dpdk_lpm6} \
104         ${_dpms} \
105         dummynet \
106         ${_dwwdt} \
107         ${_e6000sw} \
108         ${_efirt} \
109         ${_em} \
110         ${_ena} \
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         ${_hwpmc_mips24k} \
142         ${_hwpmc_mips74k} \
143         ${_hyperv} \
144         i2c \
145         ${_iavf} \
146         ${_ibcore} \
147         ${_ichwd} \
148         ${_ice} \
149         ${_ice_ddp} \
150         ${_ida} \
151         if_bridge \
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_stf} \
162         if_tuntap \
163         if_vlan \
164         if_vxlan \
165         iflib \
166         ${_igc} \
167         imgact_binmisc \
168         ${_intelspi} \
169         ${_io} \
170         ${_ioat} \
171         ${_ipoib} \
172         ${_ipdivert} \
173         ${_ipfilter} \
174         ${_ipfw} \
175         ipfw_nat \
176         ${_ipfw_nat64} \
177         ${_ipfw_nptv6} \
178         ${_ipfw_pmod} \
179         ${_ipmi} \
180         ip6_mroute_mod \
181         ip_mroute_mod \
182         ${_ips} \
183         ${_ipsec} \
184         ${_ipw} \
185         ${_ipwfw} \
186         ${_isci} \
187         ${_iser} \
188         isp \
189         ${_ispfw} \
190         ${_itwd} \
191         ${_iwi} \
192         ${_iwifw} \
193         ${_iwm} \
194         ${_iwmfw} \
195         ${_iwn} \
196         ${_iwnfw} \
197         ${_ix} \
198         ${_ixv} \
199         ${_ixl} \
200         jme \
201         kbdmux \
202         kgssapi \
203         kgssapi_krb5 \
204         khelp \
205         krpc \
206         ksyms \
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         ${_mana} \
230         md \
231         mdio \
232         ${_mgb} \
233         mem \
234         mfi \
235         mii \
236         mlx \
237         mlxfw \
238         ${_mlx4} \
239         ${_mlx4ib} \
240         ${_mlx4en} \
241         ${_mlx5} \
242         ${_mlx5en} \
243         ${_mlx5ib} \
244         mmc \
245         mmcsd \
246         ${_mpr} \
247         ${_mps} \
248         mpt \
249         mqueue \
250         mrsas \
251         msdosfs \
252         msdosfs_iconv \
253         msk \
254         ${_mthca} \
255         mvs \
256         mwl \
257         ${_mwlfw} \
258         mxge \
259         my \
260         ${_nctgpio} \
261         ${_neta} \
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         ${_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_fdt} \
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         ste \
353         stge \
354         ${_sume} \
355         ${_superio} \
356         ${_p2sb} \
357         ${_sym} \
358         ${_syscons} \
359         sysvipc \
360         tcp \
361         ${_ti} \
362         tmpfs \
363         ${_toecore} \
364         ${_tpm} \
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         wlan \
387         wlan_acl \
388         wlan_amrr \
389         wlan_ccmp \
390         wlan_rssadapt \
391         wlan_tkip \
392         wlan_wep \
393         wlan_xauth \
394         ${_wpi} \
395         ${_wpifw} \
396         ${_x86bios} \
397         xdr \
398         xl \
399         xz \
400         zlib
401
402 .if ${MK_AUTOFS} != "no" || defined(ALL_MODULES)
403 _autofs=        autofs
404 .endif
405
406 .if ${MK_CDDL} != "no" || defined(ALL_MODULES)
407 .if (${MACHINE_CPUARCH} != "arm" || ${MACHINE_ARCH:Marmv[67]*} != "") && \
408         ${MACHINE_CPUARCH} != "mips"
409 .if ${KERN_OPTS:MKDTRACE_HOOKS}
410 SUBDIR+=        dtrace
411 .endif
412 .endif
413 SUBDIR+=        opensolaris
414 .endif
415
416 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
417 .if exists(${SRCTOP}/sys/opencrypto)
418 _crypto=        crypto
419 _cryptodev=     cryptodev
420 _random_fortuna=random_fortuna
421 _random_other=  random_other
422 .endif
423 .endif
424
425 .if ${MK_CUSE} != "no" || defined(ALL_MODULES)
426 SUBDIR+=        cuse
427 .endif
428
429 .if ${MK_EFI} != "no"
430 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64"
431 _efirt=         efirt
432 .endif
433 .endif
434
435 .if (${MK_INET_SUPPORT} != "no" || ${MK_INET6_SUPPORT} != "no") || \
436         defined(ALL_MODULES)
437 _carp=          carp
438 _toecore=       toecore
439 _if_enc=        if_enc
440 _if_gif=        if_gif
441 _if_gre=        if_gre
442 _ipfw_pmod=     ipfw_pmod
443 .if ${KERN_OPTS:MIPSEC_SUPPORT} && !${KERN_OPTS:MIPSEC}
444 _ipsec=         ipsec
445 .endif
446 .if ${KERN_OPTS:MSCTP_SUPPORT} || ${KERN_OPTS:MSCTP}
447 _sctp=          sctp
448 .endif
449 .endif
450
451 .if (${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no") || \
452         defined(ALL_MODULES)
453 _if_stf=        if_stf
454 .endif
455
456 .if ${MK_INET_SUPPORT} != "no" || defined(ALL_MODULES)
457 _if_me=         if_me
458 _ipdivert=      ipdivert
459 _ipfw=          ipfw
460 .if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES)
461 _ipfw_nat64=    ipfw_nat64
462 .endif
463 .endif
464
465 .if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES)
466 _ipfw_nptv6=    ipfw_nptv6
467 .endif
468
469 .if ${MK_IPFILTER} != "no" || defined(ALL_MODULES)
470 _ipfilter=      ipfilter
471 .endif
472
473 .if ${MK_INET_SUPPORT} != "no" && ${KERN_OPTS:MFIB_ALGO}
474 _dpdk_lpm4=     dpdk_lpm4
475 _fib_dxr=       fib_dxr
476 .endif
477
478 .if ${MK_INET6_SUPPORT} != "no" && ${KERN_OPTS:MFIB_ALGO}
479 _dpdk_lpm6=     dpdk_lpm6
480 .endif
481
482 .if ${MK_ISCSI} != "no" || defined(ALL_MODULES)
483 SUBDIR+=        cfiscsi
484 SUBDIR+=        iscsi
485 .endif
486
487 .if !empty(OPT_FDT)
488 SUBDIR+=        fdt
489 .endif
490
491 # Linuxulator
492 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
493     ${MACHINE_CPUARCH} == "i386"
494 SUBDIR+=        linprocfs
495 SUBDIR+=        linsysfs
496 .endif
497 .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
498 SUBDIR+=        linux
499 .endif
500 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64"
501 SUBDIR+=        linux64
502 SUBDIR+=        linux_common
503 .endif
504
505 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
506     ${MACHINE_CPUARCH} == "i386"
507 _ena=           ena
508 .if ${MK_OFED} != "no" || defined(ALL_MODULES)
509 _ibcore=        ibcore
510 _ipoib=         ipoib
511 _iser=          iser
512 .endif
513 _ipmi=          ipmi
514 _mlx4=          mlx4
515 _mlx5=          mlx5
516 .if (${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no") || \
517         defined(ALL_MODULES)
518 _mlx4en=        mlx4en
519 _mlx5en=        mlx5en
520 .endif
521 .if ${MK_OFED} != "no" || defined(ALL_MODULES)
522 _mthca=         mthca
523 _mlx4ib=        mlx4ib
524 _mlx5ib=        mlx5ib
525 .endif
526 _ossl=          ossl
527 _vmware=        vmware
528 .endif
529
530 .if ${MK_NETGRAPH} != "no" || defined(ALL_MODULES)
531 _netgraph=      netgraph
532 .endif
533
534 .if (${MK_PF} != "no" && (${MK_INET_SUPPORT} != "no" || \
535         ${MK_INET6_SUPPORT} != "no")) || defined(ALL_MODULES)
536 _pf=            pf
537 _pflog=         pflog
538 .if ${MK_INET_SUPPORT} != "no"
539 _pfsync=        pfsync
540 .endif
541 .endif
542
543 .if ${MK_SOURCELESS_UCODE} != "no"
544 _bce=           bce
545 _fxp=           fxp
546 _ispfw=         ispfw
547 _ti=            ti
548
549 .if ${MACHINE_CPUARCH} != "mips"
550 _mwlfw=         mwlfw
551 _otusfw=        otusfw
552 _ralfw=         ralfw
553 _rtwnfw=        rtwnfw
554 .endif
555 .endif
556
557 .if ${MK_SOURCELESS_UCODE} != "no" && ${MACHINE_CPUARCH} != "arm" && \
558         ${MACHINE_CPUARCH} != "mips" && \
559         ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpcspe" && \
560         ${MACHINE_CPUARCH} != "riscv"
561 _cxgbe=         cxgbe
562 .endif
563
564 .if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "arm64"
565 _ice=           ice
566 .if ${MK_SOURCELESS_UCODE} != "no"
567 _ice_ddp=       ice_ddp
568 .endif
569 .endif
570
571 # These rely on 64bit atomics
572 .if ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpcspe" && \
573         ${MACHINE_CPUARCH} != "mips"
574 _mps=           mps
575 _mpr=           mpr
576 .endif
577
578 .if ${MK_TESTS} != "no" || defined(ALL_MODULES)
579 SUBDIR+=        tests
580 .endif
581
582 .if ${MK_ZFS} != "no" || (defined(ALL_MODULES)  && ${MACHINE_CPUARCH} != "powerpc")
583 SUBDIR+=        zfs
584 .endif
585
586 .if (${MACHINE_CPUARCH} == "mips" && ${MACHINE_ARCH:Mmips64} == "")
587 _hwpmc_mips24k= hwpmc_mips24k
588 _hwpmc_mips74k= hwpmc_mips74k
589 .endif
590
591 .if ${MACHINE_CPUARCH} != "aarch64" && ${MACHINE_CPUARCH} != "arm" && \
592         ${MACHINE_CPUARCH} != "mips" && ${MACHINE_CPUARCH} != "powerpc" && \
593         ${MACHINE_CPUARCH} != "riscv"
594 _syscons=       syscons
595 .endif
596
597 .if ${MACHINE_CPUARCH} != "mips"
598 # no BUS_SPACE_UNSPECIFIED
599 # No barrier instruction support (specific to this driver)
600 _sym=           sym
601 # intr_disable() is a macro, causes problems
602 .if ${MK_SOURCELESS_UCODE} != "no"
603 _cxgb=          cxgb
604 .endif
605 .endif
606
607 .if ${MACHINE_CPUARCH} == "aarch64"
608 _allwinner=     allwinner
609 _armv8crypto=   armv8crypto
610 _dwwdt=         dwwdt
611 _em=            em
612 _enetc=         enetc
613 _felix=         felix
614 _rockchip=      rockchip
615 .endif
616
617 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm"
618 _sdhci_fdt=     sdhci_fdt
619 _e6000sw=       e6000sw
620 _neta=          neta
621 .endif
622
623 .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
624 _agp=           agp
625 _aout=          aout
626 _bios=          bios
627 .if ${MK_SOURCELESS_UCODE} != "no"
628 _bxe=           bxe
629 .endif
630 _cardbus=       cardbus
631 _cbb=           cbb
632 _cpuctl=        cpuctl
633 _cpufreq=       cpufreq
634 _dpms=          dpms
635 _em=            em
636 _et=            et
637 _ftwd=          ftwd
638 _exca=          exca
639 _igc=           igc
640 _io=            io
641 _itwd=          itwd
642 _ix=            ix
643 _ixv=           ixv
644 .if ${MK_SOURCELESS_UCODE} != "no"
645 _lio=           lio
646 .endif
647 _mana=          mana
648 _mgb=           mgb
649 _nctgpio=       nctgpio
650 _ntb=           ntb
651 _ocs_fc=        ocs_fc
652 _qat=           qat
653 _qatfw=         qatfw
654 .if ${MK_OFED} != "no" || defined(ALL_MODULES)
655 _rdma=          rdma
656 .endif
657 _safe=          safe
658 _speaker=       speaker
659 _splash=        splash
660 _p2sb=          p2sb
661 _wbwd=          wbwd
662
663 _aac=           aac
664 _aacraid=       aacraid
665 _acpi=          acpi
666 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
667 _aesni=         aesni
668 .endif
669 _amd_ecc_inject=amd_ecc_inject
670 _amdsbwd=       amdsbwd
671 _amdsmn=        amdsmn
672 _amdtemp=       amdtemp
673 _arcmsr=        arcmsr
674 _asmc=          asmc
675 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
676 _blake2=        blake2
677 .endif
678 _bytgpio=       bytgpio
679 _chvgpio=       chvgpio
680 _ciss=          ciss
681 _chromebook_platform=   chromebook_platform
682 _coretemp=      coretemp
683 .if ${MK_SOURCELESS_HOST} != "no" && empty(KCSAN_ENABLED)
684 _hpt27xx=       hpt27xx
685 .endif
686 _hptiop=        hptiop
687 .if ${MK_SOURCELESS_HOST} != "no" && empty(KCSAN_ENABLED)
688 _hptmv=         hptmv
689 _hptnr=         hptnr
690 _hptrr=         hptrr
691 .endif
692 _hyperv=        hyperv
693 _ichwd=         ichwd
694 _ida=           ida
695 _intelspi=      intelspi
696 _ips=           ips
697 _isci=          isci
698 _ipw=           ipw
699 _iwi=           iwi
700 _iwm=           iwm
701 _iwn=           iwn
702 .if ${MK_SOURCELESS_UCODE} != "no"
703 _ipwfw=         ipwfw
704 _iwifw=         iwifw
705 _iwmfw=         iwmfw
706 _iwnfw=         iwnfw
707 .endif
708 _nfe=           nfe
709 _nvd=           nvd
710 _nvme=          nvme
711 _nvram=         nvram
712 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
713 _padlock=       padlock
714 _padlock_rng=   padlock_rng
715 _rdrand_rng=    rdrand_rng
716 .endif
717 _pchtherm = pchtherm
718 _s3=            s3
719 _sdhci_acpi=    sdhci_acpi
720 _superio=       superio
721 _tpm=           tpm
722 _vesa=          vesa
723 _viawd=         viawd
724 _vmd=           vmd
725 _wpi=           wpi
726 .if ${MK_SOURCELESS_UCODE} != "no"
727 _wpifw=         wpifw
728 .endif
729 _x86bios=       x86bios
730 .endif
731
732 .if ${MACHINE_CPUARCH} == "amd64"
733 _amdgpio=       amdgpio
734 _ccp=           ccp
735 _iavf=          iavf
736 _ioat=          ioat
737 _ixl=           ixl
738 _nvdimm=        nvdimm
739 _pms=           pms
740 _qlxge=         qlxge
741 _qlxgb=         qlxgb
742 _sume=          sume
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 _p2sb=          p2sb
752
753 .if ${MK_BHYVE} != "no" || defined(ALL_MODULES)
754 .if ${KERN_OPTS:MSMP}
755 _vmm=           vmm
756 .endif
757 .endif
758 .endif
759
760 .if ${MACHINE_CPUARCH} == "i386"
761 # XXX some of these can move to the general case when de-i386'ed
762 # XXX some of these can move now, but are untested on other architectures.
763 _3dfx=          3dfx
764 _3dfx_linux=    3dfx_linux
765 .if ${MK_SOURCELESS_HOST} != "no"
766 _ce=            ce
767 .endif
768 .if ${MK_SOURCELESS_HOST} != "no"
769 _cp=            cp
770 .endif
771 _glxiic=        glxiic
772 _glxsb=         glxsb
773 _pcfclock=      pcfclock
774 _pst=           pst
775 _sbni=          sbni
776 .endif
777
778 .if ${MACHINE_ARCH} == "armv7"
779 _cfi=           cfi
780 _cpsw=          cpsw
781 .endif
782
783 .if ${MACHINE_CPUARCH} == "powerpc"
784 _aacraid=       aacraid
785 _agp=           agp
786 _an=            an
787 _cardbus=       cardbus
788 _cbb=           cbb
789 _cfi=           cfi
790 _cpufreq=       cpufreq
791 _exca=          exca
792 _ffec=          ffec
793 _nvd=           nvd
794 _nvme=          nvme
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 .endif
808
809 .if ${MACHINE_ARCH:Marmv[67]*} != "" || ${MACHINE_CPUARCH} == "aarch64"
810 _bcm283x_clkman=  bcm283x_clkman
811 _bcm283x_pwm=  bcm283x_pwm
812 .endif
813
814 .if !(${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} < 110000)
815 # LLVM 10 crashes when building if_malo_pci.c, fixed in LLVM11:
816 # https://bugs.llvm.org/show_bug.cgi?id=44351
817 _malo=  malo
818 .endif
819
820 SUBDIR+=${MODULES_EXTRA}
821
822 .for reject in ${WITHOUT_MODULES}
823 SUBDIR:= ${SUBDIR:N${reject}}
824 .endfor
825
826 # Calling kldxref(8) for each module is expensive.
827 .if !defined(NO_XREF)
828 .MAKEFLAGS+=    -DNO_XREF
829 afterinstall: .PHONY
830         @if type kldxref >/dev/null 2>&1; then \
831                 ${ECHO} ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \
832                 ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \
833         fi
834 .endif
835
836 SUBDIR:= ${SUBDIR:u:O}
837
838 .include <bsd.subdir.mk>