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