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