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