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