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