1# $NetBSD: Makefile,v 1.295 2025/01/23 19:02:42 brad Exp $ 2 3.include <bsd.own.mk> 4 5.if !make(includes) 6# For all platforms 7 8# Modules for compatibility with earlier versions of NetBSD 9 10SUBDIR+= compat_util 11SUBDIR+= compat_43 compat_sysctl_09_43 12SUBDIR+= compat_09 compat_10 compat_12 compat_13 compat_14 13SUBDIR+= compat_16 compat_20 compat_30 compat_40 compat_50 14SUBDIR+= compat_60 compat_70 compat_80 compat_90 compat_100 15 16# Not until 11.0 is released and we need binary compatibility with it 17# in >11.0. 18#SUBDIR+= compat_110 19 20SUBDIR+= compat_sysv_10 compat_sysv_14 compat_sysv_50 21 22SUBDIR+= compat_50_quota 23 24SUBDIR+= compat_raid_50 25SUBDIR+= compat_raid_80 26 27SUBDIR+= compat_crypto_50 28 29SUBDIR+= accf_dataready 30SUBDIR+= accf_httpready 31SUBDIR+= adosfs 32SUBDIR+= adiantum 33SUBDIR+= aht20temp 34SUBDIR+= aio 35SUBDIR+= audio 36SUBDIR+= autofs 37SUBDIR+= blake2s 38SUBDIR+= blowfish 39SUBDIR+= bpf 40SUBDIR+= bpf_filter 41SUBDIR+= bmx280thp 42SUBDIR+= bmx280thpi2c 43SUBDIR+= bufq_disksort 44SUBDIR+= bufq_fcfs 45SUBDIR+= bufq_priocscan 46SUBDIR+= bufq_readprio 47SUBDIR+= camellia 48SUBDIR+= cast128 49SUBDIR+= ccd 50SUBDIR+= cd9660 51SUBDIR+= cgd 52SUBDIR+= chfs 53SUBDIR+= clockctl 54SUBDIR+= compat_ossaudio 55SUBDIR+= crypto 56SUBDIR+= coda 57SUBDIR+= coda5 58SUBDIR+= coredump 59SUBDIR+= dbcool 60SUBDIR+= des 61SUBDIR+= dk_subr 62SUBDIR+= drvctl 63SUBDIR+= ds2482ow 64SUBDIR+= ds28e17iic 65SUBDIR+= efs 66SUBDIR+= ext2fs 67SUBDIR+= exec_script 68SUBDIR+= fdesc 69SUBDIR+= ffs 70SUBDIR+= filecore 71SUBDIR+= flash 72SUBDIR+= fss 73SUBDIR+= gpio 74SUBDIR+= gpioiic 75SUBDIR+= gpioow 76SUBDIR+= gpiosim 77SUBDIR+= gpioirq 78SUBDIR+= gpiopps 79SUBDIR+= hfs 80SUBDIR+= hythygtemp 81SUBDIR+= am2315temp 82SUBDIR+= i2cexec 83SUBDIR+= i2c_bitbang 84SUBDIR+= i2c_subr 85SUBDIR+= if_agr 86SUBDIR+= if_aue 87SUBDIR+= if_axe 88SUBDIR+= if_axen 89SUBDIR+= if_cdce 90SUBDIR+= if_cue 91SUBDIR+= if_faith 92SUBDIR+= if_gif 93SUBDIR+= if_gre 94SUBDIR+= if_kue 95SUBDIR+= if_l2tp 96SUBDIR+= if_lagg 97SUBDIR+= if_loop 98SUBDIR+= if_mpls 99SUBDIR+= if_mue 100SUBDIR+= if_ncm 101SUBDIR+= if_npflog 102SUBDIR+= if_ppp 103SUBDIR+= if_pppoe 104SUBDIR+= if_run 105SUBDIR+= if_sl 106SUBDIR+= if_smsc 107SUBDIR+= if_srt srt 108SUBDIR+= if_stf 109SUBDIR+= if_tap tap 110SUBDIR+= if_tun tun 111SUBDIR+= if_udav 112SUBDIR+= if_upl 113SUBDIR+= if_ure 114SUBDIR+= if_url 115SUBDIR+= if_urndis 116SUBDIR+= if_vlan 117SUBDIR+= if_wg 118SUBDIR+= iic 119SUBDIR+= ip_ecn 120.if ${MKIPFILTER:Uno} != no 121SUBDIR+= ipl 122.endif 123SUBDIR+= kernfs 124SUBDIR+= layerfs 125SUBDIR+= lfs 126SUBDIR+= lua 127SUBDIR+= luasystm 128SUBDIR+= luapmf 129SUBDIR+= mfs 130SUBDIR+= midi 131SUBDIR+= midi_seq 132SUBDIR+= miiverbose 133SUBDIR+= miniroot 134SUBDIR+= mqueue 135SUBDIR+= msdos 136SUBDIR+= nand 137SUBDIR+= nandemulator 138SUBDIR+= nfs 139SUBDIR+= nfsserver 140SUBDIR+= nilfs 141SUBDIR+= npf 142SUBDIR+= npf_alg_icmp 143SUBDIR+= npf_ext_log 144SUBDIR+= npf_ext_normalize 145SUBDIR+= npf_ext_rndblock 146SUBDIR+= ntfs 147SUBDIR+= null 148SUBDIR+= onewire 149SUBDIR+= opencrypto 150SUBDIR+= overlay 151SUBDIR+= owtemp 152SUBDIR+= pad 153SUBDIR+= pciverbose 154SUBDIR+= pf 155SUBDIR+= ppp_bsdcomp 156SUBDIR+= ppp_deflate 157SUBDIR+= procfs 158SUBDIR+= ptrace 159SUBDIR+= ptrace_common 160SUBDIR+= ptyfs 161SUBDIR+= puffs 162SUBDIR+= putter 163SUBDIR+= raid 164SUBDIR+= scmd 165SUBDIR+= scmdi2c 166SUBDIR+= scsi_subr 167SUBDIR+= scsiverbose 168SUBDIR+= sdtemp 169SUBDIR+= secmodel_bsd44 170SUBDIR+= secmodel_extensions 171SUBDIR+= secmodel_overlay 172SUBDIR+= securelevel 173SUBDIR+= sequencer 174SUBDIR+= sgp40mox 175SUBDIR+= sht3xtemp 176SUBDIR+= sht4xtemp 177SUBDIR+= si70xxtemp 178SUBDIR+= skipjack 179SUBDIR+= slcompress 180SUBDIR+= spdmem 181SUBDIR+= spkr 182SUBDIR+= sppp_subr 183SUBDIR+= sysmon 184SUBDIR+= sysmon_envsys 185SUBDIR+= sysmon_power 186SUBDIR+= sysmon_taskq 187SUBDIR+= sysmon_wdog 188SUBDIR+= sysvbfs 189SUBDIR+= sysv_ipc 190SUBDIR+= suser 191SUBDIR+= swcrypto 192SUBDIR+= swsensor 193SUBDIR+= swwdog 194SUBDIR+= tmpfs 195SUBDIR+= ualea 196SUBDIR+= uatp 197SUBDIR+= udf 198SUBDIR+= ufs 199SUBDIR+= umap 200SUBDIR+= union 201SUBDIR+= usbnet 202SUBDIR+= usbverbose 203SUBDIR+= vcoda 204SUBDIR+= v7fs 205SUBDIR+= vnd 206SUBDIR+= wapbl 207SUBDIR+= wsbell 208SUBDIR+= zlib 209SUBDIR+= tprof 210.if (defined(NOTYET)) 211SUBDIR+= unionfs 212.endif 213.if ${MKBINUTILS} != "no" 214SUBDIR+= xldscripts 215.endif 216 217# Machine dependent section 218.if ${MACHINE_ARCH} == "i386" || \ 219 ${MACHINE_CPU} == "m68k" 220SUBDIR+= exec_aout 221.endif 222 223.if ${MACHINE_ARCH} != "alpha" && \ 224 ${MACHINE_ARCH} != "ia64" 225SUBDIR+= exec_elf32 226.endif 227 228.if ${MACHINE_CPU} == "aarch64" || \ 229 ${MACHINE_ARCH} == "alpha" || \ 230 ${MACHINE_ARCH} == "ia64" || \ 231 ${MACHINE_ARCH} == "riscv64" || \ 232 ${MACHINE_ARCH} == "sparc64" || \ 233 ${MACHINE_ARCH} == "x86_64" 234SUBDIR+= exec_elf64 235.endif 236 237.if ${MACHINE_ARCH} == "i386" || \ 238 ${MACHINE_ARCH} == "x86_64" 239SUBDIR+= amdsmn 240SUBDIR+= amdtemp 241SUBDIR+= amdzentemp 242SUBDIR+= coretemp 243SUBDIR+= est 244SUBDIR+= hdafg 245SUBDIR+= hdaudio 246SUBDIR+= hdaudio_pci 247SUBDIR+= hdaudioverbose 248SUBDIR+= hpet 249SUBDIR+= ichsmb 250SUBDIR+= odcm 251SUBDIR+= powernow 252SUBDIR+= tco 253SUBDIR+= tprof_x86 254.endif 255 256.if ${MACHINE_CPU} == "aarch64" || \ 257 ${MACHINE_ARCH} == "i386" || \ 258 ${MACHINE_ARCH} == "x86_64" 259SUBDIR+= vmt 260.endif 261 262.if ${HAVE_NVMM:Uno} == "yes" 263SUBDIR+= nvmm 264.endif 265 266# Builds on architectures with PCI bus 267.if \ 268 ${MACHINE} == "evbarm" || \ 269 ${MACHINE_ARCH} == "i386" || \ 270 ${MACHINE_ARCH} == "x86_64" 271#SUBDIR+= hifn 272SUBDIR+= if_iavf 273SUBDIR+= if_ixl 274SUBDIR+= ubsec 275.endif 276 277.if ${MKSLJIT} != "no" 278SUBDIR+= bpfjit 279SUBDIR+= sljit 280.endif 281 282# 283# ACPI modules 284# 285.if ${MACHINE_ARCH} == "i386" || \ 286 ${MACHINE_ARCH} == "ia64" || \ 287 ${MACHINE_ARCH} == "x86_64" 288SUBDIR+= acpiverbose 289.endif 290 291.if ${MACHINE_ARCH} == "i386" || \ 292 ${MACHINE_ARCH} == "x86_64" 293SUBDIR+= acpiacad 294SUBDIR+= acpibat 295SUBDIR+= acpibut 296SUBDIR+= acpicpu 297SUBDIR+= acpidalb 298SUBDIR+= acpifan 299SUBDIR+= acpihed 300SUBDIR+= acpilid 301SUBDIR+= acpipmtr 302SUBDIR+= acpitz 303SUBDIR+= acpivga 304SUBDIR+= acpivmgenid 305SUBDIR+= acpiwdrt 306SUBDIR+= acpiwmi 307SUBDIR+= aibs 308SUBDIR+= apei 309SUBDIR+= asus 310SUBDIR+= fujbp 311SUBDIR+= fujhk 312SUBDIR+= hpacel 313SUBDIR+= hpqlb 314SUBDIR+= thinkpad 315SUBDIR+= wmidell 316SUBDIR+= wmieeepc 317SUBDIR+= wmihp 318SUBDIR+= wmimsi 319.endif 320 321.include "${.CURDIR}/../compat/netbsd32/netbsd32.mk" 322.if ${COMPAT_USE_NETBSD32} != "no" 323 324SUBDIR+= compat_netbsd32 325SUBDIR+= compat_netbsd32_09 compat_netbsd32_12 326SUBDIR+= compat_netbsd32_13 compat_netbsd32_16 327SUBDIR+= compat_netbsd32_20 compat_netbsd32_30 328SUBDIR+= compat_netbsd32_40 compat_netbsd32_50 329SUBDIR+= compat_netbsd32_60 compat_netbsd32_80 330SUBDIR+= compat_netbsd32_90 compat_netbsd32_100 331SUBDIR+= compat_netbsd32_43 332SUBDIR+= compat_netbsd32_coredump 333SUBDIR+= compat_netbsd32_mqueue 334SUBDIR+= compat_netbsd32_nfssrv 335SUBDIR+= compat_netbsd32_ptrace 336SUBDIR+= compat_netbsd32_quota 337SUBDIR+= compat_netbsd32_quota_50 338SUBDIR+= compat_netbsd32_raid 339SUBDIR+= compat_netbsd32_sysvipc 340SUBDIR+= compat_netbsd32_sysvipc_10 341SUBDIR+= compat_netbsd32_sysvipc_14 342SUBDIR+= compat_netbsd32_sysvipc_50 343 344.if ${MACHINE_ARCH} == "x86_64" 345SUBDIR+= compat_linux32 346.endif 347 348.endif 349 350.if ${MACHINE_ARCH} == "i386" 351SUBDIR+= ati_pcigart 352SUBDIR+= compat_freebsd 353SUBDIR+= mach64drm 354SUBDIR+= mgadrm 355SUBDIR+= nsclpcsio 356SUBDIR+= padlock 357SUBDIR+= r128drm 358#SUBDIR+= radeondrm 359SUBDIR+= savagedrm 360SUBDIR+= sisdrm 361SUBDIR+= tdfxdrm 362SUBDIR+= viac7temp 363.endif 364 365.if ${MACHINE_ARCH} == "i386" || \ 366 ${MACHINE_ARCH} == "x86_64" || \ 367 ${MACHINE_CPU} == "aarch64" 368SUBDIR+= amdgpu 369SUBDIR+= drmkms 370SUBDIR+= drmkms_linux 371SUBDIR+= drmkms_pci 372SUBDIR+= drmkms_sched 373SUBDIR+= drmkms_ttm 374.endif 375 376.if ${MACHINE_ARCH} == "i386" || \ 377 ${MACHINE_ARCH} == "x86_64" 378SUBDIR+= drm 379SUBDIR+= compat_linux 380SUBDIR+= drmkms_agp 381SUBDIR+= i915drm 382SUBDIR+= i915drmkms 383SUBDIR+= viadrmums 384# 385# ISA modules 386# 387SUBDIR+= aps 388SUBDIR+= finsio 389SUBDIR+= itesio 390SUBDIR+= lm 391SUBDIR+= lm_isa 392SUBDIR+= lm_isa_common 393SUBDIR+= lm_wbsio 394SUBDIR+= wbsio 395.endif 396 397.if ${MACHINE_CPU} == "aarch64" 398SUBDIR+= compat_linux 399SUBDIR+= compat_linux32 400.endif 401 402.if ${MACHINE_CPU} == "m68k" 403SUBDIR+= compat_aoutm68k 404#SUBDIR+= compat_linux 405#SUBDIR+= compat_sunos 406.endif 407 408.if ${MACHINE_ARCH} == "i386" || \ 409 ${MACHINE_ARCH} == "x86_64" || \ 410 ${MACHINE_ARCH} == "sparc64" 411SUBDIR+= pwdog 412.endif 413 414.include <bsd.own.mk> 415 416# 417# NetBSD/usermode support 418# 419.if ${MACHINE_ARCH} == "i386" || \ 420 ${MACHINE_ARCH} == "x86_64" 421SUBDIR+= ../arch/usermode/modules/syscallemu 422.endif 423 424# we need our device mapper for LVM 425.if (${MKLVM} != "no") 426SUBDIR+= dm 427.endif 428 429.if (${MKDTRACE} != "no") 430SUBDIR+= cyclic 431SUBDIR+= dtrace 432.endif 433 434SUBDIR+= sodium 435 436# we need solaris for the dtrace and zfs modules 437.if (${MKDTRACE} != "no" || ${MKZFS} != "no") 438SUBDIR+= solaris 439.endif 440 441.if (${MKZFS} != "no") 442SUBDIR+= zfs 443.endif 444 445.if (${MKCOMPATMODULES} != "no") 446SUBDIR+= arch 447.endif 448 449# 450# DTV modules 451# 452SUBDIR+= dtv 453SUBDIR+= dtv_math 454.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 455# tuners/demods 456SUBDIR+= au8522 457SUBDIR+= cx24227 458SUBDIR+= lg3303 459SUBDIR+= mt2131 460SUBDIR+= nxt2k 461SUBDIR+= tvpll 462SUBDIR+= xc3028 463SUBDIR+= xc5k 464SUBDIR+= zl10353 465# hardware drivers 466SUBDIR+= auvitek 467SUBDIR+= coram 468SUBDIR+= cxdtv 469SUBDIR+= emdtv 470 471# Intel Integrated Memory Controller and associated SMBus 472# (Experimental) 473SUBDIR+= imc 474SUBDIR+= imcsmb 475 476.endif 477 478.if (${MKISCSI} != "no") 479SUBDIR+= iscsi 480.endif 481 482# For now, all of these are disabled, pending resolution of how to deal 483# with attachment-specific modules and bus-specific modules (as opposed 484# to machine- or architecture-specific modules) 485 486.if 0 487SUBDIR+= aac 488SUBDIR+= amr 489SUBDIR+= ataraid 490SUBDIR+= cac 491SUBDIR+= cac_eisa 492SUBDIR+= cac_pci 493SUBDIR+= emuxki 494SUBDIR+= if_aq 495SUBDIR+= if_vioif 496SUBDIR+= if_vmx 497SUBDIR+= ld 498SUBDIR+= ld_aac 499SUBDIR+= ld_amr 500SUBDIR+= ld_ataraid 501SUBDIR+= ld_cac 502SUBDIR+= ld_icp 503SUBDIR+= ld_mlx 504SUBDIR+= ld_sdmmc 505SUBDIR+= ld_twa 506SUBDIR+= ld_twe 507SUBDIR+= ld_virtio 508SUBDIR+= mlx 509SUBDIR+= mlx_eisa 510SUBDIR+= mlx_pci 511SUBDIR+= ld_nvme 512SUBDIR+= nvme 513SUBDIR+= twa 514SUBDIR+= twe 515SUBDIR+= vio9p 516SUBDIR+= viomb 517SUBDIR+= virtio 518SUBDIR+= virtio_pci 519SUBDIR+= vioscsi 520.endif 521 522SUBDIR+= examples # build these regularly to avoid bit-rot 523 524.endif 525 526.include <bsd.subdir.mk> 527