xref: /netbsd-src/sys/modules/Makefile (revision fea0c645cdda00b15fa4b5b2998d564bcc75e72f)
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