Makefile revision 1.288
1#	$NetBSD: Makefile,v 1.288 2024/05/20 13:34:12 riastradh 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_110
326SUBDIR+=	compat_netbsd32_43
327SUBDIR+=	compat_netbsd32_coredump
328SUBDIR+=	compat_netbsd32_mqueue
329SUBDIR+=	compat_netbsd32_nfssrv
330SUBDIR+=	compat_netbsd32_ptrace
331SUBDIR+=	compat_netbsd32_quota
332SUBDIR+=	compat_netbsd32_quota_50
333SUBDIR+=	compat_netbsd32_raid
334SUBDIR+=	compat_netbsd32_sysvipc
335SUBDIR+=	compat_netbsd32_sysvipc_10
336SUBDIR+=	compat_netbsd32_sysvipc_14
337SUBDIR+=	compat_netbsd32_sysvipc_50
338
339.if ${MACHINE_ARCH} == "x86_64"
340SUBDIR+=	compat_linux32
341.endif
342
343.endif
344
345.if ${MACHINE_ARCH} == "i386"
346SUBDIR+=	ati_pcigart
347SUBDIR+=	compat_freebsd
348SUBDIR+=	mach64drm
349SUBDIR+=	mgadrm
350SUBDIR+=	nsclpcsio
351SUBDIR+=	padlock
352SUBDIR+=	r128drm
353#SUBDIR+=	radeondrm
354SUBDIR+=	savagedrm
355SUBDIR+=	sisdrm
356SUBDIR+=	tdfxdrm
357SUBDIR+=	viac7temp
358.endif
359
360.if ${MACHINE_ARCH} == "i386" || \
361    ${MACHINE_ARCH} == "x86_64" || \
362    ${MACHINE_CPU} == "aarch64"
363SUBDIR+=	amdgpu
364SUBDIR+=	drmkms
365SUBDIR+=	drmkms_linux
366SUBDIR+=	drmkms_pci
367SUBDIR+=	drmkms_sched
368SUBDIR+=	drmkms_ttm
369.endif
370
371.if ${MACHINE_ARCH} == "i386" || \
372    ${MACHINE_ARCH} == "x86_64"
373SUBDIR+=	drm
374SUBDIR+=	compat_linux
375SUBDIR+=	drmkms_agp
376SUBDIR+=	i915drm
377SUBDIR+=	i915drmkms
378SUBDIR+=	viadrmums
379#
380# ISA modules
381#
382SUBDIR+=	aps
383SUBDIR+=	finsio
384SUBDIR+=	itesio
385SUBDIR+=	lm
386SUBDIR+=	lm_isa
387SUBDIR+=	lm_isa_common
388SUBDIR+=	lm_wbsio
389SUBDIR+=	wbsio
390.endif
391
392.if ${MACHINE_CPU} == "aarch64"
393SUBDIR+=	compat_linux
394SUBDIR+=	compat_linux32
395.endif
396
397.if ${MACHINE_CPU} == "m68k"
398SUBDIR+=	compat_aoutm68k
399#SUBDIR+=	compat_linux
400#SUBDIR+=	compat_sunos
401.endif
402
403.if ${MACHINE_ARCH} == "i386" || \
404    ${MACHINE_ARCH} == "x86_64" || \
405    ${MACHINE_ARCH} == "sparc64"
406SUBDIR+=	pwdog
407.endif
408
409.include <bsd.own.mk>
410
411#
412# NetBSD/usermode support
413#
414.if ${MACHINE_ARCH} == "i386" || \
415    ${MACHINE_ARCH} == "x86_64"
416SUBDIR+=	../arch/usermode/modules/syscallemu
417.endif
418
419# we need our device mapper for LVM
420.if (${MKLVM} != "no")
421SUBDIR+= 	dm
422.endif
423
424.if (${MKDTRACE} != "no")
425SUBDIR+=	cyclic
426SUBDIR+=	dtrace
427.endif
428
429SUBDIR+=        sodium
430
431# we need solaris for the dtrace and zfs modules
432.if (${MKDTRACE} != "no" || ${MKZFS} != "no")
433SUBDIR+=        solaris
434.endif
435
436.if (${MKZFS} != "no")
437SUBDIR+=	zfs
438.endif
439
440.if (${MKCOMPATMODULES} != "no")
441SUBDIR+=	arch
442.endif
443
444#
445# DTV modules
446#
447SUBDIR+=	dtv
448SUBDIR+=	dtv_math
449.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
450# tuners/demods
451SUBDIR+=	au8522
452SUBDIR+=	cx24227
453SUBDIR+=	lg3303
454SUBDIR+=	mt2131
455SUBDIR+=	nxt2k
456SUBDIR+=	tvpll
457SUBDIR+=	xc3028
458SUBDIR+=	xc5k
459SUBDIR+=	zl10353
460# hardware drivers
461SUBDIR+=	auvitek
462SUBDIR+=	coram
463SUBDIR+=	cxdtv
464SUBDIR+=	emdtv
465
466# Intel Integrated Memory Controller and associated SMBus
467# (Experimental)
468SUBDIR+=	imc
469SUBDIR+=	imcsmb
470
471.endif
472
473.if (${MKISCSI} != "no")
474SUBDIR+=	iscsi
475.endif
476
477# For now, all of these are disabled, pending resolution of how to deal
478# with attachment-specific modules and bus-specific modules (as opposed
479# to machine- or architecture-specific modules)
480
481.if 0
482SUBDIR+=	aac
483SUBDIR+=	amr
484SUBDIR+=	ataraid
485SUBDIR+=	cac
486SUBDIR+=	cac_eisa
487SUBDIR+=	cac_pci
488SUBDIR+=	emuxki
489SUBDIR+=	if_aq
490SUBDIR+=	if_vioif
491SUBDIR+=	if_vmx
492SUBDIR+=	ld
493SUBDIR+=	ld_aac
494SUBDIR+=	ld_amr
495SUBDIR+=	ld_ataraid
496SUBDIR+=	ld_cac
497SUBDIR+=	ld_icp
498SUBDIR+=	ld_mlx
499SUBDIR+=	ld_sdmmc
500SUBDIR+=	ld_twa
501SUBDIR+=	ld_twe
502SUBDIR+=	ld_virtio
503SUBDIR+=	mlx
504SUBDIR+=	mlx_eisa
505SUBDIR+=	mlx_pci
506SUBDIR+=	ld_nvme
507SUBDIR+=	nvme
508SUBDIR+=	twa
509SUBDIR+=	twe
510SUBDIR+=	vio9p
511SUBDIR+=	viomb
512SUBDIR+=	virtio
513SUBDIR+=	virtio_pci
514SUBDIR+=	vioscsi
515.endif
516
517SUBDIR+=	examples	# build these regularly to avoid bit-rot
518
519.endif
520
521.include <bsd.subdir.mk>
522