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