]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/modules/Makefile
Move SYSCTL_ADD_PROC() to unlocked context in if_ure to avoid lock order reversal.
[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         ${_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         ${_ftwd} \
125         fusefs \
126         ${_fxp} \
127         gem \
128         geom \
129         ${_glxiic} \
130         ${_glxsb} \
131         gpio \
132         hifn \
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         if_wg \
165         iflib \
166         ${_iir} \
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         ${_ktls_ocf} \
208         le \
209         lge \
210         libalias \
211         libiconv \
212         libmchain \
213         lindebugfs \
214         linuxkpi \
215         ${_lio} \
216         lpt \
217         mac_biba \
218         mac_bsdextended \
219         mac_ifoff \
220         mac_lomac \
221         mac_mls \
222         mac_none \
223         mac_ntpd \
224         mac_partition \
225         mac_portacl \
226         mac_seeotheruids \
227         mac_stub \
228         mac_test \
229         ${_malo} \
230         md \
231         mdio \
232         mem \
233         mfi \
234         mii \
235         mlx \
236         mlxfw \
237         ${_mlx4} \
238         ${_mlx4ib} \
239         ${_mlx4en} \
240         ${_mlx5} \
241         ${_mlx5en} \
242         ${_mlx5ib} \
243         ${_mly} \
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         ${_ndis} \
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         ${_wi} \
388         wlan \
389         wlan_acl \
390         wlan_amrr \
391         wlan_ccmp \
392         wlan_rssadapt \
393         wlan_tkip \
394         wlan_wep \
395         wlan_xauth \
396         ${_wpi} \
397         ${_wpifw} \
398         ${_x86bios} \
399         xdr \
400         xl \
401         xz \
402         zlib
403
404 .if ${MK_AUTOFS} != "no" || defined(ALL_MODULES)
405 _autofs=        autofs
406 .endif
407
408 .if ${MK_CDDL} != "no" || defined(ALL_MODULES)
409 .if (${MACHINE_CPUARCH} != "arm" || ${MACHINE_ARCH:Marmv[67]*} != "") && \
410         ${MACHINE_CPUARCH} != "mips"
411 .if ${KERN_OPTS:MKDTRACE_HOOKS}
412 SUBDIR+=        dtrace
413 .endif
414 .endif
415 SUBDIR+=        opensolaris
416 .endif
417
418 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
419 .if exists(${SRCTOP}/sys/opencrypto)
420 _crypto=        crypto
421 _cryptodev=     cryptodev
422 _random_fortuna=random_fortuna
423 _random_other=  random_other
424 _ktls_ocf=      ktls_ocf
425 .endif
426 .endif
427
428 .if ${MK_CUSE} != "no" || defined(ALL_MODULES)
429 SUBDIR+=        cuse
430 .endif
431
432 .if ${MK_EFI} != "no"
433 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64"
434 _efirt=         efirt
435 .endif
436 .endif
437
438 .if (${MK_INET_SUPPORT} != "no" || ${MK_INET6_SUPPORT} != "no") || \
439         defined(ALL_MODULES)
440 _carp=          carp
441 _toecore=       toecore
442 _if_enc=        if_enc
443 _if_gif=        if_gif
444 _if_gre=        if_gre
445 _ipfw_pmod=     ipfw_pmod
446 .if ${KERN_OPTS:MIPSEC_SUPPORT} && !${KERN_OPTS:MIPSEC}
447 _ipsec=         ipsec
448 .endif
449 .if ${KERN_OPTS:MSCTP_SUPPORT} || ${KERN_OPTS:MSCTP}
450 _sctp=          sctp
451 .endif
452 .endif
453
454 .if (${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no") || \
455         defined(ALL_MODULES)
456 _if_stf=        if_stf
457 .endif
458
459 .if ${MK_INET_SUPPORT} != "no" || defined(ALL_MODULES)
460 _if_me=         if_me
461 _ipdivert=      ipdivert
462 _ipfw=          ipfw
463 .if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES)
464 _ipfw_nat64=    ipfw_nat64
465 .endif
466 .endif
467
468 .if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES)
469 _ipfw_nptv6=    ipfw_nptv6
470 .endif
471
472 .if ${MK_IPFILTER} != "no" || defined(ALL_MODULES)
473 _ipfilter=      ipfilter
474 .endif
475
476 .if ${MK_ISCSI} != "no" || defined(ALL_MODULES)
477 SUBDIR+=        cfiscsi
478 SUBDIR+=        iscsi
479 SUBDIR+=        iscsi_initiator
480 .endif
481
482 .if !empty(OPT_FDT)
483 SUBDIR+=        fdt
484 .endif
485
486 # Linuxulator
487 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
488     ${MACHINE_CPUARCH} == "i386"
489 SUBDIR+=        linprocfs
490 SUBDIR+=        linsysfs
491 .endif
492 .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
493 SUBDIR+=        linux
494 .endif
495 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64"
496 SUBDIR+=        linux64
497 SUBDIR+=        linux_common
498 .endif
499
500 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
501     ${MACHINE_CPUARCH} == "i386"
502 _ena=           ena
503 .if ${MK_OFED} != "no" || defined(ALL_MODULES)
504 _ibcore=        ibcore
505 _ipoib=         ipoib
506 _iser=          iser
507 .endif
508 _mlx4=          mlx4
509 _mlx5=          mlx5
510 .if (${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no") || \
511         defined(ALL_MODULES)
512 _mlx4en=        mlx4en
513 _mlx5en=        mlx5en
514 .endif
515 .if ${MK_OFED} != "no" || defined(ALL_MODULES)
516 _mthca=         mthca
517 _mlx4ib=        mlx4ib
518 _mlx5ib=        mlx5ib
519 .endif
520 _ossl=          ossl
521 _vmware=        vmware
522 .endif
523
524 .if ${MK_NETGRAPH} != "no" || defined(ALL_MODULES)
525 _netgraph=      netgraph
526 .endif
527
528 .if (${MK_PF} != "no" && (${MK_INET_SUPPORT} != "no" || \
529         ${MK_INET6_SUPPORT} != "no")) || defined(ALL_MODULES)
530 _pf=            pf
531 _pflog=         pflog
532 .if ${MK_INET_SUPPORT} != "no"
533 _pfsync=        pfsync
534 .endif
535 .endif
536
537 .if ${MK_SOURCELESS_UCODE} != "no"
538 _bce=           bce
539 _fxp=           fxp
540 _ispfw=         ispfw
541 _ti=            ti
542
543 .if ${MACHINE_CPUARCH} != "mips"
544 _mwlfw=         mwlfw
545 _otusfw=        otusfw
546 _ralfw=         ralfw
547 _rtwnfw=        rtwnfw
548 .endif
549 .endif
550
551 .if ${MK_SOURCELESS_UCODE} != "no" && ${MACHINE_CPUARCH} != "arm" && \
552         ${MACHINE_CPUARCH} != "mips" && \
553         ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpcspe" && \
554         ${MACHINE_CPUARCH} != "riscv"
555 _cxgbe=         cxgbe
556 .endif
557
558 .if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "arm64"
559 _ice=           ice
560 .if ${MK_SOURCELESS_UCODE} != "no"
561 _ice_ddp=       ice_ddp
562 .endif
563 .endif
564
565 # These rely on 64bit atomics
566 .if ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpcspe" && \
567         ${MACHINE_CPUARCH} != "mips"
568 _mps=           mps
569 _mpr=           mpr
570 .endif
571
572 .if ${MK_TESTS} != "no" || defined(ALL_MODULES)
573 SUBDIR+=        tests
574 .endif
575
576 .if ${MK_ZFS} != "no" || (defined(ALL_MODULES)  && ${MACHINE_CPUARCH} != "powerpc")
577 SUBDIR+=        zfs
578 .endif
579
580 .if (${MACHINE_CPUARCH} == "mips" && ${MACHINE_ARCH:Mmips64} == "")
581 _hwpmc_mips24k= hwpmc_mips24k
582 _hwpmc_mips74k= hwpmc_mips74k
583 .endif
584
585 .if ${MACHINE_CPUARCH} != "aarch64" && ${MACHINE_CPUARCH} != "arm" && \
586         ${MACHINE_CPUARCH} != "mips" && ${MACHINE_CPUARCH} != "powerpc" && \
587         ${MACHINE_CPUARCH} != "riscv"
588 _syscons=       syscons
589 .endif
590
591 .if ${MACHINE_CPUARCH} != "mips"
592 # no BUS_SPACE_UNSPECIFIED
593 # No barrier instruction support (specific to this driver)
594 _sym=           sym
595 # intr_disable() is a macro, causes problems
596 .if ${MK_SOURCELESS_UCODE} != "no"
597 _cxgb=          cxgb
598 .endif
599 .endif
600
601 .if ${MACHINE_CPUARCH} == "aarch64"
602 _allwinner=     allwinner
603 _armv8crypto=   armv8crypto
604 _em=            em
605 _rockchip=      rockchip
606 .endif
607
608 .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
609 _agp=           agp
610 _an=            an
611 _aout=          aout
612 _bios=          bios
613 .if ${MK_SOURCELESS_UCODE} != "no"
614 _bxe=           bxe
615 .endif
616 _cardbus=       cardbus
617 _cbb=           cbb
618 _cpuctl=        cpuctl
619 _cpufreq=       cpufreq
620 _dpms=          dpms
621 _em=            em
622 _et=            et
623 _ftwd=          ftwd
624 _exca=          exca
625 _if_ndis=       if_ndis
626 _io=            io
627 _itwd=          itwd
628 _ix=            ix
629 _ixv=           ixv
630 .if ${MK_SOURCELESS_UCODE} != "no"
631 _lio=           lio
632 .endif
633 _nctgpio=       nctgpio
634 _ndis=          ndis
635 _ntb=           ntb
636 _ocs_fc=        ocs_fc
637 _pccard=        pccard
638 _qat=           qat
639 _qatfw=         qatfw
640 .if ${MK_OFED} != "no" || defined(ALL_MODULES)
641 _rdma=          rdma
642 .endif
643 _safe=          safe
644 _speaker=       speaker
645 _splash=        splash
646 _sppp=          sppp
647 _wbwd=          wbwd
648 _wi=            wi
649
650 _aac=           aac
651 _aacraid=       aacraid
652 _acpi=          acpi
653 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
654 _aesni=         aesni
655 .endif
656 _amd_ecc_inject=amd_ecc_inject
657 _amdsbwd=       amdsbwd
658 _amdsmn=        amdsmn
659 _amdtemp=       amdtemp
660 _arcmsr=        arcmsr
661 _asmc=          asmc
662 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
663 _blake2=        blake2
664 .endif
665 _bytgpio=       bytgpio
666 _chvgpio=       chvgpio
667 _ciss=          ciss
668 _chromebook_platform=   chromebook_platform
669 _cmx=           cmx
670 _coretemp=      coretemp
671 .if ${MK_SOURCELESS_HOST} != "no" && empty(KCSAN_ENABLED)
672 _hpt27xx=       hpt27xx
673 .endif
674 _hptiop=        hptiop
675 .if ${MK_SOURCELESS_HOST} != "no" && empty(KCSAN_ENABLED)
676 _hptmv=         hptmv
677 _hptnr=         hptnr
678 _hptrr=         hptrr
679 .endif
680 _hyperv=        hyperv
681 _ichwd=         ichwd
682 _ida=           ida
683 _iir=           iir
684 _intelspi=      intelspi
685 _ipmi=          ipmi
686 _ips=           ips
687 _isci=          isci
688 _ipw=           ipw
689 _iwi=           iwi
690 _iwm=           iwm
691 _iwn=           iwn
692 .if ${MK_SOURCELESS_UCODE} != "no"
693 _ipwfw=         ipwfw
694 _iwifw=         iwifw
695 _iwmfw=         iwmfw
696 _iwnfw=         iwnfw
697 .endif
698 _mly=           mly
699 _nfe=           nfe
700 _nvd=           nvd
701 _nvme=          nvme
702 _nvram=         nvram
703 .if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
704 _padlock=       padlock
705 _padlock_rng=   padlock_rng
706 _rdrand_rng=    rdrand_rng
707 .endif
708 _pchtherm = pchtherm
709 _s3=            s3
710 _sdhci_acpi=    sdhci_acpi
711 _superio=       superio
712 _tpm=           tpm
713 _twa=           twa
714 _vesa=          vesa
715 _viawd=         viawd
716 _virtio=        virtio
717 _wpi=           wpi
718 .if ${MK_SOURCELESS_UCODE} != "no"
719 _wpifw=         wpifw
720 .endif
721 _x86bios=       x86bios
722 .endif
723
724 .if ${MACHINE_CPUARCH} == "amd64"
725 _amdgpio=       amdgpio
726 _ccp=           ccp
727 _iavf=          iavf
728 _ioat=          ioat
729 _ixl=           ixl
730 _nvdimm=        nvdimm
731 _pms=           pms
732 _qlxge=         qlxge
733 _qlxgb=         qlxgb
734 _sume=          sume
735 _vmd=           vmd
736 .if ${MK_SOURCELESS_UCODE} != "no"
737 _qlxgbe=        qlxgbe
738 _qlnx=          qlnx
739 .endif
740 _sfxge=         sfxge
741 _sgx=           sgx
742 _sgx_linux=     sgx_linux
743 _smartpqi=      smartpqi
744
745 .if ${MK_BHYVE} != "no" || defined(ALL_MODULES)
746 .if ${KERN_OPTS:MSMP}
747 _vmm=           vmm
748 .endif
749 .endif
750 .endif
751
752 .if ${MACHINE_CPUARCH} == "i386"
753 # XXX some of these can move to the general case when de-i386'ed
754 # XXX some of these can move now, but are untested on other architectures.
755 _3dfx=          3dfx
756 _3dfx_linux=    3dfx_linux
757 .if ${MK_SOURCELESS_HOST} != "no"
758 _ce=            ce
759 .endif
760 .if ${MK_SOURCELESS_UCODE} != "no"
761 _cp=            cp
762 .endif
763 _glxiic=        glxiic
764 _glxsb=         glxsb
765 _pcfclock=      pcfclock
766 _pst=           pst
767 _sbni=          sbni
768 .endif
769
770 .if ${MACHINE_ARCH} == "armv7"
771 _cfi=           cfi
772 _cpsw=          cpsw
773 .endif
774
775 .if ${MACHINE_CPUARCH} == "powerpc"
776 _aacraid=       aacraid
777 _agp=           agp
778 _an=            an
779 _cardbus=       cardbus
780 _cbb=           cbb
781 _cfi=           cfi
782 _cpufreq=       cpufreq
783 _exca=          exca
784 _ffec=          ffec
785 _nvd=           nvd
786 _nvme=          nvme
787 _pccard=        pccard
788 _wi=            wi
789 _virtio=        virtio
790 .endif
791
792 .if ${MACHINE_ARCH:Mpowerpc64*} != ""
793 _ipmi=          ipmi
794 _ixl=           ixl
795 _nvram=         opal_nvram
796 .endif
797 .if ${MACHINE_CPUARCH} == "powerpc" && ${MACHINE_ARCH} != "powerpcspe"
798 # Don't build powermac_nvram for powerpcspe, it's never supported.
799 _nvram+=        powermac_nvram
800 .endif
801
802 .if (${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
803      ${MACHINE_ARCH:Marmv[67]*} != "" || ${MACHINE_CPUARCH} == "i386")
804 _cloudabi32=    cloudabi32
805 .endif
806 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64"
807 _cloudabi64=    cloudabi64
808 .endif
809
810 .endif
811
812 .if ${MACHINE_ARCH:Marmv[67]*} != "" || ${MACHINE_CPUARCH} == "aarch64"
813 _bcm283x_clkman=  bcm283x_clkman
814 _bcm283x_pwm=  bcm283x_pwm
815 .endif
816
817 .if !(${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} < 110000)
818 # LLVM 10 crashes when building if_malo_pci.c, fixed in LLVM11:
819 # https://bugs.llvm.org/show_bug.cgi?id=44351
820 _malo=  malo
821 .endif
822
823 SUBDIR+=${MODULES_EXTRA}
824
825 .for reject in ${WITHOUT_MODULES}
826 SUBDIR:= ${SUBDIR:N${reject}}
827 .endfor
828
829 # Calling kldxref(8) for each module is expensive.
830 .if !defined(NO_XREF)
831 .MAKEFLAGS+=    -DNO_XREF
832 afterinstall: .PHONY
833         @if type kldxref >/dev/null 2>&1; then \
834                 ${ECHO} ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \
835                 ${KLDXREF_CMD} ${DESTDIR}${KMODDIR}; \
836         fi
837 .endif
838
839 SUBDIR:= ${SUBDIR:u:O}
840
841 .include <bsd.subdir.mk>