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