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